matlab第5章时域与根轨迹

合集下载

利用MATLAB进行根轨迹分析

利用MATLAB进行根轨迹分析

利用MATLAB进行根轨迹分析根轨迹分析是一种用于研究系统稳定性和动态特性的方法,通过研究系统的传递函数来绘制系统极点随参数变化的轨迹。

MATLAB提供了强大的工具和函数来进行根轨迹分析。

根轨迹是由系统的极点随参数变化所形成的轨迹,它可以反映系统的稳定性、阻尼比、上升时间、超调量等动态性能指标。

根轨迹的绘制通常包括以下步骤:1.定义系统传递函数:首先,需要根据具体的控制系统问题定义系统的传递函数。

传递函数是描述输入与输出间关系的数学模型,通常用分子多项式和分母多项式的比值来表示。

2. 极点位置确定:根据系统传递函数的分母多项式,可以求解系统的极点位置。

MATLAB提供了roots函数来计算多项式的根。

3. 绘制根轨迹:通过参数变化,将系统的极点位置代入传递函数的分子多项式中,可以计算得出系统的零点。

然后,使用MATLAB的plot函数将所有极点和零点绘制在复平面上。

4.判断稳定性:通过观察根轨迹的形状,可以判断系统的稳定性。

如果所有极点都位于左半平面,系统是稳定的。

如果存在极点位于右半平面,系统是不稳定的。

5.分析动态特性:根轨迹的形状可以提供许多关于系统动态特性的信息。

例如,阻尼比可以通过根轨迹上极点到原点的距离和纵坐标之比来估计;超调量可以通过根轨迹的形状和最大振幅来估计。

MATLAB提供了许多用于根轨迹分析的函数和工具箱,包括rlocus函数、nyquist函数和bode函数等。

这些函数可以方便地绘制根轨迹、Nyquist图和Bode图,从而帮助工程师分析系统稳定性以及设计和调整控制器。

根轨迹分析在控制系统设计和调优中具有重要作用。

通过根轨迹的绘制和分析,工程师可以深入了解控制系统的动态特性,并根据需要调整系统参数来达到设计要求。

同时,根轨迹分析也是控制系统教学和研究中常用的方法和工具。

总之,MATLAB是进行根轨迹分析的强大工具,通过绘制根轨迹和分析根轨迹的形状和特性,可以帮助工程师深入了解控制系统的稳定性和动态特性,从而有效地设计和调整控制器。

第5章 MATLAB控制系统建模

第5章 MATLAB控制系统建模

H(s)
(s + 1)(s + 2) (s + 2i)(s − 2i)(s + 3)
>> n1=[1 1];n2=[1 2];d1=[1 2*i];d2=[1 -2*i];d3=[1 3]; >> numh=conv(n1,n2);denh=conv(d1,conv(d2,d3)); >>printsys(numh,denh) num/den = s^2 + 3 s + 2 --------------------------s^3 + 3 s^2 + 4 s + 12 >>tf(numh,denh) Transfer function: s^2 + 3 s + 2 ----------------------------s^3 + 3 s^2 + 4 s + 12
第五章 控制系统建模
Page 147-162; Page 224-249
自动控制理论提供了各种分析和设计方法:如时 域响应法,根轨迹法、频域响应法,能方便地进 行运算并能以图形的形式表达出来,常规的手工 计算只能粗略计算,绘制近似图形,适合一般的 工程应用。 MATLAB的控制系统工具箱含有丰富的专门用于线 性系统分析和设计的函数, 提供可靠、准确的运 算工具,使得分析和设计更切合实际。
单位反馈联接
cloop()函数计算闭环传递函数
G1(s)
[num,den]=cloop(num1,den1,sign)

>> numg=[1];deng=[500 0 0]; >> numc=[1 1];denc=[1 2]; >> [num1,den1]=series(numg,deng,numc,denc); >> [num,den]=cloop(num1,den1,-1); >> printsys(num,den) num/den = s+1 ------------------------------------500 s^3 + 1000 s^2 + s + 1

