利用MATLAB绘制相轨迹

利用MATLAB绘制相轨迹

    不直接用时间变量而用状态变量表示运动的方法称为相空间方法,也称为状态空间方法。在自动控制理论中,把具有直角坐标x和x'的平面叫做相平面。相平面是二维的状态空间,二阶系统的某一状态对应于相平面上的一点,状态随时间转移的情况对应于相平面上点的移动。相平面上的点随时间变化描绘出来的曲线叫做相轨迹。相轨迹作为研究二阶非线性系统的方法之一,传统绘制方法包括解析法等倾线法。现在,我们研究如何利用Simulink的仿真功能绘制一个二阶系统的相轨迹。

1、MATALB版本

    博主的MATLAB版本是R2016a。

2、基本思想

(1)相变量的实现:利用积分器(integrator)获得相变量(x,x')

利用MATLAB绘制相轨迹_第1张图片

(2)设置初始值:双击打开积分器模块的参数对话框,在Initial condition source中选择为internal,在Initial condition里输入初始值。当然,也可以选择external来设置,然后在外面选择信号源。但是博主要画的比较简单,没有必要~

利用MATLAB绘制相轨迹_第2张图片

(3)系统的连接:根据实际情况连接就可以啦;如果想要数据的话也可以设置Simulink里面输出数组。以下分别在解析式已知和解析式未知的情况下举几个具体的例子。

3、应用举例

(1)解析式已知(为了简便与验证,我们先画线性系统的相轨迹)

    1)x''+x=0(无阻尼运动)

    这是一个无阻尼运动的方程,它的相轨迹应该是一个椭圆。现在我们就要看一看我们的猜想对不对啦~初始条件不是十分的重要,我们就认为x'(0)=1,x(0)=1就行。

    首先变换一下方程:x''=-x

    然后连接好结构图:

利用MATLAB绘制相轨迹_第3张图片

    之后插入一个示波器来观察x与x'的变化曲线啦,以x为x轴,以x'为y轴就行~

利用MATLAB绘制相轨迹_第4张图片

    别忘了如果需要的话应当在Simulation中的Model Configuration Parameters中进行一些必要的设置哦。之后就可以Run啦~开心

利用MATLAB绘制相轨迹_第5张图片

    真的是椭圆耶,真的真的是椭圆耶!

    验证完成,我们下面尝试画一些解析式未知的非线性系统的相轨迹。

    2)解析式未知

    利用MATLAB绘制相轨迹_第6张图片

    如上图系统,已知c(0)=-3,c'(0)=0,求系统相轨迹。

    连接如下图:

利用MATLAB绘制相轨迹_第7张图片

    可以看到,关键是对于传递函数环节做出一些变动,使我们可以对于初值进行调整。但是问题自然的提出,就是如果传递函数分子分母是同次或仅高一次,那么该如何处理呢?这个问题在这里提出,以后有空想想QAQ

    仿真结果如下:

利用MATLAB绘制相轨迹_第8张图片

    这个结果仅检验是正确的,也就是说以上的处理是合理的。

以上就是关于利用Simulink进行相轨迹画图的全部内容。希望看到的人能解答一下文中提出的问题,或者提供一点想法也行啊QAQ

4、参考文献

    《自动控制原理》程鹏主编,高等教育出版社

你可能感兴趣的:(MATLAB,自动控制原理,MATLAB,相轨迹)