最近几天关注的读者数量激增,不知道是不是都是看了之前的一篇文章--基于Matlab/Simulink的1/4车辆动力学模型,如果大家是对动力学相关、车辆相关或者simulink求解相关,可以后台留言交流,
这次分享是前两天有个同学咨询了一个关于simulink求解微分方程题目,故借着这个题目和读者分享一下Matlab/Simulink求解微分方程
题干如图,这个题目有2个特殊的地方
1、不像常规的微分方程,给出x3的微分方程
2、x1 x2 x3=8在初始值的时候不成立,
假设1:那么x1 x2 x3=8在初始的时候必须成立,那么就是题目给的初始值有问题,也就是要改成x1=x2=0,x3=8
假设2:x1=x2=x3=0初始值必须成立,那么x1 x2 x3=8在初始的时候就不考虑
我们沿着这两种假设分别做下求解
首先说对应x1和x2的微分求解,先分别把微分部分写出来,直接微分得到x1和x2
第二步,分别根据x1和x2的微分方程求解对应的1/s模块前的数,红框的8应该修改为10,感谢帮忙指正
第三步,分别给x1 x2和x3对应的初始值
在两种不同的假设中
假设1的情况下结果如下,
假设2的情况下,由于x3必须给初始值0,那么就需要额外添加一个memory模块,给x3初值
结果如下
在仿真时间增加的情况下,又会出现不收敛系统报错的情况
故结合仿真结果,偏向于假设1成立,题目给的初始值有问题,也就是要改成x1=x2=0,x3=8