⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kalman.mdl

📁 在matlab simulink 中实现kalman滤波器设计
💻 MDL
📖 第 1 页 / 共 5 页
字号:

	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 + -