自动控制原理的MATLAB仿真与实践第5章 线性系统的频域分析

自动控制原理的MATLAB仿真与实践第5章  线性系统的频域分析
MATLAB提供了许多用于线性系统频率分析 的函数命令,可用于系统频域的响应曲线、参数分析 和系统设计等。常用的频率特性函数命令格式及其功 能见表5-1。 bode (G):绘制传递函数的伯德图。其中:G为传递
函数模型,如:tf(), zpk(), ss()。 bode(num,den):num,den分别为传递函数的分子与
margin(G);[Gm,Pm,Wcg,Wcp]= margin(G): 直接求出系统G的幅值裕度和相角裕度。 其中:Gm幅值裕度;Pm相位裕度;Wcg幅值裕度 处对应的频率ωc;Wcp相位裕度处对应的频率ωg。
nichols(G);nichols(G,w):绘制单位反馈系统开环传 递尼科尔斯曲线。
20
>>clear; num=[2, 3];den=[1, 2, 5, 7]; %G(s)的分子分母 多项式系数向量
p=roots(den) 求根结果:
%求系统的极点
p=
-0.1981 + 2.0797i
-0.1981 - 2.0797i
-1.6038 可见全为负根,则s右半平面极点数P=0。 绘制Nyquist曲线: >> nyquist(num,den) %绘制Nyquist曲线
本节分别介绍利用MATLAB进行频域绘图和频 率分析的基本方法。
6
5.2.1 Nyquist曲线和Bode图
MATLAB频率特性包括幅频特性和相频特性。 当用极坐标图描述系统的幅相频特性时,通常称为 奈奎斯特(Nyquist)曲线;用半对数坐标描述系 统的幅频特性和相频特性时,称为伯德(Bode) 图;在对数幅值-相角坐标系上绘制等闭环参数( M和N)轨迹图,称为尼克尔斯(Nichols)图。

matlab中根轨迹

matlab中根轨迹

matlab中根轨迹M a t l a b中的根轨迹是一种用于分析和设计控制系统的有力工具。

根轨迹图能够帮助我们直观地了解系统的稳定性、动态特性和控制参数对系统性能的影响。

在本文中,我们将一步一步地回答关于M a t l a b中根轨迹的一些常见问题。

1.什么是根轨迹?根轨迹是指系统传递函数零极点在复平面上随参数变化时所形成的轨迹。

这些轨迹是系统的特征线,可以帮助我们分析和预测系统的动态行为。

根轨迹图通常以虚轴为对称轴,用于研究连续时间域系统的稳定性和相应的频率响应。

2.如何在M a t l a b中绘制根轨迹?在M a t l a b中,绘制根轨迹有多种方法,其中最常用的是使用"r l o c u s"函数。

这个函数的基本语法为r l o c u s(s y s)或r l o c u s(s y s K)或r l o c u s(s y s,K),其中s y s是控制系统的传递函数,K是增益。

通过改变K的值,可以生成不同增益对应的根轨迹图。

3.如何选择适当的增益K?选择适当的增益K是非常重要的,因为它直接决定了系统的稳定性和性能。

通常情况下,我们可以通过观察根轨迹来判断系统是否稳定,并选择合适的增益K。

当系统的根轨迹趋近于虚线的无穷远处时,该系统是稳定的。

此时,我们可以选择一个适当的增益K,以实现所需的动态性能。

4.如何分析根轨迹图?根轨迹图提供了丰富的信息,可以帮助我们分析系统的动态行为。

首先,我们可以根据根轨迹的形状判断系统的稳定性。

如果所有的根轨迹都位于左半平面,则系统是稳定的;如果有根轨迹位于右半平面,则系统是不稳定的。

其次,我们还可以通过根轨迹图估计系统的动态特性,如振荡频率、过渡时间和超调量。

