📄 fdctools.mdl
字号:
BlockType Sum
Name "Sum"
Ports [4, 1, 0, 0, 0]
Position [120, 35, 135, 90]
FontName "Arial"
FontSize 9
ShowName off
Inputs "++++"
}
Block {
BlockType Step
Name "step1"
Position [30, 5, 50, 25]
FontName "Arial"
FontSize 9
Time "ts1"
Before "0"
After "y1-cnst"
}
Block {
BlockType Step
Name "step2"
Position [30, 45, 50, 65]
FontName "Arial"
FontSize 9
Time "ts1+dt1"
Before "0"
After "-y1+y2"
}
Block {
BlockType Step
Name "step3"
Position [30, 85, 50, 105]
FontName "Arial"
FontSize 9
Time "ts1+dt1+dt2"
Before "0"
After "-y2+cnst"
}
Block {
BlockType Outport
Name "doublet"
Position [180, 55, 200, 75]
DropShadow on
FontName "Arial"
FontSize 9
Port "1"
OutputWhenDisabled held
InitialOutput "0"
}
Line {
SrcBlock "Const."
SrcPort 1
Points [40, 0; 0, -50]
DstBlock "Sum"
DstPort 4
}
Line {
SrcBlock "Sum"
SrcPort 1
DstBlock "doublet"
DstPort 1
}
Line {
SrcBlock "step1"
SrcPort 1
Points [25, 0; 0, 25]
DstBlock "Sum"
DstPort 1
}
Line {
SrcBlock "step2"
SrcPort 1
DstBlock "Sum"
DstPort 2
}
Line {
SrcBlock "step3"
SrcPort 1
Points [25, 0; 0, -25]
DstBlock "Sum"
DstPort 3
}
}
}
Block {
BlockType SubSystem
Name "MA"
Ports [0, 0, 0, 0, 0]
Position [315, 90, 395, 165]
DropShadow on
FontName "Arial"
FontSize 11
ShowName off
ShowPortLabels off
MaskDisplay "disp('MA filter\\nwith better\\nicon\\n\\n(doubl"
"e click)')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
System {
Name "MA"
Location [4, 60, 176, 191]
Open off
ScreenColor white
Block {
BlockType DiscreteStateSpace
Name "MA-filter"
Position [60, 66, 110, 104]
FontName "Arial"
FontSize 9
A "Ama"
B "Bma"
C "Cma"
D "Dma"
X0 "xinit"
SampleTime "Ts"
MaskType "MA-filter"
MaskDescription "Digital Moving Average filter"
MaskHelp "Digital Moving Average filter. \\ny(k) "
"= 1/n * (u(k) + u(k-1) + ... + u(k-ns)) "
"\\nwhere ns is the number of samples "
"\\nfor averaging (to be specified by "
"\\nthe user). "
MaskPromptString "Number of samples for averaging:|Sample "
"time:|Initial value of input signal:"
MaskStyleString "edit,edit,edit"
MaskVariables "ns=@1;Ts=@2;uinit=@3;"
MaskInitialization " Ama=[zeros(1,ns);[eye(ns-1) zeros(ns-1,1)]]"
"; Bma=[1; zeros(ns-1,1)]; Cma=1/ns*ones(1,ns"
"); Dma=0; xinit=uinit*ones(ns,1); y=dstep(A"
"ma,Bma,Cma,Dma,1,ns*1.5); yy=[]; for "
"i = 1:length(y)-1; yy=[yy y(i) y(i+1)]; "
"tt=[tt i i]; end; ly=length(y);"
MaskDisplay "plot(tt,yy,[-0.3*ly 0 0 ly],[0 0 1 1],[0 "
"1],[0 0],-0.3*ly-1,-0.25,ly+1,1.25)"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
MaskValueString "5|0.1|0"
}
Annotation {
Position [87, 17]
VerticalAlignment top
FontName "Arial"
FontSize 9
Text "Drawing the icon of this\nblock requires "
"Control\nSystems Toolbox!"
}
}
}
Block {
BlockType DiscreteStateSpace
Name "MA-filter"
Position [330, 31, 380, 69]
FontName "Arial"
FontSize 11
A "Ama"
B "Bma"
C "Cma"
D "Dma"
X0 "xinit"
SampleTime "Ts"
MaskType "MA-filter"
MaskDescription "Digital Moving Average filter"
MaskHelp "Digital Moving Average filter. \\ny(k) = "
"1/n * (u(k) + u(k-1) + ... + u(k-ns)) \\nwhere "
"ns is the number of samples \\nfor averaging "
"(to be specified by \\nthe user). "
MaskPromptString "Number of samples for averaging:|Sample time:|In"
"itial value of input signal:"
MaskStyleString "edit,edit,edit"
MaskInitialization "ns=@1; Ama=[zeros(1,ns);[eye(ns-1) zeros(ns-1,1)"
"]]; Bma=[1; zeros(ns-1,1)]; Cma=1/ns*ones(1,ns);"
" Dma=0; Ts=@2; uinit=@3; xinit=uinit*ones(ns,1);"
MaskDisplay "disp('MA')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
MaskValueString "5|0.1|0"
}
Block {
BlockType StateSpace
Name "Matrix Gain"
Position [105, 30, 165, 60]
FontName "Arial"
FontSize 11
A "A"
B "B"
C "C"
D "D"
X0 "0"
MaskType "Matrix Gain"
MaskDescription "Matrix Gain"
MaskHelp "This block implements an matrix gain.\\nThe "
"matrix dimensions must be in accordance\\nwith "
"the dimension of the inputvector."
MaskPromptString "Gain matrix:"
MaskStyleString "edit"
MaskInitialization "A=[]; B=[]; C=[]; D=@1;"
MaskDisplay "disp('y = M*u')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
MaskValueString "eye(3)"
}
Block {
BlockType SubSystem
Name "On/off switch"
Ports [2, 1, 0, 0, 0]
Position [225, 30, 260, 65]
FontName "Arial"
FontSize 11
ShowPortLabels off
MaskType "On/off switch"
MaskDescription " If input(1) = 1 \n output = input(2) "
"\n else if input(1) = 0\n output = 0"
MaskHelp "On/off switch."
MaskDisplay "plot(0,0,100,100,[31,31,32,34,34,32,31,31,0],[50"
",48,47,48,51,53,51,50,50],[100,75,51],[50,50,97]"
");disp('?')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
System {
Name "On/off switch"
Location [4, 60, 251, 263]
Open off
ScreenColor white
Block {
BlockType Inport
Name "crit"
Position [20, 70, 40, 90]
DropShadow on
FontName "Arial"
FontSize 9
Port "1"
PortWidth "-1"
SampleTime "-1"
}
Block {
BlockType Inport
Name "in"
Position [20, 30, 40, 50]
DropShadow on
FontName "Arial"
FontSize 9
Port "2"
PortWidth "-1"
SampleTime "-1"
}
Block {
BlockType Sum
Name "Sum"
Ports [2, 1, 0, 0, 0]
Position [85, 95, 100, 115]
FontName "Arial"
FontSize 9
ShowName off
Inputs "+-"
}
Block {
BlockType Switch
Name "Switch"
Position [165, 89, 190, 121]
FontName "Arial"
FontSize 9
Threshold "0"
}
Block {
BlockType Constant
Name "const."
Position [20, 120, 40, 140]
FontName "Arial"
FontSize 9
Value "0.5"
}
Block {
BlockType Constant
Name "const.1"
Position [20, 159, 40, 181]
FontName "Arial"
FontSize 9
Value "0"
}
Block {
BlockType Outport
Name "out"
Position [210, 95, 230, 115]
DropShadow on
FontName "Arial"
FontSize 9
Port "1"
OutputWhenDisabled held
InitialOutput "0"
}
Line {
SrcBlock "crit"
SrcPort 1
Points [20, 0; 0, 20]
DstBlock "Sum"
DstPort 1
}
Line {
SrcBlock "const.1"
SrcPort 1
Points [80, 0; 0, -55]
DstBlock "Switch"
DstPort 3
}
Line {
SrcBlock "Sum"
SrcPort 1
DstBlock "Switch"
DstPort 2
}
Line {
SrcBlock "Switch"
SrcPort 1
DstBlock "out"
DstPort 1
}
Line {
SrcBlock "in"
SrcPort 1
Points [80, 0; 0, 55]
DstBlock "Switch"
DstPort 1
}
Line {
SrcBlock "const."
SrcPort 1
Points [20, 0; 0, -20]
DstBlock "Sum"
DstPort 2
}
}
}
Block {
BlockType SubSystem
Name "Scheduled Gain"
Ports [2, 1, 0, 0, 0]
Position [110, 80, 165, 115]
FontName "Arial"
FontSize 11
ShowPortLabels off
MaskDisplay "plot(0,0,100,100,[0,100,0],[0,50,100]);disp('K(u"
"1) ')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
System {
Name "Scheduled Gain"
Location [4, 42, 455, 207]
Open off
ScreenColor white
Block {
BlockType Inport
Name "schedule \nvector v"
Position [30, 65, 50, 85]
ForegroundColor magenta
DropShadow on
FontName "Arial"
Port "1"
PortWidth "-1"
SampleTime "-1"
}
Block {
BlockType Inport
Name "input u"
Position [30, 120, 50, 140]
DropShadow on
FontName "Arial"
Port "2"
PortWidth "-1"
SampleTime "-1"
}
Block {
BlockType Fcn
Name "Gain Fcn"
Position [85, 66, 335, 84]
ForegroundColor magenta
FontName "Arial"
Expr "sin(u[1])"
}
Block {
BlockType SubSystem
Name "More Info"
Ports [0, 0, 0, 0, 0]
Position [177, 5, 210, 35]
ForegroundColor red
DropShadow on
ShowPortLabels off
MaskDisplay "disp('???')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
System {
Name "More Info"
Location [4, 29, 355, 106]
Open off
ScreenColor white
Annotation {
Position [169, 17]
VerticalAlignment top
ForegroundColor red
FontName "Times New Roman"
FontSize 12
Text "The first input is the schedule signal. "
"Change the \nGain Function to the "
"required gain scheduling function."
}
Annotation {
Position [24456, 7491]
VerticalAlignment top
FontName "Times New Roman"
FontSize 12
Text "Scheduled Gain.\n\nInput 2 is multiplied"
" with a gain which is a function\nof "
"input(-vector) 1. The schedule function "
"should be\nspecified in the block "
"'Gain Fcn'."
}
}
}
Block {
BlockType Product
Name "Product"
Ports [2, 1, 0, 0, 0]
Position [380, 95, 395, 115]
FontName "Arial"
ShowName off
Inputs "2"
}
Block {
BlockType SubSystem
Name "t"
Ports [0, 0, 0, 0, 0]
Position [5, 5, 135, 50]
ForegroundColor blue
ShowName off
ShowPortLabels off
MaskDisplay "disp('Scheduled Gain\\nMarc Rauw\\nAugust "
"1996')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
System {
Name "t"
Location [181, 125, 272, 215]
Open off
ScreenColor white
}
}
Block {
BlockType Outport
Name "y = K*u"
Position [415, 95, 435, 115]
DropShadow on
FontName "Arial"
Port "1"
OutputWhenDisabled held
InitialOutput "0"
}
Line {
SrcBlock "schedule \nvector v"
SrcPort 1
DstBlock "Gain Fcn"
DstPort 1
}
Line {
SrcBlock "Product"
SrcPort 1
DstBlock "y = K*u"
DstPort 1
}
Line {
SrcBlock "input u"
SrcPort 1
Points [305, 0; 0, -20]
DstBlock "Product"
DstPort 2
}
Line {
SrcBlock "Gain Fcn"
SrcPort 1
Points [20, 0; 0, 25]
DstBlock "Product"
DstPort 1
}
}
}
Block {
BlockType S-Function
Name "Soft limiter"
Ports [1, 1, 0, 0, 0]
Position [425, 30, 480, 70]
FontName "Arial"
FontSize 11
FunctionName "softlim"
Parameters "max_u, lin_u"
MaskType "Soft limiter"
MaskDescription "Soft limiter with partly linear throughput"
MaskHelp "See source-code of SOFTLIM.M or type HELP "
"SOFTLIM at the command-line."
MaskPromptString "Limiter range= max. output value= --(min. "
"output value):|% of linear range where y=u "
"(linear throughput):"
MaskStyleString "edit,edit"
MaskInitialization "max_u=max(@1,1e-16); lin_u=min(0.9999,(max(@2,0)"
"/100))*max_u; uplot=[-5*max_u:0.25*max_u:5*max_u"
"]; for i = 1:length(uplot); yplot(i)=softlim([],"
"[],uplot(i),3,max_u,lin_u); end;"
MaskDisplay "plot(uplot, yplot, max_u*[-5,-1,1,5], max_u*[-1,"
"-1,1,1], 0, -1.3*max_u, 0, 1.2*max_u, max_u*[-5,"
"5], [0,0]);"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
MaskValueString "10|10"
}
Block {
BlockType SubSystem
Name "i"
Ports [0, 0, 0, 0, 0]
Position [205, 175, 285, 211]
ForegroundColor red
DropShadow on
FontName "Arial"
FontSize 11
FontWeight bold
ShowName off
OpenFcn "fdchelp('nswitch')"
ShowPortLabels off
MaskDisplay "disp('More info\\nfor n-switch')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate none
MaskIconUnits autoscale
System {
Name "i"
Location [160, 288, 522, 361]
Open off
ScreenColor white
Annotation {
Position [182, 12]
VerticalAlignment top
ForegroundColor red
FontName "Times New Roman"
FontSize 12
Text "Run NSWITCH.M to generate an n-switch "
"with a \ndifferent number of inputs. "
"Type HELP NSWITCH\nat the Matlab command "
"line for more info."
}
}
}
Annotation {
Position [254, 237]
VerticalAlignment top
ForegroundColor red
FontName "Times New Roman"
FontSize 14
Text "The FDC toolbox. Copyright Marc Rauw, 1994-1997"
}
Annotation {
Position [136, 12]
VerticalAlignment top
ForegroundColor blue
FontName "Arial"
FontSize 11
FontWeight bold
Text "GAINS"
}
Annotation {
Position [243, 12]
VerticalAlignment top
ForegroundColor blue
FontName "Arial"
FontSize 11
FontWeight bold
Text "SWITCHES"
}
Annotation {
Position [357, 12]
VerticalAlignment top
ForegroundColor blue
FontName "Arial"
FontSize 11
FontWeight bold
Text "DISCRETE"
}
Annotation {
Position [455, 12]
VerticalAlignment top
ForegroundColor blue
FontName "Arial"
FontSize 11
FontWeight bold
Text "NONLINEAR"
}
Annotation {
Position [40, 12]
VerticalAlignment top
ForegroundColor blue
FontName "Arial"
FontSize 11
FontWeight bold
Text "INPUTS"
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -