找回密码
 注册
Simdroid-非首页
查看: 200|回复: 12

simulink里如何实现高阶微分

[复制链接]
发表于 2011-7-21 00:47:07 | 显示全部楼层 |阅读模式 来自 德国
大家好,我现在做控制器设计,还在simulink仿真阶段。现在需要对一个阶梯信号求三次微分,一阶,二阶,三阶微分在之后的subsystem都要用到。但是微分效果都不好,即使我把模拟步长设置的很小。

我试了一下一阶微分后接一个积分器得出信号和输入是重合的。但是二阶微分之后加两个积分却不能和输入完全重合,偏差很大。请问是为什么,做控制的人都知道,在matlab里面积分(1/s)很容易实现,但是微分(s)就难了。我也知道纯微分是不可能实现的,simulink里时间连续域用的还是差分,采样时间就是步长。即是我用离散域的差分和积分也是得出这个效果。我这里设置的步长是0.0001s才有这个结果 ,但实际中控制器采样率不可能到那么高。

在这里就是想问一下,为什么会出现那个现象。有人说高阶差分引起的roundoff error,还有人说微分(差分)部分前要加低通。
下面是附图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| 发表于 2011-7-21 19:03:34 | 显示全部楼层 来自 德国
Simdroid开发平台
:o:o:o:o:P:P:$
回复 不支持

使用道具 举报

发表于 2011-7-25 03:42:59 | 显示全部楼层 来自 清华大学紫荆公寓
看误差越来越大倾向认为确实是由于截断/舍入误差引起,看微分图这里微分的数值稳定性也很差。可以尝试:1.增加仿真数据精度Simulation->Configuration Parameters->Solver中改小tolorance;2.如你所言微分后加低通;3.若subsystem形式不复杂并有确切的传递函数的话,可以考虑不用simulink而直接用控制系统工具箱,用命令实现符号运算,再数值化最终结果。PS:simulink偶也是初学,不保证管用哈..:loveliness:

评分

1

查看全部评分

回复 不支持

使用道具 举报

发表于 2011-7-25 09:06:23 | 显示全部楼层 来自 北京
单纯差分的方式,似乎难以有好的效果,可以试试其他微分的方法,用S-函数来实现,在simulink中使用
回复 不支持

使用道具 举报

 楼主| 发表于 2011-7-26 06:25:02 | 显示全部楼层 来自 德国
3# 机械虫虫
可以考虑不用simulink而直接用控制系统工具箱,用命令实现符号运算


请问这里是意思啊?
回复 不支持

使用道具 举报

 楼主| 发表于 2011-7-26 06:25:33 | 显示全部楼层 来自 德国
4# ljelly
S 试过了,里面用的还是diff命令,结果也不好
回复 不支持

使用道具 举报

 楼主| 发表于 2011-7-26 06:26:39 | 显示全部楼层 来自 德国
还有,我现在把微分和积分都换成时间离散的,并设置仿真步长为固定且很小,可以得到很好的结果。
回复 不支持

使用道具 举报

发表于 2011-7-26 11:40:23 | 显示全部楼层 来自 北京
4# ljelly
S 试过了,里面用的还是diff命令,结果也不好
xxhui 发表于 2011-7-26 06:25

我说的是自己写的,你怎么会试过了
S-函数,不是simulink中的微分模块
回复 不支持

使用道具 举报

 楼主| 发表于 2011-7-28 22:54:36 | 显示全部楼层 来自 德国
我自己也写了s函数
回复 不支持

使用道具 举报

发表于 2011-7-28 23:13:07 | 显示全部楼层 来自 黑龙江哈尔滨
我自己也写了s函数
xxhui 发表于 2011-7-28 22:54


maple 有个产品好像叫 maple toolbox for  matlab , 可以保证很好的数值精度, 你可以试试。 simulink 不知道行不行。

http://www.cybernet.sh.cn/cca/cn/maple/maplematlab/index.asp
回复 不支持

使用道具 举报

发表于 2011-8-1 11:55:25 | 显示全部楼层 来自 甘肃兰州
关注这个问题~
回复 不支持

使用道具 举报

发表于 2011-8-2 22:12:52 | 显示全部楼层 来自 黑龙江哈尔滨
这里有个很有启发的关于 round off error 的帖子
http://blogs.mathworks.com/seth/2009/12/14/round-off-error/
回复 不支持

使用道具 举报

发表于 2011-8-2 22:19:40 | 显示全部楼层 来自 黑龙江哈尔滨
本帖最后由 TBE_Legend 于 2011-8-2 22:21 编辑

嗯, 这很可能是个比较好的解决方案。 文件中还有例子哦 :victory:

http://www.mathworks.de/matlabce ... ce-with-mathematica
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-6 10:29 , Processed in 0.046704 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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