振荡频率可以通过根轨迹的旋转速度和半径来估计,而过渡时间和超调量可以通过根轨迹到达虚线和实轴的位置来估计。

此外,根轨迹图还可以帮助我们选择合适的控制器增益。

根据根轨迹的位置,我们可以调整增益的大小,以达到所需的系统性能。

根轨迹分析的MATLAB实现

根轨迹分析的MATLAB实现
函数 rlocfind()
函数命令调用格式:
[k,poles]=rlocfind(sys) [k,poles]=rlocfind(sys,p)
函数命令使用说明:
rlocfind()函数命令可计算出与根轨迹上极点(位 置为poles)相对应的根轨迹增益(k)。rlocfind()函 数既适用于连续时间系统,也适用于离散时间系统。
pzmap(a,b,c,d)函数可以在复平面内绘制用状态空间 模型描述系统的零极点图,对于MIMO系统,可绘制所有 输入到输出间的传递零点。
pzmap(sys)函数可以在复平面里绘制以传递函数模 型sys表示开环系统的零极点。传递函数模型sys即 G(s)=num(s)/den(s)。
pzmap(p,z)函数可在复平面里绘制零极点图,其中 行矢量p为极点位置,列矢量z为零点位置。这个函数命令 用于直接绘制给定的零极点图。
[k,poles]=rlocfind(sys,p)函数可对指定根计算对应 的增益与根矢量p。
[k,poles]=rlocfind(sys)函数输入参量sys可以是由函 数tf()、zpk()、ss()中任何一个建立的LTI对象模 型。函数命令执行后,可在根轨迹图形窗口中显示十字形 光标,当用户选择根轨迹上一点时,其相应的增益由k记 录,与增益相关的所有极点记录在poles中。
2.求系统根轨迹的函数rlocus()
函数命令调用格式:
[r,k]=rlocus(a,b,c,d) [r,k]=rlocus(sys) [r,k]=rlocus(a,b,c,d,k) [r,k]=rlocus(num,den,k)
函数命令使用说明:
rlocus()函数命令用来绘制SISO系统的根轨迹图。 rlocus()函数既可适用于连续时间系统,也适用于离散时 间系统。

MTALAB实验三 控制系统的时域、频域和根轨迹分析

MTALAB实验三    控制系统的时域、频域和根轨迹分析

实验三 控制系统的时域、频域和根轨迹分析一、 实验目的1、掌握如何使用Matlab 进行系统的时域分析2、掌握如何使用Matlab 进行系统的频域分析3、掌握如何使用Matlab 进行系统的根轨迹分析二、 实验内容:1、时域分析1.1、某系统的开环传递函数为43220()83640G s s s s s=+++试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。

>> G=tf([20],[1 8 36 40 0]); G=feedback(G,1); step(G)Step ResponseTime (sec)A m p l i t u d e024681012140.20.40.60.811.21.41.2、典型二阶系统222()2nn nG s s s ωξωω=++ 编程求:当6,n ωξ=分别取值为0.2、0.4、0.6、0.8、1.0、1.5、2.0时的单位阶跃响应曲线。

>>s=tf('s');wn=6;zet=[0.2,0.4,0.6,0.8,1.0,1.5,2.0]; for i=1:7G=wn^2/(s^2+2*wn*zet(:,i)*s+wn^2);step(G),hold on end00.51 1.52 2.53 3.54 4.550.20.40.60.811.21.41.6Step ResponseTime (sec)A m p l i t u d e1.3、典型二阶系统传递函数为:222()2nn nG s s s ωξωω=++ 绘制当:0.7,n ξω=分别取2、4、6、8、10、12时的单位阶跃响应曲线。

>> s=tf('s');zet=0.7;wn=[2:2:12];for i=1:6G=wn(:,i)^2/(s^2+2*wn(:,i)*zet*s+wn(:,i)^2);step(G),hold onend00.51 1.52 2.53 3.54 4.50.20.40.60.811.21.4Step ResponseTime (sec)A m p l i t u d e2、根轨迹分析根据下面负反馈系统的开环传递函数,绘制系统根轨迹,并分析使系统稳定的K 值范围。

