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。(也可以在滤波前就处理下,感觉都差不多的) |
![]() |
![]() |