📄 helicopt.mdl
字号:
TestPoint off
LinearAnalysisOutput off
LinearAnalysisInput off
RTWStorageClass "Auto"
DataLogging off
DataLoggingNameMode "SignalName"
DataLoggingDecimateData off
DataLoggingDecimation "2"
DataLoggingLimitDataPoints off
DataLoggingMaxPoints "5000"
}
Port {
PortNumber 4
Name "<Body Rate>"
TestPoint off
LinearAnalysisOutput off
LinearAnalysisInput off
RTWStorageClass "Auto"
DataLogging off
DataLoggingNameMode "SignalName"
DataLoggingDecimateData off
DataLoggingDecimation "2"
DataLoggingLimitDataPoints off
DataLoggingMaxPoints "5000"
}
Port {
PortNumber 5
Name "<Earth-to-Body>"
TestPoint off
LinearAnalysisOutput off
LinearAnalysisInput off
RTWStorageClass "Auto"
DataLogging off
DataLoggingNameMode "SignalName"
DataLoggingDecimateData off
DataLoggingDecimation "2"
DataLoggingLimitDataPoints off
DataLoggingMaxPoints "5000"
}
}
Block {
BlockType SubSystem
Name "Controller Model"
Ports [5, 4]
Position [330, 60, 435, 340]
BackgroundColor "yellow"
TreatAsAtomicUnit off
System {
Name "Controller Model"
Location [319, 123, 989, 497]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "Pos"
Position [50, 183, 80, 197]
BackgroundColor "lightBlue"
}
Block {
BlockType Inport
Name "Vel"
Position [135, 178, 165, 192]
BackgroundColor "lightBlue"
Port "2"
}
Block {
BlockType Inport
Name "Euler RPY"
Position [480, 83, 510, 97]
BackgroundColor "lightBlue"
Port "3"
}
Block {
BlockType Inport
Name "Body Rate"
Position [480, 38, 510, 52]
BackgroundColor "lightBlue"
Port "4"
}
Block {
BlockType Inport
Name "Earth-to-Body"
Position [135, 148, 165, 162]
BackgroundColor "lightBlue"
Port "5"
}
Block {
BlockType SubSystem
Name "Altitude Control"
Ports [2, 1]
Position [190, 316, 285, 374]
BackgroundColor "yellow"
TreatAsAtomicUnit off
System {
Name "Altitude Control"
Location [209, 74, 964, 685]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "Pos"
Position [80, 218, 110, 232]
BackgroundColor "yellow"
}
Block {
BlockType Inport
Name "Pos Cmd"
Position [80, 82, 110, 98]
BackgroundColor "yellow"
Port "2"
}
Block {
BlockType Saturate
Name "Alt Limit"
Position [385, 180, 415, 210]
BackgroundColor "yellow"
UpperLimit "alt_err_limit"
LowerLimit "-alt_err_limit"
}
Block {
BlockType SubSystem
Name "Altitude Controller"
Ports [2, 1]
Position [285, 59, 325, 326]
BackgroundColor "yellow"
TreatAsAtomicUnit off
System {
Name "Altitude Controller"
Location [279, 74, 846, 463]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "r"
Position [25, 23, 55, 37]
BackgroundColor "yellow"
}
Block {
BlockType Inport
Name "y"
Position [25, 83, 55, 97]
BackgroundColor "yellow"
Port "2"
}
Block {
BlockType Gain
Name "Gain"
Position [110, 13, 160, 47]
BackgroundColor "yellow"
Gain "N_v"
}
Block {
BlockType Mux
Name "Mux"
Ports [2, 1]
Position [80, 81, 85, 119]
BackgroundColor "yellow"
ShowName off
Inputs "2"
DisplayOption "bar"
}
Block {
BlockType SubSystem
Name "Observer-\nController"
Ports [1, 1]
Position [110, 78, 170, 122]
BackgroundColor "yellow"
TreatAsAtomicUnit off
MaskType "DiscretizedStateSpace"
MaskDescription "Continuous mask uses c2d to trans"
"form parameters onto the Discrete State-Space block inside."
MaskPromptString "A (enter in s-domain:)|B (enter i"
"n s-domain:)|C (enter in s-domain:)|D (enter in s-domain:)|Initial conditions"
" (enter in s-domain:)|Absolute tolerance|Sample time:|Method:|Critical Freque"
"ncy (Hz):"
MaskStyleString "edit,edit,edit,edit,edit,edit,edi"
"t,popup(zoh|foh|tustin|prewarp|matched),edit"
MaskTunableValueString "on,on,on,on,on,on,on,on,on"
MaskCallbackString "|||||||hidecrit|"
MaskEnableString "on,on,on,on,on,on,on,on,on"
MaskVisibilityString "on,on,on,on,on,on,on,on,off"
MaskToolTipString "on,on,on,on,on,on,on,on,on"
MaskVarAliasString ",,,,,,,,"
MaskVariables "A=@1;B=@2;C=@3;D=@4;ic=@5;AbsTol="
"&6;SampleTime=@7;method=&8;Wc=@9;"
MaskInitialization "st=SampleTime;\nif length(st)>1\n"
" st=SampleTime(1);\nend\nif(st>0)\n [Ad, Bd, Cd, Dd, icd] = sldiscutil("
"'discstatespace', {st,method,Wc,A,B,C,D,ic});\nend\nsldiscutil('initssmask', "
"st);\nif(st==0)\nset_param([gcb '/State Space'], 'AbsoluteTolerance', AbsTol)"
";\nend"
MaskDisplay "text( 0.5, 0.65, 'x'' = Ax+Bu', '"
"horizontalAlignment', 'center');\ntext( 0.5, 0.4, 'y = Cx+Du', 'horizontalAli"
"gnment', 'center');\ntext( 0.5, 1.0, method, 'verticalAlignment', 'top')"
MaskSelfModifiable on
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "port"
MaskIconUnits "normalized"
MaskValueString "ssobsctrl_v.a|ssobsctrl_v.b|ssobs"
"ctrl_v.c|ssobsctrl_v.d|0|auto|dt|zoh|1"
System {
Name "Observer-\nController"
Location [81, 369, 373, 516]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "In1"
Position [25, 68, 55, 82]
}
Block {
BlockType DiscreteStateSpace
Name "Discrete State-Space"
Position [85, 52, 200, 98]
A "Ad"
B "Bd"
C "Cd"
D "Dd"
X0 "icd"
SampleTime "SampleTime"
}
Block {
BlockType Outport
Name "Out1"
Position [240, 68, 270, 82]
}
Line {
SrcBlock "In1"
SrcPort 1
DstBlock "Discrete State-Space"
DstPort 1
}
Line {
SrcBlock "Discrete State-Space"
SrcPort 1
DstBlock "Out1"
DstPort 1
}
}
}
Block {
BlockType Sum
Name "Sum"
Ports [2, 1]
Position [185, 90, 205, 110]
BackgroundColor "yellow"
ShowName off
IconShape "round"
Inputs "++|"
InputSameDT off
OutDataTypeMode "Inherit via internal rule"
}
Block {
BlockType Outport
Name "u"
Position [230, 93, 260, 107]
BackgroundColor "yellow"
}
Line {
SrcBlock "y"
SrcPort 1
DstBlock "Mux"
DstPort 1
}
Line {
SrcBlock "r"
SrcPort 1
DstBlock "Gain"
DstPort 1
}
Line {
SrcBlock "Gain"
SrcPort 1
Points [30, 0]
DstBlock "Sum"
DstPort 1
}
Line {
SrcBlock "Observer-\nController"
SrcPort 1
DstBlock "Sum"
DstPort 2
}
Line {
SrcBlock "Sum"
SrcPort 1
Points [0, 0]
Branch {
Points [0, 75; -145, 0]
DstBlock "Mux"
DstPort 2
}
Branch {
Points [0, 0]
DstBlock "u"
DstPort 1
}
}
Line {
SrcBlock "Mux"
SrcPort 1
DstBlock "Observer-\nController"
DstPort 1
}
}
}
Block {
BlockType Demux
Name "Demux1"
Ports [1, 3]
Position [145, 35, 150, 145]
BackgroundColor "yellow"
ShowName off
Outputs "3"
}
Block {
BlockType Demux
Name "Demux2"
Ports [1, 3]
Position [145, 170, 150, 280]
BackgroundColor "yellow"
ShowName off
Outputs "3"
}
Block {
BlockType Terminator
Name "Terminator2"
Position [195, 80, 215, 100]
BackgroundColor "yellow"
ShowName off
}
Block {
BlockType Terminator
Name "Terminator3"
Position [195, 45, 215, 65]
BackgroundColor "yellow"
ShowName off
}
Block {
BlockType Terminator
Name "Terminator5"
Position [195, 180, 215, 200]
BackgroundColor "yellow"
ShowName off
}
Block {
BlockType Terminator
Name "Terminator6"
Position [195, 215, 215, 235]
BackgroundColor "yellow"
ShowName off
}
Block {
BlockType Outport
Name "Collective"
Position [465, 188, 495, 202]
BackgroundColor "yellow"
}
Line {
SrcBlock "Alt Limit"
SrcPort 1
DstBlock "Collective"
DstPort 1
}
Line {
SrcBlock "Pos Cmd"
SrcPort 1
DstBlock "Demux1"
DstPort 1
}
Line {
SrcBlock "Pos"
SrcPort 1
DstBlock "Demux2"
DstPort 1
}
Line {
SrcBlock "Altitude Controller"
SrcPort 1
DstBlock "Alt Limit"
DstPort 1
}
Line {
SrcBlock "Demux2"
SrcPort 2
DstBlock "Terminator6"
DstPort 1
}
Line {
SrcBlock "Demux2"
SrcPort 1
DstBlock "Terminator5"
DstPort 1
}
Line {
SrcBlock "Demux2"
SrcPort 3
DstBlock "Altitude Controller"
DstPort 2
}
Line {
SrcBlock "Demux1"
SrcPort 3
DstBlock "Altitude Controller"
DstPort 1
}
Line {
SrcBlock "Demux1"
SrcPort 1
DstBlock "Terminator3"
DstPort 1
}
Line {
SrcBlock "Demux1"
SrcPort 2
DstBlock "Terminator2"
DstPort 1
}
}
}
Block {
BlockType SubSystem
Name "Euler Control"
Ports [6, 3]
Position [545, 27, 655, 288]
BackgroundColor "yellow"
TreatAsAtomicUnit off
System {
Name "Euler Control"
Location [209, 74, 964, 685]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
Block {
BlockType Inport
Name "Body Rate"
Position [30, 78, 60, 92]
BackgroundColor "yellow"
}
Block {
BlockType Inport
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -