声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1426|回复: 2

[电力电机类] 导师不懂,虚心向高手请教:用卡尔曼滤波的干扰力观测器

[复制链接]
发表于 2008-4-12 18:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
导师不懂,完全自己找答案。头疼,苦于寻找结果,没有一起讨论的人。问题说明如下:
要求:利用卡尔曼滤波观测器将干扰力观测出来
实际的干扰力已经混杂在输入量电流中了。为了验证观测器的正确性,我先在Simulink模拟中,将阶越作为干扰力输入。但观测器里面的结果令人头疼!不知道原因何在,请教高手。具体请参见图和附件。

模型函数

模型函数

观测器流程图

观测器流程图

simulink中的模型

simulink中的模型

simulink中的观测器

simulink中的观测器

Runme1st1.m

199 Bytes, 下载次数: 12

参数定义(先运行)

Kalman_Filter.m

538 Bytes, 下载次数: 12

卡尔曼滤波函数

beobachter_mit_kalman_filter.mdl

24.78 KB, 下载次数: 12

观测器

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

 楼主| 发表于 2008-4-14 16:52 | 显示全部楼层
经过昨天和同学的讨论,现在问题比较清楚了。我把我自己的问题说一下。
1.模型状态方程错误: 第一个矩阵应该是[ 1  T  f1;0  1  f2;0  0  1]
2.离散系统积分环节理解错误。在时间连续系统里面,积分环节应该是1/s 得到低一阶的量。而相对应的离散系统里面应该是 Unit Delay,得到上一个时刻的量。
3. Q取值错误。Q为过程方差。我现在模拟的结果是,位移、速度没问题,干扰力无限接近目标值,缓慢增加,但一直没达到。问题出在了Q的取值上面。原来Q取值为Q= [ 0.5  0  0; 0  0.5  0; 0  0  0.5] 是我随便取的。因为不理解其中的含义。问题就出在第3个0.5上面。我个人理解,这三个值表示模型值和观测值之间的差距。取的越小,表示越接近。所以干扰力在慢慢接近目标值,却一直达不到。就像控制里面,没有震动的情况一样。我把3行3列的0.5 取值为很大的一个数时候,干扰力观测值就开始围绕给定值(阶越)震动,最后达到稳定状态。我觉得这里Q值就像控制里面的P环节,使控制的量尽快接近目标值。R值我试了几个对观测结果没什么影响。因为我这里是模拟,如果是真实系统,必须求出R。 R=cov(测量值).

就先想到这些,模拟系统还在完善。但愿对做类似东西的朋友能有帮助,没让我白写。

[ 本帖最后由 nick9806 于 2008-4-14 17:02 编辑 ]
 楼主| 发表于 2008-4-14 16:55 | 显示全部楼层
4. 还有个问题,用Kalman-Filter写的Matlab Fcn有点问题。能有空把正确的程序发上来。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-29 05:37 , Processed in 0.064061 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表