应用MATLAB绘制根轨迹

应用MATLAB绘制根轨迹

运行结果如图1-27所示。
图1-27 例1-18系统根轨迹
自动控制原理
[r,K] = rlocus(num,den,K) 则 r 向量中元素为给定 K 值闭环极点的位置。如果不
指定K,即
[r,K] = rlocus(num,den)
利用MATLAB绘制根轨迹的步骤为: (1)求得系统的特征方程。 (2)调用rlocus函数绘制根轨迹。
例1-14 已知控制系统的开环传递函数为
图1-25 例1-17系统根轨迹
若增加sgrid命令,则可得到如图1-26所示的 根轨迹图。
图1-26 带栅格的系统根轨迹
例1-18 系统的开环传递函数为
G(s)H (s)
K (s2 4s 16) s(s 4)(s2 2s 2)
试应用MATLAB绘制系统的根轨迹。 解 MATLAB程序如下: a = [1,4,0]; b = [1,2,2];
所得系统的根轨迹如图1-23所示。
图1-23 例1-15系统根轨迹
在根轨迹图上直接获得的系统的主要性能指标有:单位阶 跃的超调量;无阻尼自由振荡角频率;进一步可计算得到 系统的调节时间。
例1-16 已知连续系统的开环传递函数为
G(s)H (s) K (2s2 5s 1) s2 2s 3
自动控制原理
应用MATLAB绘制根轨迹
MATLAB绘制根轨迹的本命令是rlocus()。sgrid和zgrid分 别是在连续和离散系统根轨迹图上绘制等阻尼系数和等自 然角频率的栅格,其他有关命令及其应用可查阅MATLAB 的帮助文件help。
在应用MATLAB绘制根轨迹时,首先要将系统的开环传递函 数写成如下形式:
试确定系统开环零、极点的位置。
解 在MATLAB命令窗口键入 num = [2,5,1]; den = [1,2,3]; pzmap(num,den); 执行后得到如图1-24所示的零、极点图。

第五章 ——MATLAB跟轨迹分析

第五章 ——MATLAB跟轨迹分析

K ( s + 5) ( s + 1)( s + 3)( s + 12) ,
绘制系统的跟轨迹,并在跟轨迹上任选一点 并在跟轨迹上任选一点, 试使用 MATLAB 绘制系统的跟轨迹 并在跟轨迹上任选一点, 计算该点的增益 K 及其所有极点的位置
4. 已知单位负反馈系统, 已知单位负反馈系统, 系统的开环传递函数为
第五章
5.1 5.2 5. 3 5. 4
MATLAB跟轨迹分析 MATLAB跟轨迹分析
根轨迹法基础 MATLAB根轨迹相关指令 MATLAB根轨迹相关指令 根轨迹分析与设计工具rltool 根轨迹分析与设计工具rltool 用根轨迹分析系统性能
5.1
跟轨迹法基础
一、根轨迹方程 二、基本条件
根轨迹的相角条件 根轨迹的幅值条件
已知单位负反馈系统, 2. 已知单位负反馈系统,系统的开环传递函数为
GH ( s ) = K ( s + 1) , s (0.5s + 1)(4 s + 1)
绘制系统的跟轨迹。 试使用 MATLAB 绘制系统的跟轨迹。
已知单位负反馈系统, 3. 已知单位负反馈系统,系统的开环传递函数为
G ( s) =
阻尼比间隔0 阻尼比间隔0.1,范围:0-1; 范围: 自然振荡角频率间隔为pi/10,范围0 pi/10 自然振荡角频率间隔为pi/10,范围0-pi
(3)zgrid(z,wn) zgrid( wn)
可以指定阻尼比系数z与自然振荡角频率wn 可以指定阻尼比系数z与自然振荡角频率wn。 wn。
5. 3
例5-2:绘制如下系统的根轨迹图
0.05s + 0.045 G(s) = 2 ( s − 1.8s + 0.9)( s 2 + 5s + 6)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 P= 1 21 120 200
100( s 2) G( s) s( s 1)(s 20)
>> roots(P) ans = -12.8990 -5.0000 -3.1010
k=100;z=[-2];p=[0,-1,-20];
0 100 200
21 20 0
>> P=n1+d1
G=tf(n1,d1) sys=feedback(G,1) Transfer function: 100 s + 200 -------------------------s^3 + 21 s^2 + 120 s + 200 >> roots(sys.den{1}) ans = -12.8990 -5.0000 -3.1010
5.1 系统动态及稳态性能的时域分析 1. 稳定性分析MATLAB实现的方法
MATLAB提供了直接求取系统所有零极点的函数,因此 可以直接根据零极点的分布情况对系统的稳定性及是否 为最小相位系统进行判断。
roots()、 pzmap()
已知开环传函
对系统闭环稳定性判别
[n1,d1]=zp2tf(z,p,k) n1 = 0 d1 =
例5-6 特定的根对应的增益K
Select a point in the graphics window selected_point = -0.3212 + 0.0000i k= 2.1281 poles = >> rlocus(num,den) >> [k,poles]=rlocfind(num,den)
rlocus(num,den);
k1=[0:0.2:4.2]; k2=[4.2:0.002:4.4]; k3=[4.4:0.02:10]; k4=[10:5:200];
k=[k1 k2 k3 k4];
r=rlocus(num,den,k); plot(r,'o') v=[-5 1 -5 5];axis(v)
1.25 G(s) 2 s s

