图 三维曲线
五、Simulink系统仿真
Simulink是一个用来对动态系统进行建模、仿真和分析的软件包。它支持连续、离散及两者混合的线性和非线性系统,同时它也支持具有不同部分拥有不同采样率的系统仿真。Simulink为用户提供了一个图形化的用户界面,对于用方框图表示的系统,通过图形界面,利用鼠标点击和拖拉方式,建立系统模型就像用铅笔在纸上绘制系统的方框图一样简单,它与用微分方程和差分方程建模的传统仿真软件包相比,具有更直观、更方便、更灵活的优点,它不但实现了可视化的动态仿真,也实现了与MATLAB、C语言或FORTRAN语言,甚至和硬件之间的数据传送,大大的扩展了它的功能。
1、线性化分析实例。
Simulink提供了’linmod’,’dlinmod’两个函数,可以从连续或者是离散系统中提取出线性模型,并用状态空间矩阵A、B、C、D的形式表示。状态空间矩阵所描述的线性系统输出、输入关系如下:
X=Ax+Bu;y=Cx+Du。
其中,x代表状态向量,u代表输入向量,y代表输出向量。 (1)建立一个系统模型,下如图5-1所示。将模型保存为’exa7_13.mdl’.
图5-1 系统模型
(2)回到MATLAB命令窗口,输入下面的命令: [A B C D]=linmod('exa7_13')
进过MATLAB计算后,可以得到系统线性化的状态空间矩阵。 A =
-1.0000 0 0 0 0 -1.0000 0 0 0 0 -1.0000 0 0 0 0 -1.0000 B =
0 0 1.0000 1.0000 C =
0 0 0 0 0 0 0 0 D = 1 0
将线性化的矩阵添加输入模块,使用示波器观察输出,结果如下图所示,模型如下图所示。
(3)输入如下命令,将刚刚线性化的系统转换成LTI对象,结果为: sys=ss(A,B,C,D) 运行结果: a =
x1 x2 x3 x4 x1 -1 -1 0 2 x2 1 0 0 0
x3 0 2 -1 -1 x4 0 0 1 0
b =
u1 x1 0 x2 0 x3 1 x4 0
c =
x1 x2 x3 x4 y1 0 2 0 0 y2 0 0 0 2
d =
u1 y1 1 y2 0
Continuous-time model.
(4)波特图(Bode Phase and Magnitude Franquency Plot)也是常要用到的工具。我们可以把系统线性化后的空间矩阵绘制成波特图: bode(sys); grid on 运行结果:
(5)给出一个阶跃信号,可以得出线性时间响应(Linear Time Response). step(sys); grid on 运行结果:
六、心得体会
为期两周的MATLAB实训在学习与忙碌中度过了,时间虽短,但我们却真真切切的学到了知识,在现实工作中可以运用的知识。
在第一节课,我们便了解到MATLAB是世界上最流行的,应用最广泛的工程计算和仿真软件,它将计算、可视化和编程等功能同时集于开发的环境。同时,我们知道了MATLAB程序的一些最基本的应用和运算,并能够进行一些简单的编程。就这样,实训第一天在期待和兴奋中度过。
接下来的时间,主要是以大家自学和练习为主,老师进行辅导和考察。在学习过程中,不懂得可以相互之间讨论,也可向老师请教,但必须确保自己真正学到了知识,认真的看书并进行编程练习。一天的实习接近尾声时,就是老师考察
大家一天收获的时候了,老师会出一些小题目让大家编程。
就这样,仅仅两周的实训就结束了,虽然不能十分熟悉和运用MATLAB的所有程序,但是我们却打下了一定的基础。在以后,当我们真正开始深入学习这门学问时,我们对它将不会再那么陌生,学起来也将轻松许多。这次实训为我们提供了一个很好的学习机会,唯一不足的是时间有点紧,我们不能早这段时间里学到更多的知识。因此,在这两周打下的基础上,我们需要用自己的努力去自学,以获取更多的知识。
知识是无穷无尽的,知识的获取需要一颗上进的心,老师将我们领进了门,下面的路就应该我们自己去走。
相关推荐: