概述
1:实际动态系统的问题描述
现对某人体重进行建模:
现给出初始条件m=70kg,该怎么在simulink中设置呢?
2:仿真中遇到的问题
用传递函数描述系统有两种建模方法,一种是根据时域表达式建立(法1);一种是信号与系统中的信号流图方法建立传函(法2)。
simulink中搭建如下:
然后令积分器的Initial condition 为70
进行仿真,结果如下:
结果分析:可以看出输出m的初值不同,但最终稳态结果相同。这就出了问题。
为什么两个传函模型里积分器都设计了初值70,但结果却相差这么大呢?
3:问题解决方法-本质的阐述
我们令积分器的Initial condition 为X,其实就是令该积分器的输出变量的初值为X,要知道,你的积分器的输出不一定就是题目中要求的输出变量,这两个变量之间可能会有一个等式关系。比如:
法1积分器输出变量与M的关系就是:y=x
法2是:y=(1/7000)x
因此,如果我们将法2积分器的初值设为7000*70,结果就对了,如下图:
4:验证
验证1:将信号流图用另一种形式表达(法3),积分器初值设置为70。也可以实现正确设置初始值。
验证2:
此时,再在积分器里设置初值为70,可以看出其输出m不再是从70开始变化(虽然最终稳态值不变化)。此时该怎么设置呢?那就是找到x与m的关系:x-b1*u=m
故,积分器初值为70-(b1+u)
结果如下:
验证3:
此时左边第一个积分器的初值为0,第二个积分器初值为5
5:总结
要向正确设置积分器的初值,那就是找对积分器输出变量与系统输出变量之间的关系!!
ps.根据LTI特性,任何非零初始状态都可看作零初始条件+某个冲激输入共同作用。
本文为原创,转载请联系我。
最后
以上就是顺心战斗机为你收集整理的Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法的全部内容,希望文章能够帮你解决Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复