Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法

1:实际动态系统的问题描述

现对某人体重进行建模:
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第1张图片
现给出初始条件m=70kg,该怎么在simulink中设置呢?

2:仿真中遇到的问题

用传递函数描述系统有两种建模方法,一种是根据时域表达式建立(法1);一种是信号与系统中的信号流图方法建立传函(法2)。
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第2张图片
simulink中搭建如下:
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第3张图片
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第4张图片
然后令积分器的Initial condition 为70
进行仿真,结果如下:
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第5张图片
结果分析:可以看出输出m的初值不同,但最终稳态结果相同。这就出了问题。
为什么两个传函模型里积分器都设计了初值70,但结果却相差这么大呢?

3:问题解决方法-本质的阐述

我们令积分器的Initial condition 为X,其实就是令该积分器的输出变量的初值为X,要知道,你的积分器的输出不一定就是题目中要求的输出变量,这两个变量之间可能会有一个等式关系。比如:
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第6张图片
法1积分器输出变量与M的关系就是:y=x
法2是:y=(1/7000)x
因此,如果我们将法2积分器的初值设为7000*70,结果就对了,如下图:Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第7张图片

4:验证

验证1:将信号流图用另一种形式表达(法3),积分器初值设置为70。也可以实现正确设置初始值。
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第8张图片
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第9张图片
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第10张图片
验证2:
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第11张图片
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第12张图片
此时,再在积分器里设置初值为70,可以看出其输出m不再是从70开始变化(虽然最终稳态值不变化)。此时该怎么设置呢?那就是找到x与m的关系:x-b1*u=m
故,积分器初值为70-(b1+u)
结果如下:
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第13张图片
验证3:
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第14张图片
Simulink中对动态系统建模,已知的初始条件在哪里设置?-问题解决方法_第15张图片
此时左边第一个积分器的初值为0,第二个积分器初值为5

5:总结

要向正确设置积分器的初值,那就是找对积分器输出变量与系统输出变量之间的关系!!
ps.根据LTI特性,任何非零初始状态都可看作零初始条件+某个冲激输入共同作用。


本文为原创,转载请联系我。

你可能感兴趣的:(simulink)