📄 airgk.mdl
字号:
ShowName off
Elements "[1:9]"
InputPortWidth "12"
Port {
PortNumber 1
Name "Airspeed, Rate, Attitude"
TestPoint off
RTWStorageClass "Auto"
}
}
Block {
BlockType Terminator
Name "Terminator1"
Position [530, 160, 550, 180]
ShowName off
}
Block {
BlockType Terminator
Name "Terminator2"
Position [530, 205, 550, 225]
ShowName off
}
Block {
BlockType Terminator
Name "Terminator3"
Position [530, 250, 550, 270]
ShowName off
}
Block {
BlockType Outport
Name "out"
Position [595, 73, 625, 87]
Port "1"
OutputWhenDisabled "held"
InitialOutput "[]"
}
Line {
Name "Controls"
Labels [1, 1]
SrcBlock "controls"
SrcPort 1
DstBlock "Terminator3"
DstPort 1
}
Line {
Name "Others"
Labels [1, 1]
SrcBlock "others"
SrcPort 1
DstBlock "Terminator2"
DstPort 1
}
Line {
Name "xdot"
Labels [1, 1]
SrcBlock "xdot"
SrcPort 1
DstBlock "Terminator1"
DstPort 1
}
Line {
SrcBlock "Mux1"
SrcPort 1
DstBlock "out"
DstPort 1
}
Line {
Labels [0, 0]
SrcBlock "GPS Sensors"
SrcPort 1
DstBlock "GPS delay"
DstPort 1
}
Line {
SrcBlock "GPS delay"
SrcPort 1
DstBlock "Mux1"
DstPort 2
}
Line {
SrcBlock "ARA delay"
SrcPort 1
DstBlock "Mux1"
DstPort 1
}
Line {
Name "Position (GPS)"
Labels [1, 0]
SrcBlock "Selector1"
SrcPort 1
DstBlock "GPS Sensors"
DstPort 1
}
Line {
SrcBlock "ARA Sensors"
SrcPort 1
DstBlock "ARA delay"
DstPort 1
}
Line {
Name "Airspeed, Rate, Attitude"
Labels [1, 1]
SrcBlock "Selector2"
SrcPort 1
DstBlock "ARA Sensors"
DstPort 1
}
Line {
SrcBlock "x"
SrcPort 1
Points [0, 0; 35, 0]
Branch {
Points [0, -60]
DstBlock "Selector2"
DstPort 1
}
Branch {
DstBlock "Selector1"
DstPort 1
}
}
}
}
Block {
BlockType SubSystem
Name "uy-Control"
Ports [2, 1, 0, 0, 0]
Position [250, 132, 305, 208]
DropShadow on
ShowPortLabels on
MaskType "General Nonlinear Aircraft Controller"
MaskDescription " This block is a general feedback linearizatio"
"n controller for aircraft.\n The first input is a vector contains the 12 air"
"craft states.\n The second input contains the reference position and velocit"
"y.\n The output contains the commanded deflections (elevator, \n aileron an"
"d rudder) and the thrust force along the body x axis.\n Geometry, Mass and A"
"erodynamic Derivatives should match the \n ones of the aircraft to be contro"
"lled. Ka,Kb,Kc,Kd, are the state space\n (scalar) coefficients of a PID cont"
"roller for the feedback linearized \n attitude dynamics, which behaves as a "
"double integrator system.\n Ku is the proportional forward velocity controll"
"er. The Horizon time \n is the approximated time lag between reference and a"
"ctual trajectory. \n Usually only the aircraft related coefficients need to "
"be changed\n when applying the controller to a different aircraft."
MaskHelp "<p>\n This block is a general feedback lineari"
"zation controller for aircraft.\n The first input is a vector contains the 1"
"2 aircraft states.\n The second input contains the reference position and ve"
"locity.\n The output contains the commanded deflections (elevator, \n ailer"
"on and rudder) and the thrust force along the body x axis.\n Geometry, Mass "
"and Aerodynamic Derivatives should match the \n ones of the aircraft to be c"
"ontrolled. Ka,Kb,Kc,Kd, are the state space\n (scalar) coefficients of a PID"
" controller for the feedback linearized \n attitude dynamics, which behaves "
"as a double integrator system.\n Ku is the proportional forward velocity con"
"troller. The Horizon time \n is the approximated time lag between reference "
"and actual trajectory. \n Usually only the aircraft related coefficients nee"
"d to be changed\n when applying the controller to a different aircraft.\n</p"
">\n<p>\nNote that neither flaps nor stabilators can be used by this control. "
"Also, this control can be used only when the linearized system having thrust,"
" elevators, ailerons, rudder as inputs, and speed, roll, pitch, yaw as output"
"s is non-minimum phase. Usually such a system has 2 zeros on the negative rea"
"l axis, related to alpha and beta respectively. Only occasionally the zero re"
"lated to beta is on the positive real axis. In those cases the system is non-"
"minimum phase and this controller is not usable anymore.\n</p>\n<p>\nThe cont"
"rol surface sign conventions are the same adopted in books such as Stevens-Le"
"wis and Etkin, and in many flight simulators, \nincluding the FDC toolbox. <b"
"r> \nSpecifically, positive elevator deflection causes negative pitching mome"
"nt (Cmde < 0), positive rudder deflection causes negative yawing \nmoment "
"(Cndr < 0), and positive aileron deflection causes negative rolling moment"
" (Clda < 0). Another way to say the same thing is \nthat, the positive ele"
"vators deflection is Trailing Edge Down (TED), the positive rudder(s) deflect"
"ion is Trailing Edge Left (TEL), and, \ntaking as TED the positive ailerons d"
"eflection, da=K*(da_right-da_left), with K usually equal to 1 (FDC) or 1/2.\n"
"</p>\n<p>\nSince this block is largely based on the FDC toolbox, i redirect y"
"ou to the FDC Toolbox manual, for a good explanation of the underlying \ncomp"
"onents. Besides the mask and the fact that the aerodynamic derivatives are ex"
"pressed in the stability axis, the only relevant difference \nwith the FDC to"
"olbox is that in the computation of the aerodynamic forces, q is normalized a"
"s q*cbar/2V instead of q*cbar/V. The majority \nof aeronautics books that i'v"
"e seen use q*cbar/2V.\n</p>\n<p>\nPlease note that the International Measurem"
"ent System is adopted. So, lengths are in meters, masses in Kg, and inertia m"
"oments in Kg*m^2. \nMoreover, forces are in N, moments in N*m, accelerations "
"in g, and angles in radians. For those that use the english system, here are "
"some useful \nconversion factors: <br>\n1 ft = 0.3048 m, 1 lb = 0.4536 Kg"
", 1 slug = 14.593903 Kg , 1 slug*ft^2 = 1.355818 Kg*m^2 \n<br>\n</p>\n<p>\nF"
"inally, there is an <A HREF=\"http://www.aae.uiuc.edu/m-selig/apasim/Aircraft"
"-uiuc.html\">excellent source</A> of aircraft aerodynamic data \nwhich is man"
"tained by Michael S. Selig, Rob Deters, and Glen Dimock at the university of "
"Urbana-Champaign. To use any of the given models \nyou just need to type the "
"supplied aircraft data in the block mask. \n</p>\n<p>\n<p>\nJuly 2006, Giamp"
"iero Campa\n</p>\n</p>"
MaskPromptString "Geometry and Mass : [cbar b S Ix Iy "
" Iz Jxy Jxz Jyz m]|Aerodynamic D-Force Derivatives : [CD0 CDa CDq CDde C"
"Dih]|Aerodynamic L-Force Derivatives : [CL0 CLa CLq CLde CLih]|Aerodynamic Y-"
"Moment Derivatives : [Cm0 Cma Cmq Cmde Cmih]|Aerodynamic X-moment Derivatives"
" : [Cl0 Clb Clp Clr Clda Cldr]|Aerodynamic Z-moment Derivatives : [Cn0 Cnb Cn"
"p Cnr Cnda Cndr]|Controller Coefficients: [Ka Kb Kc Kd Ku]|Horizon Time|Sampl"
"ing Time"
MaskStyleString "edit,edit,edit,edit,edit,edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on,on,on,on,on,on"
MaskCallbackString "||||||||"
MaskEnableString "on,on,on,on,on,on,on,on,on"
MaskVisibilityString "on,on,on,on,on,on,on,on,on"
MaskVariables "GM1=@1;CD_wind=@2;CL_wind=@3;Cm_body=@4;Cl_body"
"=@5;Cn_body=@6;K=@7;THor=@8;Ts=@9;"
MaskDisplay "disp('General\\nAircraft\\nController')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "[0.5486 5.1511 2.8261 47.2259 90.9483 111"
".4754 0 -6.6462 0 190.512]|[0.060 0.430 0 0.0180 0]|[0.385 4.78 8"
".05 0.401 0]|[0.194 -2.12 -36.6 -1.76 0]|[0 -0.023 -0.450 0.2"
"65 -0.161 -0.00229]|[0 0.109 -0.110 -0.200 0.0200 -0.0917]|[-6.75"
" 9 -9 13.5 0.3]|15|0.05"
System {
Name "uy-Control"
Location [55, 367, 811, 621]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
AutoZoom on
Block {
BlockType Inport
Name "sns"
Position [30, 28, 60, 42]
ForegroundColor "orange"
Port "1"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType Inport
Name "ref"
Position [30, 78, 60, 92]
Port "2"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType SubSystem
Name "4CmdsuKinInv"
Ports [2, 2, 0, 0, 0]
Position [235, 72, 290, 163]
DropShadow on
NamePlacement "alternate"
ShowPortLabels on
MaskType "Inverse Nonlinear Aircraft Model"
MaskDescription " This block uses an exact turn coordinatio"
"n constraint\n to obtain velocity and attitude commands from desired acceler"
"ations.\n The first input contains the desired derivatives of the position ("
"x,y,H).\n The second input contains the actual state of the aircraft.\n The"
" first and second outputs contain respectively the commanded\n euler angles "
"and the speed along the x axis (u=Vcos(a)cos(b)).\n NB : The International m"
"easurement system (MKS) is adopted."
MaskHelp " This block uses an exact turn coordinatio"
"n constraint\n to obtain velocity and attitude commands from desired acceler"
"ations.\n The first input contains the desired derivatives of the position ("
"x,y,H).\n The second input contains the actual state of the aircraft.\n The"
" first and second outputs contain respectively the commanded\n euler angles "
"and the speed along the x axis (u=Vcos(a)cos(b)).\n NB : The International m"
"easurement system (MKS) is adopted."
MaskPromptString "Initial Psi (used for Turn Coordination Der"
"ivative)|Sampling Time (used for Turn Coordination Derivative)"
MaskStyleString "edit,edit"
MaskTunableValueString "on,on"
MaskCallbackString "|"
MaskEnableString "on,on"
MaskVisibilityString "on,on"
MaskVariables "Psi0=@1;T=@2;"
MaskDisplay "disp('u-Inverse\\nKinematic\\nModel')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "0|Ts"
Port {
PortNumber 1
Name "rpy des"
TestPoint off
RTWStorageClass "Auto"
}
Port {
PortNumber 2
Name "u des"
TestPoint off
RTWStorageClass "Auto"
}
System {
Name "4CmdsuKinInv"
Location [36, 81, 685, 400]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
AutoZoom on
Block {
BlockType Inport
Name "pdotdes"
Position [25, 113, 55, 127]
ForegroundColor "red"
Port "1"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
Port {
PortNumber 1
Name "xyHdotdes"
TestPoint off
RTWStorageClass "Auto"
}
}
Block {
BlockType Inport
Name "x"
Position [25, 258, 55, 272]
ForegroundColor "blue"
Port "2"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType Demux
Name "Demux"
Ports [1, 3, 0, 0, 0]
Position [270, 94, 275, 146]
BackgroundColor "black"
ShowName off
Outputs "3"
}
Block {
BlockType SubSystem
Name "Exact Turn Coordination"
Ports [3, 3, 0, 0, 0]
Position [415, 34, 480, 166]
ShowPortLabels on
System {
Name "Exact Turn Coordination"
Location [49, 267, 1017, 647]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "automatic"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
AutoZoom on
Block {
BlockType Inport
Name "x"
Position [30, 53, 60, 67]
Port "1"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
Port {
PortNumber 1
Name "x"
TestPoint off
RTWStorageClass "Auto"
}
}
Block {
BlockType Inport
Name "chi"
Position [30, 313, 60, 327]
Port "2"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType Inport
Name "gamma"
Position [210, 163, 240, 177]
Port "3"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType SubSystem
Name "Derivative"
Ports [1, 1, 0, 0, 0]
Position [210, 122, 255, 148]
NamePlacement "alternate"
ShowPortLabels on
MaskType "Time Derivative"
MaskDescription " First order approximation of the "
"time derivative of the input signal,\n the original one is buggy."
MaskPromptString "Sampling Time|Initial Condition"
MaskStyleString "edit,edit"
MaskTunableValueString "on,on"
MaskCallbackString "|"
MaskEnableString "on,on"
MaskVisibilityString "on,on"
MaskVariables "T=@1;x0=@2;"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "T|Psi0"
Port {
PortNumber 1
Name "psidot"
TestPoint off
RTWStorageClass "Auto"
}
System {
Name "Derivative"
Location [233, 183, 598, 305]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "white"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
AutoZoom on
Block {
BlockType Inport
Name "x"
Position [310, 48, 340, 62]
Orientation "left"
Port "1"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType Product
Name "Product2"
Ports [2, 1, 0, 0, 0]
Position [80, 26, 110, 64]
Orientation "left"
ShowName off
Inputs "/*"
SaturateOnIntegerOverflow on
}
Block {
BlockType Sum
Name "Sum4"
Ports [2, 1, 0, 0, 0]
Position [130, 45, 150, 65]
Orientation "left"
ShowName off
IconShape "round"
Inputs "|+-"
SaturateOnIntegerOverflow on
}
Block {
BlockType UnitDelay
Name "Unit Delay1"
Position [170, 74, 205, 96]
Orientation "left"
ShowName off
X0 "x0"
SampleTime "T"
}
Block {
BlockType ZeroOrderHold
Name "Zero-Order\nHold1"
Position [265, 45, 285, 65]
Orientation "left"
ShowName off
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -