📄 ann.mdl
字号:
Library {
Name "ann"
Version 3.00
BlockDataTips off
BlockParametersDataTip off
BlockAttributesDataTip off
BlockPortWidthsDataTip off
BlockDescriptionStringDataTip off
BlockMaskParametersDataTip off
ToolBar off
StatusBar off
BrowserShowLibraryLinks off
BrowserLookUnderMasks off
Created "Tue Jan 16 16:15:32 2007"
UpdateHistory "UpdateHistoryNever"
ModifiedByFormat "%<Auto>"
LastModifiedBy "campa"
ModifiedDateFormat "%<Auto>"
LastModifiedDate "Wed May 09 17:01:02 2007"
ModelVersionFormat "1.%<AutoIncrement:37>"
ConfigurationManager "none"
BlockDefaults {
Orientation "right"
ForegroundColor "black"
BackgroundColor "white"
DropShadow off
NamePlacement "normal"
FontName "Helvetica"
FontSize 10
FontWeight "normal"
FontAngle "normal"
ShowName on
}
AnnotationDefaults {
HorizontalAlignment "center"
VerticalAlignment "middle"
ForegroundColor "black"
BackgroundColor "white"
DropShadow off
FontName "Helvetica"
FontSize 10
FontWeight "normal"
FontAngle "normal"
}
LineDefaults {
FontName "Helvetica"
FontSize 9
FontWeight "normal"
FontAngle "normal"
}
System {
Name "ann"
Location [141, 111, 609, 485]
Open on
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "automatic"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
AutoZoom on
ReportName "simulink-default.rpt"
Block {
BlockType SubSystem
Name "ADALINE"
Ports [3, 2, 0, 0, 0]
Position [55, 44, 125, 126]
ShowPortLabels on
MaskType "Adaline NN"
MaskDescription " Self Adaptive Discrete Time MIMO Linear Neura"
"l Network"
MaskHelp "<p>\n This Neural Network is used to adaptivel"
"y approximate\n an affine vector field y=W*x+k, with the input vector \n x "
"being a function of time.\n</p>\n<p>\n The first input is x. <br>\n The sec"
"ond input is the error signal (i.e. e=y-ys). <br>\n The third input is the l"
"earning enable:\n with LE=1 the learning is enabled, \n with LE=0"
" the learning is disabled.\n</p>\n<p>\n The first output is the learned func"
"tion ys(x). <br>\n The second output is the states matrix reshaped columnwis"
"e. <br>\n</p>\n<p>\n The first parameter in the mask is a vector containing "
"Ni and No, \n namely the dimensions (number of elements) of x and y.\n</p>\n"
"<p>\n The second parameter in the mask is the learning rate.\n</p>\n<p>\n T"
"he third parameter in the mask is the stabilizing factor.\n</p>\n<p>\n The f"
"ourth parameter in the mask is a limiter for each element of the weight matri"
"x.\n</p>\n<p>\n The initial condition could be either a vector of No*(Ni+1) "
"\n parameters or a scalar. In the latter case, the scalar\n is repeated No*"
"(Ni+1) times to form the initial condition vector.\n</p>\n<p>\n OUTPUT EQUAT"
"ION: <br>\n At any given time t, if x(t) is the input vector, \n then the h"
"-th output of the neural network is : <br>\n ys(h,t)=0.1*Wo(h,t)+Ws(h,t)*x(t"
") <br>\n where Wo(h,t) and Ws(h,t) are respectively the first element \n an"
"d the rest of the h-th row of the state matrix W(t). <br>\n<br>\n STATE EQUA"
"TION (Learning Algorithm): <br>\n The state matrix W(t) is updated according"
" to the gradient rule:\n W(t+T)=W(t)+eta*(dys/dW)*e(t)-eta*gamma*W(t) <br>\n"
" where eta is the learning rate, dys/dW is a jacobian matrix,\n gamma is th"
"e stabilizing factor (sigma modification),\n e(t)=y(t)-ys(t) is the error ve"
"ctor at time t, and T is the sampling time.\n</p>\n<p>\n The final mask para"
"meter is the sampling time of the block, T.\n</p>\n<p>\n This block is imple"
"mented in Simulink, \n to use it you should have the smxl library in your p"
"ath. \n For further reference see some papers on the ADALINE NN.<br>\n</p>\n"
"<p>\n Giampiero Campa, June 20 2003\n</p>"
MaskPromptString "[ni no]|Learning Rate|Stabilizing Factor|Weight"
" Limiter|Initial Condition|Sample Time"
MaskStyleString "edit,edit,edit,edit,edit,edit"
MaskTunableValueString "on,on,on,on,on,on"
MaskCallbackString "|||||"
MaskEnableString "on,on,on,on,on,on"
MaskVisibilityString "on,on,on,on,on,on"
MaskVariables "dim=@1;eta=@2;gam=@3;L=@4;W=@5;T=@6;"
MaskInitialization "ni=dim(1);no=dim(2);"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "[4 1]|0.1|1e-6|Inf|0|0.05"
Port {
PortNumber 1
Name "nyn"
TestPoint off
RTWStorageClass "Auto"
}
System {
Name "ADALINE"
Location [105, 258, 891, 626]
Open off
ModelBrowserVisibility off
ModelBrowserWidth 200
ScreenColor "automatic"
PaperOrientation "landscape"
PaperPositionMode "auto"
PaperType "usletter"
PaperUnits "inches"
ZoomFactor "100"
AutoZoom on
Block {
BlockType Inport
Name "xn"
Position [45, 202, 75, 218]
Port "1"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType Inport
Name "e"
Position [140, 203, 170, 217]
Port "2"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType Inport
Name "LE"
Position [140, 298, 170, 312]
Port "3"
PortWidth "-1"
SampleTime "-1"
DataType "auto"
SignalType "auto"
Interpolate on
}
Block {
BlockType Constant
Name "Constant"
Position [45, 74, 75, 96]
ShowName off
Value "1e-1"
}
Block {
BlockType Constant
Name "Constant1"
Position [685, 250, 720, 270]
Orientation "left"
ShowName off
Value "gam"
}
Block {
BlockType Saturate
Name "Limiter"
Position [490, 190, 520, 220]
UpperLimit "L"
LowerLimit "-L"
}
Block {
BlockType Mux
Name "Mux8"
Ports [2, 1, 0, 0, 0]
Position [105, 24, 110, 271]
ShowName off
Inputs "2"
DisplayOption "bar"
}
Block {
BlockType Product
Name "Product"
Ports [2, 1, 0, 0, 0]
Position [205, 237, 235, 268]
Inputs "2"
SaturateOnIntegerOverflow on
}
Block {
BlockType Sum
Name "Sum"
Ports [2, 1, 0, 0, 0]
Position [435, 195, 455, 215]
ShowName off
IconShape "round"
Inputs "|++"
SaturateOnIntegerOverflow on
}
Block {
BlockType Sum
Name "Sum1"
Ports [2, 1, 0, 0, 0]
Position [335, 195, 355, 215]
ShowName off
IconShape "round"
Inputs "|+-"
SaturateOnIntegerOverflow on
}
Block {
BlockType UnitDelay
Name "Unit Delay"
Position [555, 187, 575, 223]
ShowName off
X0 "W(:)"
SampleTime "T"
}
Block {
BlockType Gain
Name "eta"
Position [380, 185, 415, 225]
ShowName off
Gain "eta"
SaturateOnIntegerOverflow on
}
Block {
BlockType Product
Name "mod"
Ports [3, 1, 0, 0, 0]
Position [380, 244, 410, 276]
Orientation "left"
Inputs "3"
SaturateOnIntegerOverflow on
}
Block {
BlockType "S-Function"
Name "vrmult"
Ports [2, 1, 0, 0, 0]
Position [625, 141, 665, 174]
ForegroundColor "blue"
FunctionName "vrmult"
Parameters "dims"
PortCounts "[]"
SFunctionModules "''"
MaskType "Simulink Matrix Library Block"
MaskDescription " Real Varying Matrices Multiplication\n I"
"nput 1 : elements of matrix X (n by p)\n Input 2 : elements of matrix Y "
"(p by m)\n Output : elements of matrix X*Y (n by m)\n"
MaskHelp "<p>\nElements of input and output matrices "
"are taken columnwise.\n</p>\n<p>\nTo use this block you should have the smxl "
"library in your path.\n</p>\n"
MaskPromptString "[n p m]"
MaskStyleString "edit"
MaskTunableValueString "on"
MaskEnableString "on"
MaskVisibilityString "on"
MaskVariables "dims=@1;"
MaskDisplay "disp('Z=X*Y')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "[1 ni+1 no]"
}
Block {
BlockType "S-Function"
Name "vrmult1"
Ports [2, 1, 0, 0, 0]
Position [275, 186, 315, 219]
ForegroundColor "blue"
FunctionName "vrmult"
Parameters "dims"
PortCounts "[]"
SFunctionModules "''"
MaskType "Simulink Matrix Library Block"
MaskDescription " Real Varying Matrices Multiplication\n I"
"nput 1 : elements of matrix X (n by p)\n Input 2 : elements of matrix Y "
"(p by m)\n Output : elements of matrix X*Y (n by m)\n"
MaskHelp "<p>\nElements of input and output matrices "
"are taken columnwise.\n</p>\n<p>\nTo use this block you should have the smxl "
"library in your path.\n</p>\n"
MaskPromptString "[n p m]"
MaskStyleString "edit"
MaskTunableValueString "on"
MaskEnableString "on"
MaskVisibilityString "on"
MaskVariables "dims=@1;"
MaskDisplay "disp('Z=X*Y')"
MaskIconFrame on
MaskIconOpaque on
MaskIconRotate "none"
MaskIconUnits "autoscale"
MaskValueString "[ni+1 1 no]"
}
Block {
BlockType Outport
Name "ys"
Position [690, 153, 720, 167]
Port "1"
OutputWhenDisabled "held"
InitialOutput "[]"
}
Block {
BlockType Outport
Name "X"
Position [690, 198, 720, 212]
Port "2"
OutputWhenDisabled "held"
InitialOutput "[]"
}
Line {
SrcBlock "Limiter"
SrcPort 1
DstBlock "Unit Delay"
DstPort 1
}
Line {
SrcBlock "Sum"
SrcPort 1
DstBlock "Limiter"
DstPort 1
}
Line {
SrcBlock "Unit Delay"
SrcPort 1
Points [15, 0]
Branch {
Points [0, -40]
DstBlock "vrmult"
DstPort 2
}
Branch {
Points [0, 0]
Branch {
Points [0, 45; -150, 0]
Branch {
DstBlock "Sum"
DstPort 2
}
Branch {
DstBlock "mod"
DstPort 1
}
}
Branch {
DstBlock "X"
DstPort 1
}
}
}
Line {
SrcBlock "vrmult"
SrcPort 1
DstBlock "ys"
DstPort 1
}
Line {
SrcBlock "Constant1"
SrcPort 1
DstBlock "mod"
DstPort 2
}
Line {
SrcBlock "eta"
SrcPort 1
DstBlock "Sum"
DstPort 1
}
Line {
SrcBlock "Sum1"
SrcPort 1
DstBlock "eta"
DstPort 1
}
Line {
SrcBlock "vrmult1"
SrcPort 1
DstBlock "Sum1"
DstPort 1
}
Line {
SrcBlock "mod"
SrcPort 1
Points [-30, 0]
DstBlock "Sum1"
DstPort 2
}
Line {
SrcBlock "Product"
SrcPort 1
Points [10, 0; 0, -45]
DstBlock "vrmult1"
DstPort 2
}
Line {
SrcBlock "e"
SrcPort 1
Points [10, 0; 0, 35]
DstBlock "Product"
DstPort 1
}
Line {
SrcBlock "LE"
SrcPort 1
Points [10, 0]
Branch {
Points [0, -45]
DstBlock "Product"
DstPort 2
}
Branch {
Points [260, 0; 0, -35]
DstBlock "mod"
DstPort 3
}
}
Line {
SrcBlock "Mux8"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -