| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 
	 | 
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-14 
				
				
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			已知非线性随机微分方程dx/dt=f(x,u)+w(t),其中x为系统状态向量,u为控制输入向量,w(t)为零均值高斯白噪声向量,我的课题需要先将该方程离散化(但不进行线性化),然后针对离散化后得到的非线性离散随机系统,利用可观测量的采样值使用非线性滤波方法对其进行估计,这其中离散化环节该如何处理?怎么用matlab实现啊?急用,谢谢了!
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-15 
				
				年龄: 39 
				
					帖子: 14
				 
				
				
				声望力: 17 ![]()  | 
	
	
	
		
		
			
			 
			
			先线性化再离散没有固定的公式 
		
		
		
		
		
		
		
		
			离散化需要人工做<--此处笔误。下文是正确的 此帖于 2009-04-17 01:33 被 zt_zt 编辑。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-14 
				
				
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			谢谢你的答案,但我想问用龙哥库塔法解出微分方程的数值解后,怎么再按给定的采样时间进行离散化啊?
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-15 
				
				年龄: 39 
				
					帖子: 14
				 
				
				
				声望力: 17 ![]()  | 
	
	
	
		
		
			
			 
			
			离散化不是问题,c2d(sys,T)就可以了。关键问题是线性化,每走一步就要线性化一次计算量太大。如果你的系统特殊就先吧线性化表示成函数就变成时变系统了。或者采用次优滤波。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-14 
				
				
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			我是用UKF滤波算法,所以不能进行线性化?c2d()对于非线性系统也可以?sys怎么代入啊?但是用EKF算法需要线性化,我也愁着呢。
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#6 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-14 
				
				
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			系统很简单,是二阶微分方程组dx1/dt=-x2;dx2/dt=-0.2(1-x1^2)*x2
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#7 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-14 
				
				
				
					帖子: 7
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			写错了,是dx1/dt=-x2;dx2/dt=-0.2(1-x1^2)*x2+x1,y=[x1 x2]'
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#8 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-04-15 
				
				年龄: 39 
				
					帖子: 14
				 
				
				
				声望力: 17 ![]()  | 
	
	
	
		
		
			
			 
			
			UKF的话好像不要线性化的。可能我记错了,大概是跟PF差不多思想的吧。c2d是线性化以后再做的。 
		
		
		
		
		
		
		
	比方说你那个方程在某点线性化后a=[1 2;3 4],b=[1 2],c=[3 4],d=0 就调用sys=c2d(ss(a,b,c,d),T).T为采样时间。 让后回的sys可以直接带matlab自带kalman函数。 或者G=eye+T*a B=B H=T*B d=0离散化,但此时X(t)—>X(kT)中T未提出,所以最终滤波结束请在X(k)上乘以T。(也可以在滤波前就处理下,感觉都差不多的)  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |