Matlab/Simulink求解微分方程样例分享

2022-07-27 09:26:36 浏览数 (1)

最近几天关注的读者数量激增,不知道是不是都是看了之前的一篇文章--基于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

0 人点赞