非线性控制系统 Matlab绘制相轨迹
来源:互联网 发布:知乐小说txt百度云 编辑:程序博客网 时间:2024/05/21 14:04
相平面分析方法对于二阶及其以下的线性或非线性系统均是有效的。在实际系统中,有一大类非线性控制系统,其线性部分和非线性部分可以进行分离,这类系统称为本质非线性系统。下面的讨论主要针对这类系统研究存在典型非线性元件的系统的运动规律。
应用相平面分析法对非线性系统进行研究的目的是:(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)如果非线性环节中不只含一个非线性元件,则应根据输入、输出先对非线性环节的输入、输出进行等效,然后再使用前面介绍的方法绘制相轨迹,并对非线性系统进行分析。
- 非线性控制系统 Matlab绘制相轨迹
- matlab绘制抛物线轨迹
- MATLAB实现控制系统的根轨迹分析
- 4.4 绘制根轨迹的MATLAB函数
- <非线性控制系统>1 简介
- matlab-非线性方程求根函数及函数曲线绘制
- MATLAB中comet、comet3函数-绘制质点运动轨迹
- 用matlab 绘制osg平台得到路径轨迹
- 现代控制系统-基于MATLAB和根轨迹的滞后超前校正
- Matlab非线性方程求根
- 非线性规划MATLAB代码
- Matlab:非线性曲线拟合
- Matlab非线性拟合
- MATLAB求解非线性方程组
- MATLAB多元非线性回归
- matlab---非线性规划
- matlab求解 非线性规划
- Matlab非线性方程求解
- 3.7 用MATLAB进行暂态响应分析
- 谋划(22)
- 4.6 参数根轨迹和多回路系统的根轨迹
- 4.4 绘制根轨迹的MATLAB函数
- 7.6应用于离散系统的Matlab基本函数 7.7 求离散系统的时域响应 频率特性分析
- 非线性控制系统 Matlab绘制相轨迹
- MATLAB:经典控制系统的分析和设计
- 关于接口兼容性的问题
- loadunner进行B/S测试的培训PPT下载
- 今天给山东省劳动厅做迁移和测试汇报,希望顺利
- 老紫竹JAVA提高教程(7)-认识List列表之ArrayList
- linux学习笔记7-增强系统的安全性
- 选择框的实现
- PHPBB编码规则