📄 pv_array.mdl
字号:
OutDataTypeMode "Inherit via back propagation"
OutDataType "sfix(16)"
OutScaling "2^0"
LockScale off
ConvertRealWorld "Real World Value (RWV)"
RndMeth "Zero"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType Fcn
Expr "sin(u[1])"
SampleTime "-1"
}
Block {
BlockType Gain
Gain "1"
Multiplication "Element-wise(K.*u)"
ParameterDataTypeMode "Same as input"
ParameterDataType "sfix(16)"
ParameterScalingMode "Best Precision: Matrix-wise"
ParameterScaling "2^0"
OutDataTypeMode "Same as input"
OutDataType "sfix(16)"
OutScaling "2^0"
LockScale off
RndMeth "Floor"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType Inport
Port "1"
UseBusObject off
BusObject "BusObject"
BusOutputAsStruct off
PortDimensions "-1"
SampleTime "-1"
DataType "auto"
OutDataType "sfix(16)"
OutScaling "2^0"
SignalType "auto"
SamplingMode "auto"
LatchByDelayingOutsideSignal off
LatchByCopyingInsideSignal off
Interpolate on
}
Block {
BlockType MinMax
Function "min"
Inputs "1"
InputSameDT on
OutDataTypeMode "Inherit via internal rule"
OutDataType "sfix(16)"
OutScaling "2^0"
LockScale off
RndMeth "Floor"
SaturateOnIntegerOverflow on
ZeroCross on
SampleTime "-1"
}
Block {
BlockType Mux
Inputs "4"
DisplayOption "none"
UseBusObject off
BusObject "BusObject"
NonVirtualBus off
}
Block {
BlockType Outport
Port "1"
UseBusObject off
BusObject "BusObject"
BusOutputAsStruct off
PortDimensions "-1"
SampleTime "-1"
DataType "auto"
OutDataType "sfix(16)"
OutScaling "2^0"
SignalType "auto"
SamplingMode "auto"
OutputWhenDisabled "held"
InitialOutput "[]"
}
Block {
BlockType Product
Inputs "2"
Multiplication "Element-wise(.*)"
InputSameDT on
OutDataTypeMode "Same as first input"
OutDataType "sfix(16)"
OutScaling "2^0"
LockScale off
RndMeth "Zero"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType Reference
}
Block {
BlockType Saturate
UpperLimit "0.5"
LowerLimit "-0.5"
LinearizeAsGain on
ZeroCross on
SampleTime "-1"
}
Block {
BlockType "S-Function"
FunctionName "system"
SFunctionModules "''"
PortCounts "[]"
}
Block {
BlockType Step
Time "1"
Before "0"
After "1"
SampleTime "-1"
VectorParams1D on
ZeroCross on
}
Block {
BlockType SubSystem
ShowPortLabels on
Permissions "ReadWrite"
PermitHierarchicalResolution "All"
TreatAsAtomicUnit off
SystemSampleTime "-1"
RTWFcnNameOpts "Auto"
RTWFileNameOpts "Auto"
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
SimViewingDevice off
DataTypeOverride "UseLocalSettings"
MinMaxOverflowLogging "UseLocalSettings"
}
Block {
BlockType Sum
IconShape "rectangular"
Inputs "++"
InputSameDT on
OutDataTypeMode "Same as first input"
OutDataType "sfix(16)"
OutScaling "2^0"
LockScale off
RndMeth "Floor"
SaturateOnIntegerOverflow on
SampleTime "-1"
}
Block {
BlockType Switch
Criteria "u2 >= Threshold"
Threshold "0"
InputSameDT on
OutDataTypeMode "Inherit via internal rule"
RndMeth "Floor"
SaturateOnIntegerOverflow on
ZeroCross on
SampleTime "-1"
}
Block {
BlockType ToWorkspace
VariableName "simulink_output"
MaxDataPoints "1000"
Decimation "1"
SampleTime "0"
FixptAsFi off
}
}
AnnotationDefaults {
HorizontalAlignment "center"
VerticalAlignment "middle"
ForegroundColor "black"
BackgroundColor "white"
DropShadow off
FontName "Arial"
FontSize 10
FontWeight "normal"
FontAngle "normal"
}
LineDefaults {
FontName "Arial"
FontSize 9
FontWeight "normal"
FontAngle "normal"
}
System {
Name "pv_array"
Location [367, 213, 1002, 862]
Open on
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "cyan"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
ReportName "simulink-default.rpt"
Block {
BlockType Sum
Name "Add"
Ports [6, 1]
Position [310, 13, 340, 547]
Inputs "++++++"
InputSameDT off
OutDataTypeMode "Inherit via internal rule"
OutScaling "2^-10"
SaturateOnIntegerOverflow off
Port {
PortNumber 1
Name "Vpv"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Constant
Name "Insolation"
Position [15, 65, 45, 95]
Value "1000"
VectorParams1D on
SamplingMode "Sample based"
OutDataTypeMode "Inherit from 'Constant value'"
OutDataType "sfix(16)"
ConRadixGroup "Use specified scaling"
OutScaling "2^0"
SampleTime "inf"
FramePeriod "inf"
}
Block {
BlockType Reference
Name "Ipv Ramp"
Ports [0, 1]
Position [20, 605, 50, 635]
NamePlacement "alternate"
SourceBlock "simulink/Sources/Ramp"
SourceType "Ramp"
ShowPortLabels on
SystemSampleTime "-1"
FunctionWithSeparateData off
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
slope "6"
start "0"
X0 "0"
VectorParams1D on
Port {
PortNumber 1
Name "Ipv"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Mux
Name "Mux"
Ports [3, 1]
Position [525, 176, 530, 214]
ShowName off
Inputs "3"
DisplayOption "bar"
}
Block {
BlockType SubSystem
Name "PV1"
Ports [2, 2]
Position [145, 42, 255, 93]
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
FunctionWithSeparateData off
MaskHideContents off
MaskDescription "PV module model based on module data-sheet para"
"meters. This model has Ipv input, which is suitable for series connections. L"
"imitations: no temperature dependance, static model"
MaskPromptString "Short-circuit current|Open-circuit voltage|Curr"
"ent at Pmax|Voltage at Pmax|By-pass diode?"
MaskStyleString "edit,edit,edit,edit,checkbox"
MaskTunableValueString "on,on,on,on,on"
MaskCallbackString "||||"
MaskEnableString "on,on,on,on,on"
MaskVisibilityString "on,on,on,on,on"
MaskToolTipString "on,on,on,on,on"
MaskVarAliasString ",,,,"
MaskVariables "Isc=@1;Voc=@2;Ir=@3;Vr=@4;Diode=@5;"
MaskInitialization "% calculation of PV module parameters\n% limita"
"tion: constant temperature\nNs = round(Voc/0.61); % default number of cells i"
"n series\nVt = 26e-3; % thermal voltage\nG = Isc/1000; % irradiation to short"
"-circuit current gain\nVmpc = Vr/Ns; % cell voltage at rated Pmax\nVocc = Voc"
"/Ns; % cell open-circuit voltage\nRmpp = Vmpc/Ir; % cell load resistance at P"
"max\n%\nRp = 100*Vocc/Isc; % initial value for Rp\nVdm = Vocc; % initial valu"
"e for Vdm\n%\n% iterative solution for model parameters: Io, Rs, Rp\nfor i=1:"
"10\n%\n Idm = Isc - Ir - Vdm/Rp; % pn-junction (diode) current at MPP\n Io = "
"(Isc-Vocc/Rp)/(exp(Vocc/Vt)-1); % pn-junction reverse saturation current\n Vd"
"m = Vt*log(Idm/Io+1); % pn-junction (diode) voltage at MPP\n Rs = (Vdm-Vmpc)/"
"Ir; % cell series resistance\n Rd = (Rmpp - Rs)*Rp/(Rp-Rmpp+Rs); % diode incr"
"emental resistance at MPP\n Idm = Vt/Rd; % diode current at MPP based on incr"
"emental resistance\n Rp = Vdm/(Isc-Ir-Idm); % cell parallel resistance\n%\nen"
"d\n%"
MaskDisplay "plot([0.3 0.4],[0.4 0.8]);\nplot([0.4 0.5],[0.4"
" 0.8]);\nplot([0.5 0.6],[0.4 0.8]);\nplot([0.6 0.7],[0.4 0.8]);\nplot([0.3 0."
"6],[0.4 0.4]);\nplot([0.325 0.625],[0.5 0.5]);\nplot([0.35 0.65],[0.6 0.6]);"
"\nplot([0.375 0.675],[0.7 0.7]);\nplot([0.4 0.7],[0.8 0.8]);\ntext(0.5,0.9,'P"
"V module (I)','horizontalAlignment', 'center');\n"
MaskIconFrame on
MaskIconOpaque off
MaskIconRotate "none"
MaskIconUnits "normalized"
MaskValueString "5.45|22.2|4.95|17.2|on"
MaskTabNameString ",,,,"
System {
Name "PV1"
Location [164, 268, 1200, 729]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
TiledPaperMargins [0.500000, 0.500000, 0.500000, 0.500000]
TiledPageScale 1
ShowPageBoundaries off
ZoomFactor "100"
Block {
BlockType Inport
Name "Ipv"
Position [25, 168, 55, 182]
IconDisplay "Port number"
Port {
PortNumber 1
Name "Ipv"
PropagatedSignals "Ipv"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Inport
Name "Insolation"
Position [25, 273, 55, 287]
Port "2"
IconDisplay "Port number"
}
Block {
BlockType Gain
Name "1/Rp"
Position [445, 390, 490, 420]
Orientation "left"
Gain "1/Rp"
ParameterDataTypeMode "Inherit via internal rule"
OutDataTypeMode "Inherit via internal rule"
SaturateOnIntegerOverflow off
Port {
PortNumber 1
Name "Vd/Rp"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Reference
Name "Algebraic Constraint"
Ports [1, 1]
Position [410, 265, 490, 295]
SourceBlock "simulink/Math\nOperations/Algebraic Constra"
"int"
SourceType "Algebraic Constraint"
ShowPortLabels "on"
SystemSampleTime "-1"
FunctionWithSeparateData "off"
RTWMemSecFuncInitTerm "Inherit from model"
RTWMemSecFuncExecute "Inherit from model"
RTWMemSecDataConstants "Inherit from model"
RTWMemSecDataInternal "Inherit from model"
RTWMemSecDataParameters "Inherit from model"
z0 "0"
Port {
PortNumber 1
Name "Vd"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Fcn
Name "By-pass diode"
Position [420, 67, 550, 103]
Expr "-Vt*log((u/Io)+1)"
}
Block {
BlockType Constant
Name "Constant"
Position [745, 190, 775, 220]
Value "Diode"
VectorParams1D on
SamplingMode "Sample based"
OutDataTypeMode "Inherit from 'Constant value'"
OutDataType "sfix(16)"
ConRadixGroup "Use specified scaling"
OutScaling "2^0"
SampleTime "inf"
FramePeriod "inf"
}
Block {
BlockType Gain
Name "Insolation to \ncurrent gain"
Position [115, 264, 160, 296]
Gain "G"
ParameterDataTypeMode "Inherit via internal rule"
OutDataTypeMode "Inherit via internal rule"
SaturateOnIntegerOverflow off
Port {
PortNumber 1
Name "Iph"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType MinMax
Name "MinMax"
Ports [2, 1]
Position [750, 77, 780, 108]
Function "max"
Inputs "2"
InputSameDT off
SaturateOnIntegerOverflow off
}
Block {
BlockType Gain
Name "Ns"
Position [655, 262, 695, 298]
Gain "Ns"
ParameterDataTypeMode "Inherit via internal rule"
OutDataTypeMode "Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Fcn
Name "PN-junction characteristic"
Position [430, 334, 510, 366]
Orientation "left"
Expr "Io*(exp(u/Vt)-1)"
Port {
PortNumber 1
Name "Id"
RTWStorageClass "Auto"
DataLoggingNameMode "SignalName"
}
}
Block {
BlockType Product
Name "Product"
Ports [2, 1]
Position [905, 152, 935, 183]
InputSameDT off
OutDataTypeMode "Inherit via internal rule"
SaturateOnIntegerOverflow off
}
Block {
BlockType Gain
Name "Rs"
Position [420, 160, 460, 190]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -