这是一个在各类MATLAB指导书中均有收录的问题,以下将通过这道例题解释一个常用的思路。
例 有初始状态为0的二阶微分方程, 其中
是单位阶跃函数,试建立系统模型并仿真。
1 通过积分器模块进行直接求解
将原微分方程改写为
经积分后得
, 再经积分模块作用后得
, 而
和
经代数运算又产生
, 据此可以建立系统模型并仿真。
建立模型,并设置参数,最后运行示波器,即可得到结果。
注1:同样地,我们可以通过这样的方式解决其他更复杂的微分方程组,只是形式更复杂了。若方程组中有三个以上的变量,此时形式错综复杂,需要借助子系统来完成,或是其他方法。
2 通过传递函数模块求解
对方程两边取Laplace变换,得
经整理得传递函数
建立仿真模型,并设置传递函数模块对应的参数。
3 通过状态方程模块进行求解
若令,
, 那么微分方程
可写成
写成状态方程为
式中,,
,
,
.
建立仿真模型,并设置传递函数模块对应的参数。
4 总结
对于常系数线性微分方程而言,使用传递函数模块和状态方程模块的方法较为优越。但它们需要预先作一些运算才能得到我们可以用的形式,从这一点看,笔算似乎是拉普拉斯变换更复杂一些,但我们可以配合MATLAB的编程模块进行计算,更为简便。积分模块法有着它的优势,它可以对非线性微分方程组进行求解,尽管连线很复杂就是了。