G为系统开环传递函数,求 超调量sigma,峰值时间tp和 调节时间ts
sigma = 20.9121



global y t sys1=tf(1.25,[1 1 0]) sys=feedback(sys1,1) [y,t]=step(sys); [sigma,tp,ts]=ste(y,t)
例5-9
num=1; den=conv([0.01 1 0],[0.02 1]);
rlocus(num,den) sgrid
同样可以 rlocus(num,den),grid
4. 基于根轨迹的系统设计工具

rltool rltool(g) g为系统,例如 g=tf(num.den)
图形用户界面系统设计工具(SISO Design for System FeedbackConfig)



1. 绘制根轨迹图

rlocus() 调用之前必须将特征方程写成下面的形式:
num 1 K 0 den
rlocus()




rlocus(num,den), rlocus(sys) rlocus(num,den,K), rlocus(sys,K) [r,K]=rlocus(num,den), [r,K]=rlocus(sys) r=rlocus(num,den), r=rlocus(sys) r=rlocus(num,den,K), r=rlocus(sys,K)
>> r=rlocus(num,den,10)
r= -2.1056 + 2.8714i -2.1056 - 2.8714i -0.7887
2. rlocfind()


了解特定的复根对应的增益K的取值 只有运行了rlocus函数并得到根轨迹后,才 能合法调用 运行rlocfind函数后,MATLAB会在根轨迹图 上产生‘+’提示符,通过鼠标将提示符移 动到根轨迹相应的位置确定,所选的K值就 会在命令窗口显示
第五章 时域分析、零极点分析和根轨迹法
获得控制系统的瞬态响应和稳态响应 对系统的瞬态和稳态性能分析 根轨迹绘制和分析
产生信号gensig()


[u,t]=gensig(type,Ta) [u,t]=gensig(type,Ta,Tf,T) Type:信号序列.sin正弦;square方波;pulse脉 冲 Ta:信号周期 Tf:信号的持续时间 T:采样时间
对应的Laplace逆变换为:

