📄 kalman.mdl
字号:
state {
id 20
labelString "eML_blk_kernel()"
position [18 64.5 118 66]
fontSize 12
chart 19
treeNode [19 0 0 0]
superState SUBCHART
subviewer 19
type FUNC_STATE
decomposition CLUSTER_STATE
eml {
isEML 1
script "function [xout,xo,off] = kalkman(xi,yi,mask,nis)\n"
"\n"
"persistent key;\n"
"\n"
"persistent Xrk;\n"
"persistent Xk;\n"
"persistent Xk_1;\n"
"\n"
"persistent Pk_k;\n"
"persistent Pk_k1;\n"
"persistent Pk_1;\n"
"\n"
"persistent Kg;\n"
"persistent Zk;\n"
"persistent Fk; \n"
"persistent Sk;\n"
"persistent Vk;\n"
"\n"
"persistent Ak;\n"
"persistent Ak_1;\n"
"\n"
"persistent T;\n"
"persistent I;\n"
"persistent H;\n"
"persistent R;\n"
"persistent Q;\n"
"persistent Tau;\n"
"persistent xtest;\n"
"persistent num;\n"
"persistent q;\n"
"\n"
"persistent Xrky;\n"
"persistent Xky;\n"
"persistent Xky_1;\n"
"\n"
"persistent Pky_k;\n"
"persistent Pky_k1;\n"
"persistent Pky_1;\n"
"\n"
"persistent Kgy;\n"
"persistent Zky;\n"
" \n"
"persistent Sky;\n"
"persistent Vky;\n"
"persistent X\n"
"persistent Y\n"
"persistent N\n"
"persistent Xy\n"
"persistent Yy\n"
"persistent NI\n"
"persistent FF\n"
"persistent TTx\n"
"persistent TTy\n"
"persistent q1\n"
"persistent Wx\n"
"if isempty(key)\n"
" %q2 = quantizer('ufixed', 'floor', 'saturate', [31 31])"
";\n"
" \n"
" key = 1; \n"
" \n"
" T = 2e-2;\n"
" %T = quantize(q2,T);\n"
" Xrk = -50*[1;0;0];\n"
" Xk = -1*[1;1;1];\n"
" Xk_1 = -50*[1;0;0]; \n"
" \n"
" Pk = 5e-4*[1 0 0;0 1 0;0 0 1];\n"
" \n"
" Pk_1 = 5e-4*[1 0 0;0 1 0;0 0 1];\n"
"\n"
" Kg = 1e-2*[1;1;1]; \n"
" Sk = 10e-1*[1; 0; 0]; \n"
" Vk = 5e-1; \n"
" \n"
" \n"
" Xrky = 1*[1;0;0];\n"
" Xky = 50*[1;1;1];\n"
" Xky_1 = 50*[1;0;0]; \n"
" \n"
" Pky = 5e-1*[1 0 0;0 1 0;0 0 1];\n"
" Pkky_1 = 5e-4*[1 0 0;0 1 0;0 0 1];\n"
" Pky_1 = 5e-1*[1 0 0;0 1 0;0 0 1];\n"
"\n"
" Kgy = 1e-1*[1;1;1]; \n"
" Sky = 10e-1*[1; 0; 0]; \n"
"\n"
" \n"
" \n"
" Fk = [1 T (T^2)/2;0 1 T;0 0 1];\n"
" Tau = [0;0;T];\n"
" H = [1 0 0];\n"
" Q = 5e-3%1/4294967296;; \n"
" R = 8e-3;%e-1; \n"
" %R = 5e-2;\n"
" I = [1 0 0;0 1 0;0 0 1];\n"
" xtest = 0;\n"
" num=0;\n"
" N=0;\n"
" % q1 = quantizer('ufixed', 'floor', 'saturate', [31 31])"
";\n"
" \n"
" figure;\n"
" X=zeros(1,1500);\n"
" Y=zeros(1,1500);\n"
" Xy=zeros(1,1500);\n"
" Yy=zeros(1,1500);\n"
" FF=zeros(1,1500);\n"
" NI = zeros(1,1500);\n"
" Wx=10e-1*[1; 0; 0]; \n"
"end\n"
"%R= quantize(q,R);\n"
"% SYSTEM TRANSFOR FUNCTION \n"
"\n"
"\n"
"\n"
"if (mask)\n"
" Xrk(1,1) = Xk_1(1,1); \n"
" Xrky(1,1) = Xky(1,1); \n"
" off = 40;\n"
" R = 8e-1;\n"
"else\n"
" Xrk(1,1) = xi; \n"
" Xrky(1,1) = yi; \n"
" off = -40;\n"
"end\n"
" num=num+1;\n"
" if(num==2857)\n"
" num=0;\n"
" N=N+1;\n"
" xtest = xtest+1;\n"
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for "
"x \n"
" %Pk_1 = quantize(q1,Pk_1);\n"
" %Q = quantize(q1,Q);\n"
" Zk = H*Xrk ;\n"
" Pkk_1 = Fk*Pk_1*Fk' + Q*Tau*Tau';\n"
" %Pkk_1 = quantize(q1,Pkk_1);\n"
" %Pkk_1*H';\n"
" Kg = Pkk_1*H'/(H*Pkk_1*H'+R);\n"
" %Kg = quantize(q1,Kg);\n"
" Pk = (I-Kg*H)*Pkk_1;\n"
" % Pk = quantize(q1,Pk);\n"
" %Fk*Xk_1 ;\n"
" Xk = Fk*Xk_1 + (Kg)*(Zk - H*Fk*Xk_1);\n"
" \n"
" Pk_1 = Pk;\n"
" Xk_1 = Xk; \n"
" %Wx=Fk*Xk_1;\n"
" %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% for y"
"\n"
" Zky = H*Xrky ;\n"
" Xky = Fk*Xky_1 + (Kgy)*(Zky - H*Fk*Xky_1);\n"
" % p= Q*Tau*Tau';\n"
" % p(3,3);\n"
" \n"
" Pkky_1 = Fk*Pky_1*Fk' + Q*Tau*Tau';\n"
" % Pkk_1 = quantize(q,Pkk_1);\n"
" Kgy = Pkky_1*H'/(H*Pkky_1*H'+R);\n"
"% %Kg = quantize(q,Kg);\n"
" Pky = (I-Kgy*H)*Pkky_1;\n"
" % Pk = quantize(q,Pk);\n"
" Pky_1 = Pky;\n"
" Xky_1 = Xky;\n"
" X(N)=xi;\n"
" Y(N)=yi;\n"
" NI(N)=nis;\n"
" Xy(N)= Xk(1,1);\n"
" Yy(N)= Xky(1,1);\n"
" FF(N) = N;\n"
" if(N==1500)\n"
" TTx=[X Xy];\n"
" TTy=[Y Yy];\n"
" %X-Xy\n"
" % Y-Yy\n"
" figure, \n"
" plot(X,Y,'r',Xy,Yy,'k');\n"
" % plot(FF,NI,'k');\n"
" N=0;\n"
" end\n"
" end\n"
" \n"
" xout = xtest;\n"
" xo = Xky(1,1); \n"
"\n"
"\n"
"\n"
"\n"
""
editorLayout "100 M4x1[56 74 1288 998]"
fimathString "fimath(...\n"
"'RoundMode', 'floor',...\n"
"'OverflowMode', 'wrap',...\n"
"'ProductMode', 'KeepLSB', 'ProductWordLength', 32,..."
"\n"
"'SumMode', 'KeepLSB', 'SumWordLength', 32,...\n"
"'CastBeforeSum', false)"
treatIntsAsFixpt 0
}
}
junction {
id 21
position [23.5747 49.5747 7]
chart 19
linkNode [19 0 0]
subviewer 19
type CONNECTIVE_JUNCTION
}
transition {
id 22
labelString "{eML_blk_kernel();}"
labelPosition [32.125 19.875 102.544 14.964]
fontSize 12
src {
intersection [0 0 1 0 23.5747 14.625 0 0]
}
dst {
id 21
intersection [7 0 -1 -1 23.5747 42.5747 0 0]
}
midPoint [23.5747 24.9468]
chart 19
linkNode [19 0 0]
dataLimits [23.575 23.575 14.625 34.575]
subviewer 19
drawStyle SMART
executionOrder 1
}
data {
id 23
name "xout"
linkNode [19 0 24]
scope OUTPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
primitive SF_DOUBLE_TYPE
isSigned 1
wordLength "16"
}
}
dataType "inherited"
}
data {
id 24
name "xi"
linkNode [19 23 25]
scope INPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
}
complexity SF_COMPLEX_INHERITED
}
dataType "inherited"
fixptType {
slope 1
baseType SF_INT16_TYPE
}
complexity SF_COMPLEX_INHERITED
}
data {
id 25
name "yi"
linkNode [19 24 26]
scope INPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
primitive SF_DOUBLE_TYPE
isSigned 1
wordLength "16"
}
}
dataType "inherited"
}
data {
id 26
name "xo"
linkNode [19 25 27]
scope OUTPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
primitive SF_DOUBLE_TYPE
isSigned 1
wordLength "16"
}
complexity SF_COMPLEX_INHERITED
}
dataType "inherited"
complexity SF_COMPLEX_INHERITED
}
data {
id 27
name "mask"
linkNode [19 26 28]
scope INPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
primitive SF_DOUBLE_TYPE
isSigned 1
wordLength "16"
}
complexity SF_COMPLEX_INHERITED
}
dataType "inherited"
complexity SF_COMPLEX_INHERITED
}
data {
id 28
name "off"
linkNode [19 27 29]
scope OUTPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
primitive SF_DOUBLE_TYPE
isSigned 1
wordLength "16"
}
complexity SF_COMPLEX_INHERITED
}
dataType "inherited"
complexity SF_COMPLEX_INHERITED
}
data {
id 29
name "nis"
linkNode [19 28 0]
scope INPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
primitive SF_DOUBLE_TYPE
isSigned 1
wordLength "16"
}
}
dataType "inherited"
}
instance {
id 30
name "kalman filter "
machine 1
chart 19
}
chart {
id 31
name "Embedded\n"
"MATLAB Function"
windowPosition [281.813 329.45 200.25 189.75]
viewLimits [0 156.75 0 153.75]
screen [1 1 1280 1024 1.333333333333333]
treeNode [0 32 0 0]
firstTransition 34
firstJunction 33
viewObj 31
machine 1
decomposition CLUSTER_CHART
type EML_CHART
firstData 35
chartFileNumber 3
disableImplicitCasting 1
eml {
name "fcn"
}
}
state {
id 32
labelString "eML_blk_kernel()"
position [18 64.5 118 66]
fontSize 12
chart 31
treeNode [31 0 0 0]
superState SUBCHART
subviewer 31
type FUNC_STATE
decomposition CLUSTER_STATE
eml {
isEML 1
script "function y = fcn(u)\n"
"% This block supports an embeddable subset of the MATLAB la"
"nguage.\n"
"% See the help menu for details. \n"
"\n"
"y =8*u-50;"
editorLayout "100 M4x1[3 389 1288 998]"
fimathString "fimath(...\n"
"'RoundMode', 'floor',...\n"
"'OverflowMode', 'wrap',...\n"
"'ProductMode', 'KeepLSB', 'ProductWordLength', 32,..."
"\n"
"'SumMode', 'KeepLSB', 'SumWordLength', 32,...\n"
"'CastBeforeSum', false)"
treatIntsAsFixpt 0
}
}
junction {
id 33
position [23.5747 49.5747 7]
chart 31
linkNode [31 0 0]
subviewer 31
type CONNECTIVE_JUNCTION
}
transition {
id 34
labelString "{eML_blk_kernel();}"
labelPosition [32.125 19.875 102.544 14.964]
fontSize 12
src {
intersection [0 0 1 0 23.5747 14.625 0 0]
}
dst {
id 33
intersection [7 0 -1 -1 23.5747 42.5747 0 0]
}
midPoint [23.5747 24.9468]
chart 31
linkNode [31 0 0]
dataLimits [21.175 25.975 14.625 42.575]
subviewer 31
drawStyle SMART
executionOrder 1
}
data {
id 35
name "u"
linkNode [31 0 36]
scope INPUT_DATA
machine 1
props {
array {
size "-1"
}
type {
method SF_INHERITED_TYPE
}
complexity SF_COMPL
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -