非线性控制系统 Matlab绘制相轨迹

相平面分析方法对于二阶及其以下的线性或非线性系统均是有效的。在实际系统中,有一大类非线性控制系统,其线性部分和非线性部分可以进行分离,这类系统称为本质非线性系统。下面的讨论主要针对这类系统研究存在典型非线性元件的系统的运动规律。

应用相平面分析法对非线性系统进行研究的目的是:(1)分析系统的稳定性;(2)分析系统的时间响应,即系统的动态性能。

对于大多数本质非线性系统,其结构如图8-15其中,非线性元件对可分为两类:一种是具有解析形式的非线性元件,可在工作点附近进行线性化;另一种则是可 分段线性化的元件,如前面介绍的典型非线性元件。经线性化后,非线性控制系统在各段成为了线性系统。在相平面上,相当于将整个相平面分为若干区域,其中每 一区域对应于系统的一个线性工作状态,可由一个线性微分方程描述,不同分区域的分界线称为相平面开关线。 由于存在分区情况,因此系统在某个区域线性微分方程所对应的奇点可能并不位于该区域,这类奇点称为虚奇点,即系统实际上是无法运行到该平衡点上的。反之, 若某个区域线性微分方程对应的奇点就位于同一区域,则称该类奇点为实奇点。下面通过实例进行说明。

例8-6 有一非线性控制系统如图8-16a所示,令K=1 。讨论下面二种情况下的
相轨迹:


(1)当输入信号为阶跃信号,系统的初始状态为零;

(2)当输入信号为阶跃+斜坡信号,系统的初始状态为零。

解:首先根据控制系统框图,设法得到各分区的线性方程。由

得到:

(8-29)

代入方程,有:

(8-30)

式中e(t)、x(t)为饱和非线性的输出。根据饱和非线性的输入输出特性,可将相平面分为:正饱和、负饱和以及线性区域,如图8-17。

(8-17)

(1) 当输入信号r(t)=R时,,则各区域上的线性方程:

根据上一节介绍的二阶线性系统的根轨迹,在正、负饱和区域根轨迹是α相线根轨迹(见图8-14),而在线性区,由于参数均大于0,奇点可能是稳定焦点或稳定节点,位于相平面的原点,系统的初始状态,因此可粗略画出其相轨迹如图8-18。

(2) 当输入信号,则,并将在不同区域的取值代入式(8-30),有:


图8-18 输入为阶跃信号的相轨迹

可见,在线性区域,系统存在奇点位于( ),该奇点只可能是稳定焦点或节点。在正饱和区,系统的相轨迹渐近于α相线:

在负饱和区,系统的相轨迹渐近于另一条 相线:

根据所给定参数的不同,这些渐近线在相平面上的位置是不同的,同时根据相轨迹走向这一性质,可画出三种情况下系统的相轨迹如图8-19。

图8-19

从图8-19可以发现,对于非线性系统,系统的稳定性和运动轨迹不仅与系统的参数有关,也与系统的初始状态有关。同时在图8-19(c)中,系统趋向于稳 定时的误差不一定为零,误差值由线段OD表征,该值的大小与系统的初始状态有关。可见,对非线性系统,系统的稳态误差也与系统的初始有关。

例8-7 库仑磨擦的方向总是与系统运动速度的方向相反,与速度的大小无关。图8-20是一个带有库仑磨擦的随动系统,其中:。设输入信号为零,初始条件为:,试画出系统的相轨迹。

图8-21 相轨迹

解:由控制系统结构框图可以写出其运动方程:

库仑磨擦的非线性特性的表达式为:

以误差信号形式表示,其微分方程可写成:

根据区域划分上式可进一步写成如下形式:

(8-31)

令 ,对式(8-31)进行积分,可得到:

(8-32)

其中参数A,B为积分常数,由初始条件确定。从上式可看出,在平面上它们是圆。由坐标横轴将相平面分为上、下两个区域。当时,相轨迹为圆心在
),半径为A上半圆;当时,相轨迹为圆心在
),半径为B的下半圆。

由于初始条件为:位于横轴的正半轴,则根据前面介绍的相轨迹走向性质,系统应进入第四象限运动,因而将有关参数和初始条件代入下半区方程,则有:

,相轨迹从起始点出发,沿圆心在(0.5,0)、半径为3的下半圆运动至(-2.5,0),然后沿圆心在(-0.5,0)、半径为2的上半圆运动, (1.5,0)处再进入下半区,沿圆心在(0.5,0)、半径为1的下半圆运动至(-0.5,0),此时系统停止运动。因此最后系统的稳态误差为0.5。


下面给出了绘制这类相轨迹的matlab程序,采用了δ法,程序清单如下

function over=delta3(func1,func2,init1,init2)

%用fai法画相轨迹,func1与func2为分段的系统函数

x1=init1;

x2=init2;

w0=2^0.5;

pointnum=500;

arc=15*pi/180;%每段圆弧取15度

drawnum=20;%每段圆弧取的点数

minlong=10^-10;%半径小于最小值时退出

fai1=sym([func1 '+' num2str(w0^2) '*x1']);

fai2=sym([func2 '+' num2str(w0^2) '*x1']);

digits(4);

hold on;

j1=1;

if x2>0

charact=1; %由x2的正负决定状态方程

else

charact=0;

end

if x2==0

if x1>0

charact=0;

else

charact=1;

end

end

while j1<pointnum

x01=x1;

x02=x2;

if charact

nowfai=-double(subs(subs(fai1,'x1',x01),'x2',x02))/w0;

else

nowfai=-double(subs(subs(fai2,'x1',x01),'x2',x02))/w0;

end;

r=(x02^2+(w0*x01+nowfai)^2)^0.5;%算半径

if r<minlong

break;

end;

%下面确定圆弧终点

x11=w0*x01+nowfai;

if x11==0

nowarc=0;

if x02<0

nowarc=pi;

end

end

%确定圆弧的初始角度

nowarc=atan(x02/x11);

if x11<0

nowarc=nowarc+pi;

end

if nowarc<0

nowarc=nowarc+2*pi;

end

newarc=nowarc-arc;

j1=j1+1;

%求出圆弧终点的坐标

x2=r*sin(newarc);

%如果x2的符号发生变化,则弧线画到x2=0为止

if x2>0 & charact==0

charact=1;

x2=0;

newarc=pi;

end;

if x2<0 & charact==1

charact=0;

x2=0;

newarc=0;

end;

x1=(r*cos(newarc)-nowfai)/w0;

%绘制这段圆弧

th=[nowarc:(newarc-nowarc)/drawnum:newarc];

x=(r*cos(th)-nowfai)/w0;

y=r*sin(th);

x(1,drawnum)=x1;

y(1,drawnum)=x2;

plot(x,y);

j1=j1+1;

end

hold off;

axis tight;

grid on;

over=1;

综上所述,对于本质非线性系统的相轨迹作图,最重要的是区域划分,同时应着重注意以下几点:

(1)熟练掌握一阶线性系统的相轨迹和二阶线性系统的奇点类型,以及特殊二阶线性系统的相轨迹形状。

(2)对于比较复杂的本质非线性系统,应将线性部分和非线性部分进行分离,然后根据非线性环节的输入、输出特性,分区域写出它们对应的线性方程。

(3)如果非线性环节中不只含一个非线性元件,则应根据输入、输出先对非线性环节的输入、输出进行等效,然后再使用前面介绍的方法绘制相轨迹,并对非线性系统进行分析。

 
  • 1
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值