rj e
p jt
rj 1te
p jt
rj m1t
m 1
m 1 p j t
e
( rj rj 1t rj m1t
)e
p jt
5.4 根轨迹分析法
根轨迹:开环系统的某一参数从零变到无穷 大时,闭环系统特征方程的根在s平面的轨 迹。应用MATLAB可以绘制精确的根轨迹图, 我们可以采用根轨迹法对控制系统进行设计 和校正。 绘制根轨迹图 根轨迹分析 校正装置
1 n 1 2
1 n
3
调节时间:取决于最靠近虚轴的闭环复数极点的实部绝对值 或实数极点的模值
Ts
n
[k,poles]=rlocfind(sys),可以求得系统所有极点

输入参量可以是LTI模型对象,函数命令执行后,可以在图 形窗口根轨迹图中显示十字形光标,当选择根轨迹上某一 点时,其相应的增益由变量K记录,与此增益相关的所有极 点记录在变量poles中,从显示的所有极点位置判断系统的 稳定性。
1+K*(num/den)=0
r=复根向量 K=增益向量
[r,K]=rlocus(num,den)
s 1 1 K 3 0 2 s 5s 6s
例5-5
R(s) -
K(s+1) s(s+2)
C(s)
1 (s+3) >> num=[1 1];den=[1 5 6 0];rlocus(num,den) >> [r,k]=rlocus(num,den)
例子:

产生一个周期为5秒,持续时间为30秒, 采样为0.1秒的方波.



[u,t]=gensig('square',5,30, 0.1); plot(t,u) Axis([0,30,-0.5,1.5])
产生正弦波:


[u,t]=gensig('sin',5,30, 0.1); plot(t,u) Axis([0,30,-1.5,1.5])
2. 稳态值
1 bm y () lim sG ( s ) G(0) s 0 s an
1 y ( ) lim sG ( s ) lim C ( sI A) 1 B D CA1B D s 0 s s 0
K=dcgain(num,den)%k为稳态增益,即: 当s趋近于零时num(s)/den(s)=k 对于状态空间 K=dcgain(a,b,c,d)
1.25 G(s) 2 s s
sigma = 20.9121 tp = 3.0920 >> yss
yss =
0.9987
5. 调节时间Ts
Ts:进入稳态值附近±5%或±2%的误差带而不 再超出的最小时间
if t2<tp cs=length(t) j=cs+1; if t1>t2 i=cs+1; n=0; n=0; ts=t1 while n==0,j=j-1; while n==0,i=i-1; end if j==1,n=1; if i==1,n=1; elseif y(j)<0.95*yss elseif t2>tp elseif y(i)>1.05*yss if t2<t1 n=1; n=1; ts=t2 end end else ts=t1 end end end t2=t(j); t1=t(i); end
Anysis,other loop response
系统性能的分析

闭环主导极点
稳定性:根轨迹在s的左半平面,稳定 稳态误差:由原点的开环极点个数决定 动态性能:

n
n
j
1 arccos
0
运动形式:闭环极点均为实数极点,单调, 闭环极点均为复数极点,振荡 超调量:取决于闭环主导极点的衰减率
p1t
r2e
p2t
rne
pnt



因此,可以通过G(s)*R(s)的部分分式展开而求出系 统的解析解。 求留数函数[r,p,k]=residue(num,den)可以得出各系 数。 请注意,此解法得出的是解析解,而不是数值解。
系统有重极点的计算

传递函数G(s)的第j个极点Pj是m重的,则展开中含 有下面各项: rj rj 1 rj m1 2 s p j (s p j ) ( s p j )m
tp =
3.0920 ts = 4.6380
5.3 系统时域响应的解析解算法

部分分式展开方法

传递函数G(s)含有n个互异极点,可展开为部分 分式: r1 r2 rn G( s) s p1 s p2 s pn 将其Laplace逆变换,得输出:


g (t ) r 1e
>> sys1=zpk(sys)
Zero/pole/gain: 100 (s+2) -----------------------(s+12.9) (s+5) (s+3.101) >> sys1.p{1} ans = -12.8990 -5.0000 -3.1010 >> G=ss(sys) >> eig(G.a)
相关文档
最新文档