📄 c8bp_pid.mdl
字号:
}
Line {
SrcBlock "Unit Delay1"
SrcPort 1
Points [15, 0; 0, -15]
DstBlock "Mux"
DstPort 3
}
Line {
SrcBlock "Unit Delay3"
SrcPort 1
Points [70, 0; 0, -60]
DstBlock "Mux"
DstPort 5
}
Line {
SrcBlock "Demux"
SrcPort 2
Points [55, 0; 0, 40]
DstBlock "PID parameters"
DstPort 1
}
Line {
SrcBlock "Demux"
SrcPort 1
DstBlock "Saturation"
DstPort 1
}
Line {
Labels [0, 0]
SrcBlock "y(k)"
SrcPort 1
Points [5, 0]
Branch {
Points [185, 0; 0, -45]
DstBlock "Mux"
DstPort 4
}
Branch {
Points [0, 30]
DstBlock "Unit Delay3"
DstPort 1
}
Branch {
DstBlock "Sum"
DstPort 2
}
}
Line {
SrcBlock "r(k)"
SrcPort 1
Points [10, 0]
Branch {
Labels [4, 0]
Points [0, 115; 255, 0; 0, -85]
DstBlock "Mux"
DstPort 6
}
Branch {
DstBlock "Sum"
DstPort 1
}
}
Line {
SrcBlock "Saturation"
SrcPort 1
Points [5, 0; 25, 0]
Branch {
Points [0, 180]
DstBlock "Unit Delay2"
DstPort 1
}
Branch {
DstBlock "u(k)"
DstPort 1
}
}
Line {
SrcBlock "S-Function"
SrcPort 1
DstBlock "Demux"
DstPort 1
}
Line {
SrcBlock "Unit Delay"
SrcPort 1
Points [10, 0; 5, 0]
Branch {
Points [0, -40; 75, 0; 0, 10]
DstBlock "Mux"
DstPort 2
}
Branch {
DstBlock "Unit Delay1"
DstPort 1
}
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "S-Function"
DstPort 1
}
Line {
SrcBlock "Sum"
SrcPort 1
Points [0, 0; 15, 0]
Branch {
Points [0, -55; 155, 0; 0, 10]
DstBlock "Mux"
DstPort 1
}
Branch {
DstBlock "Unit Delay"
DstPort 1
}
}
Annotation {
Name "e(k)"
Position [134, 125]
}
Annotation {
Name "e(k-1)"
Position [217, 125]
}
Annotation {
Name "e(k-2)"
Position [289, 107]
}
Annotation {
Name "u(k-1)"
Position [322, 312]
}
}
}
Block {
BlockType SubSystem
Name "Nonlinear Model"
Ports [1, 1]
Position [310, 121, 380, 149]
FontName "Times New Roman"
FontSize 14
TreatAsAtomicUnit off
MinAlgLoopOccurrences off
RTWSystemCode "Auto"
MaskDescription "The nonlinear plant model is given by\n "
" d(k)*y(k-1)\n y(k) = -------------- + u(k)\n "
" 1+y(k-1)^2\nwhere d(k) is time varying, such that \n d(k)=a*("
"1-b*exp(-c*t/T))\n"
MaskPromptString "The value of a|The value of b|The value of c|Sa"
"mpling period"
MaskStyleString "edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on"
MaskCallbackString "|||"
MaskEnableString "on,on,on,on"
MaskVisibilityString "on,on,on,on"
MaskToolTipString "on,on,on,on"
MaskVarAliasString ",,,"
MaskVariables "a=@1;b=@2;c=@3;T=@4;"
MaskDisplay "disp('NL Plant')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "1.2|0.8|0.1|0.001"
MaskTabNameString ",,,"
System {
Name "Nonlinear Model"
Location [287, 426, 849, 637]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "A4"
PaperUnits "centimeters"
ZoomFactor "100"
Block {
BlockType Inport
Name "In1"
Position [105, 33, 135, 47]
Port "1"
IconDisplay "Port number"
LatchInput off
}
Block {
BlockType Clock
Name "Clock"
Position [15, 145, 35, 165]
Decimation "10"
}
Block {
BlockType Fcn
Name "Fcn"
Position [70, 140, 175, 170]
Expr "a*(1-b*exp(-c*u/T))"
}
Block {
BlockType Fcn
Name "Fcn1"
Position [225, 120, 285, 150]
Orientation "left"
Expr "u/(1+u^2)"
}
Block {
BlockType Product
Name "Product"
Ports [2, 1]
Position [182, 75, 213, 100]
Orientation "up"
NamePlacement "alternate"
InputSameDT off
RndMeth "Floor"
}
Block {
BlockType Sum
Name "Sum"
Ports [2, 1]
Position [190, 30, 210, 50]
ShowName off
IconShape "round"
Inputs "|++"
InputSameDT off
OutDataTypeMode "Inherit via internal rule"
}
Block {
BlockType UnitDelay
Name "Unit Delay1"
Position [345, 115, 380, 155]
Orientation "left"
SampleTime "-1"
}
Block {
BlockType Outport
Name "Out1"
Position [445, 33, 475, 47]
IconDisplay "Port number"
}
Line {
SrcBlock "In1"
SrcPort 1
DstBlock "Sum"
DstPort 1
}
Line {
SrcBlock "Unit Delay1"
SrcPort 1
DstBlock "Fcn1"
DstPort 1
}
Line {
SrcBlock "Fcn"
SrcPort 1
Points [10, 0]
DstBlock "Product"
DstPort 1
}
Line {
SrcBlock "Fcn1"
SrcPort 1
Points [-15, 0]
DstBlock "Product"
DstPort 2
}
Line {
SrcBlock "Product"
SrcPort 1
DstBlock "Sum"
DstPort 2
}
Line {
SrcBlock "Sum"
SrcPort 1
Points [0, 0; 185, 0]
Branch {
DstBlock "Out1"
DstPort 1
}
Branch {
Points [0, 95]
DstBlock "Unit Delay1"
DstPort 1
}
}
Line {
SrcBlock "Clock"
SrcPort 1
DstBlock "Fcn"
DstPort 1
}
Annotation {
Name "Nonlinear plant model for testing control a"
"lgorithms"
Position [351, 196]
FontName "Arial"
FontSize 14
FontWeight "bold"
}
Annotation {
Name "y(k-1)"
Position [314, 125]
}
Annotation {
Name "y(k)"
Position [329, 27]
}
}
}
Block {
BlockType Scope
Name "Scope"
Ports [1]
Position [445, 109, 475, 141]
FontName "Times New Roman"
FontSize 14
Location [188, 365, 512, 604]
Open on
NumInputPorts "1"
ZoomMode "xonly"
List {
ListType AxesTitles
axes1 "%<SignalLabel>"
}
TimeRange "1"
YMin "-4"
YMax "6"
SaveToWorkspace on
SaveName "yy"
DataFormat "Array"
LimitDataPoints off
}
Block {
BlockType Scope
Name "Scope1"
Ports [1]
Position [335, 69, 365, 101]
ShowName off
FontName "Times New Roman"
FontSize 14
Location [188, 365, 512, 604]
Open on
NumInputPorts "1"
ZoomMode "xonly"
List {
ListType AxesTitles
axes1 "%<SignalLabel>"
}
TimeRange "1"
YMin "0"
YMax "1"
SaveName "ScopeData1"
DataFormat "StructureWithTime"
}
Line {
SrcBlock "Neuralnet PID Controller\nwith BP training"
SrcPort 1
DstBlock "Nonlinear Model"
DstPort 1
}
Line {
SrcBlock "Multi-step\nsignal generator"
SrcPort 1
Points [10, 0]
Branch {
Points [0, -80; 260, 0; 0, 60]
DstBlock "Mux"
DstPort 1
}
Branch {
DstBlock "Neuralnet PID Controller\nwith BP training"
DstPort 1
}
}
Line {
SrcBlock "Nonlinear Model"
SrcPort 1
Points [15, 0]
Branch {
DstBlock "Mux"
DstPort 2
}
Branch {
Points [0, 80; -260, 0; 0, -55]
DstBlock "Neuralnet PID Controller\nwith BP training"
DstPort 2
}
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "Scope"
DstPort 1
}
Line {
SrcBlock "Neuralnet PID Controller\nwith BP training"
SrcPort 2
Points [10, 0; 0, -75]
DstBlock "Scope1"
DstPort 1
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -