matlab第5章时域与根轨迹
利用MATLAB进行根轨迹分析
利用MATLAB进行根轨迹分析根轨迹分析是一种用于研究系统稳定性和动态特性的方法,通过研究系统的传递函数来绘制系统极点随参数变化的轨迹。
MATLAB提供了强大的工具和函数来进行根轨迹分析。
根轨迹是由系统的极点随参数变化所形成的轨迹,它可以反映系统的稳定性、阻尼比、上升时间、超调量等动态性能指标。
根轨迹的绘制通常包括以下步骤:1.定义系统传递函数:首先,需要根据具体的控制系统问题定义系统的传递函数。
传递函数是描述输入与输出间关系的数学模型,通常用分子多项式和分母多项式的比值来表示。
2. 极点位置确定:根据系统传递函数的分母多项式,可以求解系统的极点位置。
MATLAB提供了roots函数来计算多项式的根。
3. 绘制根轨迹:通过参数变化,将系统的极点位置代入传递函数的分子多项式中,可以计算得出系统的零点。
然后,使用MATLAB的plot函数将所有极点和零点绘制在复平面上。
4.判断稳定性:通过观察根轨迹的形状,可以判断系统的稳定性。
如果所有极点都位于左半平面,系统是稳定的。
如果存在极点位于右半平面,系统是不稳定的。
5.分析动态特性:根轨迹的形状可以提供许多关于系统动态特性的信息。
例如,阻尼比可以通过根轨迹上极点到原点的距离和纵坐标之比来估计;超调量可以通过根轨迹的形状和最大振幅来估计。
MATLAB提供了许多用于根轨迹分析的函数和工具箱,包括rlocus函数、nyquist函数和bode函数等。
这些函数可以方便地绘制根轨迹、Nyquist图和Bode图,从而帮助工程师分析系统稳定性以及设计和调整控制器。
根轨迹分析在控制系统设计和调优中具有重要作用。
通过根轨迹的绘制和分析,工程师可以深入了解控制系统的动态特性,并根据需要调整系统参数来达到设计要求。
同时,根轨迹分析也是控制系统教学和研究中常用的方法和工具。
总之,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章 线性系统的频域分析
函数模型,如: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中根轨迹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实现
函数命令调用格式:
[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实验三 控制系统的时域、频域和根轨迹分析
实验三 控制系统的时域、频域和根轨迹分析一、 实验目的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绘制根轨迹
运行结果如图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跟轨迹分析
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)
用MATLAB用于根轨迹分析
根轨迹图相同
Root Locus 1.5 0.91 0.84 0.74 0.6 0.42 0.22
1
0.96
0.5 0.99 Imaginary Axis
5
-0.5 0.99
-1
0.96
-1.5
0.91 -3 -2.5
0.84 -2
0.74 -1.5
0.6 -1
0.42
0.22 0 0.5
例4.2.6的根轨迹
k k G (s) = = 4 2 s ( s + 2.73)( s + 2 s + 2) s + 4.73s 3 + 7.46 s 2 + 5.46 s rlocus ( [ 1 ] , [1 4.73 7.46 5.46 0] )
零点的作用
k G ( s) H ( s) = 2 s ( s + 3)
用MATLAB用于根轨迹分析 MATLAB用于根轨迹分析
绘制根轨迹可用函数 rlocus(num,den) num,den分别对应系统开环传递函数分子多项式和 分母多项式系数构成的数组。
k k 若 G(s) = = 3 s( s + 1)( s + 2) s + 3s 2 + 2s 在MATLAB环境下键入 num = [1]; den = [1,3, 2, 0]; rlocus (num, den)
根轨迹相同的两个系统响应却不同
k (0.8s + 1) k (0.8s + 1) , H1 ( s ) = 1 , G1 ( s ) H1 ( s ) = s (5s + 1) s (5s + 1) k k (0.8s + 1) G1 ( s ) = , H1 ( s ) = (0.8s + 1) , G2 ( s ) H 2 ( s ) = s (5s + 1) s (5s + 1) G1 ( s ) = 开环传递函数相同, 1 ( s ) H1 ( s ) = G2 ( s ) H 2 ( s ) G 开环零、极点相同, 1 = 0 , p2 = −0.2 , z1 = −1.25 p 闭环传递函数不同: k (0.8s + 1) Φ1(s)= 2 5s + (1 + 0.8k ) s + k k , Φ 2(s)= 2 5s + (1 + 0.8k ) s + k
matlab 根轨迹
中南大学课程设计摘要控制系统理论与技术已广泛应运于工农业生产、交通运输业、航天航空等众多部门,极大地提高了社会生产力水平,改善了人们的劳动生产条件,丰富与提高了人们的生活水平。
在当今信息化时代,自动控制系统与装置无所不在,为人类的文明作出了巨大贡献。
MATLAB语言是美国Math Works公司于20世纪80年代退出的高性能数值计算软件,MATLAB语言具有功能强大的Simulink模块和控制工具箱,其分析与计算覆盖了控制系统的各个领域。
这次主要是以基于GUI设计工具GUIDE的开发来初步了解MATLAB BUI程序设计的,设计出一个开环函数的根轨迹图形,这让我也初步踏入学习MATLAB的混合编程知识的大殿堂。
关键词:控制系统;开环函数;根轨迹;matlab;GUI1 引言1.1主要意义通过这次的设计我不仅得到了实践的知识经验,也得到了很重要的精神食粮。
学到的matlab知识让我拓宽了自己的知识面,而且也加深了对以前学习的自动控制原理的学习。
最重要的还是我认识到了对我将会有深远影响的精神食粮——学海无涯,应永奋斗;勿只向前,需及复习;谦虚仔细,谨慎好学。
1.2目的这次课程设计主要目的在于让我们对matlab自主的学习一些matlab基础而又有用的知识,并让我们清楚地开始意识到自己以后应该自己努力去自学东西,以拓宽自己的知识面和对专业的更进一步的了解。
1.3研究范围主要是研究以基于GUI设计工具GUIDE的开发,matlab在此环境下的编程,以实现自动控制原理中开环传递函数的根轨迹图形的绘制。
另外要建立的基础有:matlab环境认识与操作,matlab语言数据类型和运算符等基础知识,matlab 的一些基本关于开环传递函数的数学运算与符号运算,matlab的语言程序设计,matlab语言的图形设计,自动控制理论开环函数根轨迹的基本知识。
1.4概况此次设计是本着以学习运用matlab一些基本知识的指导思想进行的,在设计中我们应该学会去解决运用matlab中的GUI的可选控件,并通过编程语言来控制各个可选控件,以达到实现通过界面输入函数方程的系数来绘制根轨迹图的界面,并通过按钮退出可直接退出此界面的设计。
关于根轨迹分析的MATLAB方法
确定根轨迹上的 1! 的值"即可画出该系统的根轨迹图#
F绘制根轨迹规则
*$+ 起点与终点#
*)+ 分枝数&连续性&对称性#
*(+ 实轴上的根轨迹#
*3+ 渐近线#
*L+ 在实轴上的分离的#
*0+ 起止角和终止角#
*1+ 与虚轴的交点#
这七条绘制规则对我们手工绘图有极大的帮助作用"
但手工绘图极为烦琐&精准性差"如果开环零极点的值发
UJPhJX程序为!
-E8Z$$% '
;:- Z$$ 3 ) 0 %% '
?C7,EH* -E8";:-+ 5a绘制系统的根轨迹
=/=C:* qK77=h7,EHq+ 5a命名根轨迹图
执行后"可以得到以下根轨迹图"如图 0 所示!
运行后!用鼠标光标对应的十字光标选择根轨迹上的 交点处"以计算出增益 . 及相应的极点"从而可得到!
-k)2+
'
3 4Z$
(
-k54
)
Zk$
其中 )2为已知的开环零点"54为已知的开环极点"1!
从零变到无穷# 即上式为该系统的根轨迹方程"因为我们
可以根据 1! 画出该系统的根轨迹图#
$绘制根轨迹的基本条件
已知"根轨迹方程实质上为一个复数方程! k$ Z$62( )7 N$) "7Z%"p$"p)2
关键词自动控制技术UJPhJX仿真根轨迹
#概述 最早 UJPhJX软件是推出的计算机辅助设计软件"是 一个功能强大的高科技计算软件# 可用于高级算法&分析 数据&强有力的系统仿真等方面高新领域# 目前"UJPhJX 已经发展成为国际上非常流行的科学与工程计算语言之 一"成为我国高等院校理工科教学和科研中必备的工具之 一# 作为电气工程及其自动化的专业学生"应当充分掌握 并熟练使用该软件# -自动控制原理. 是电气工程及其自动化专业学生的 必修专业基础课程"因此十分重要"必须掌握# 目前来看" 实验教学成为主流"也是该课程中的一部分# 而真实模型 规模大"难以创建# 使用仿真可以低成本且快速得到想要 的实验效果# 其中对于控制系统我们可以又采用线性系统的根轨 迹法# 但由于根轨迹图复杂且难以人工绘制达到标准精 确度"运用 UJPhJX的辅助技巧"能同时达到使学生通俗 易懂&绘图便捷&精度高的效果# 所以"本文主要针对根轨 迹法在 UJPhJX中的研究# %根轨迹起源及其概念 谈起根轨迹的起源"由于当时所处时代采用解析法求 取系统的闭环特征根较困难"并且若系统中的某一参数发 生变化"则需重新计算# 此时"V&K&eB@-H在 $'34 年提出 了使用图解方法来求解闭环系统特征方程根的新途径"被 称之为根轨迹法# 根轨迹法是分析和设计线性定常控制系统的图解方 法"方法简便且通俗易懂# 根轨迹也可称为根迹"它是任 意开环系统中一参数从零到变化至无穷时"闭环系统特征 方程式的根在 H平面上的变化的轨迹# 若运用根轨迹分 析"可以快速且精准地找到该系统的在任意一点的开环增 益或任意参数值下的闭环零&极点位置#
matlab第5章时域与根轨迹
3. sgrid() 或grid()
>> sgrid >>grid 在根轨迹[GH]平面绘制阻尼比和等固有频率网格, 阻尼比从0.1到1;固有频率从0到10rad/s。
sgrid(‘new’):是先清屏,再画格线。 sgrid(z,wn):则绘制由用户指定的阻尼比矢量z、自然 振荡频率wn的格线。
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)
1 n 1 2
1 n
3
调节时间:取决于最靠近虚轴的闭环复数极点的实部绝对值 或实数极点的模值
Ts
n
[k,poles]=rlocfind(sys),可以求得系统所有极点
输入参量可以是LTI模型对象,函数命令执行后,可以在图 形窗口根轨迹图中显示十字形光标,当选择根轨迹上某一 点时,其相应的增益由变量K记录,与此增益相关的所有极 点记录在变量poles中,从显示的所有极点位置判断系统的 稳定性。
例子:
产生一个周期为5秒,持续时间为30秒, 采样为Βιβλιοθήκη .1秒的方波.
[u,t]=gensig('square',5,30, 0.1); plot(t,u) Axis([0,30,-0.5,1.5])
MATLAB-根轨迹绘制
MATLAB-根轨迹绘制主要涉及rlocus等函数的使⽤,临界增益的求解和根轨迹图(root locus)的绘制1.开环与闭环关系 对于⼀个系统,其开环函数为 G=k⋅G0(s)⋅H(s),则其闭环函数为 k⋅G0(s)1+k⋅G0(s)⋅H(s),闭环特征⽅程为 1+k⋅G0(s)⋅H(s)=0(1)这说明了闭环极点可以由开环函数确定。
2.根轨迹 系统的根轨迹是从0到 ∞ 连续取k,每取⼀个k,便在⽅程(1)中求出对应的闭环特征根,这样的根形成的闭环根轨迹被称为根轨迹图。
3.rlocus函数 rlocus(sym)或rlocus(num,den)指令可以直接根据开环函数sys=G0(s)⋅H(s)(这⾥不含k,运算时会⾃动配置变化的增益k)绘制出系统的根轨迹图。
例如:求取开环传递函数G(s)=k⋅(s+2)(s2+4s+3)2对应系统的根轨迹num=[1 2];f=[1 4 3];den=conv(f,f);sys=tf(num,den);figure(1);rlocus(sys);运⾏结果为4.如何求解临界增益 即求解虚轴上的极点的坐标值,及其所对应的临界增益k。
主要原理是:将s=jw⼿动带⼊(因为落在虚轴上实部为0)⽅程(1),然后将带⼊后的⽅程分别分为实部和虚部放⼊matlab解⼀个⼆元⼆次⽅程就可以求解出w和k。
实现代码如下//(承接前⾯的代码)syms w k;eqns=[w^4-22*w^2+9+2*k==0,-8*w^3+(24+k)*w==0];vars=[w k];[solw,solk]=solve(eqns,vars);k1=double(vpa(solk(3),6));sys2=tf(k1*num,den);sys3=sys2/(1+sys2);figure(2);impulse(sys3);xlim([0 20]);Processing math: 100%。
MATLAB的根轨迹分析
基于MATLAB 的根轨迹分析一.实验目的:1.学习利用MATLAB 的语言绘制控制系统根轨迹的方法。
2.学习利用根轨迹分析系统的稳定性及动态特性。
二.实验内容:1.应用MATLAB 语句画出控制系统的根轨迹。
2.求出系统稳定时,增益k 的范围。
3.分析系统开环零点和极点对系统稳定性的影响。
三.实验步骤1.给定某系统的开环传递函数G(s)H(s)=k/s(s*s+4s+16),用MATLAB 与语言绘出该系统的根轨迹。
程序如下:num=[1];den=[1,4,16,0];G=tf(num,den)G1=zpk(G)Z=tzero(G)P=pole(G)pzmap(num,den);title('pole-zero Map')rlocus(num,den)根轨迹如图-12-10-8-6-4-2024-10-8-6-4-20246810Root LocusReal Axis I m a g i n a r y A x i s结论:由上图可知增益k 的取值范围:0<k<642.将系统的开环传递函数改为:G(s)H(s)=k/s(s*s+4s+5),绘出该系统根轨迹图,观察增加了开环零点后根轨迹图的变化情况。
程序如下:num=[1,1];den=[1,4,5,0];G=tf(num,den)G1=zpk(G)Z=tzero(G)P=pole(G)pzmap(num,den);title('pole-zero Map')rlocus(num,den)根轨迹如图-2.5-2-1.5-1-0.50-5-4-3-2-1012345Root LocusReal Axis I m a g i n a r y A x i s结论:增加了开环零点后根轨迹的变化3.将系统的开环传递函数改为:G(s)H(s)=k/s(s-1)(s*s+4s+5),绘出该系统的根轨迹图,观察增加了开环零点后根轨迹的变化情况。
用MATLAB绘制根轨迹
.
[例]非最小相位系统:Gk 稳定时的增益值。
(s)
(s
kg 1)( s
2)
,试确定使系统
[解]:根轨迹如右:
有闭环极点在右 半平面,系统是 不稳定的。显然 稳定临界点在原 点。该点的增益 临界值为 kgp 。
计算对应的根轨迹增益。由幅值条件:
kg
1
s(s 4)(s 6) s1.2 j2.1 m
解得:kg 44
k(is 1)
开环传递函数以Gk (s)
i 1 n
的形式表示时,k称为开环放
大系数。
(Tjs 1)
j 1
显然 k与kg 的关系为:k kg
zi ,式中 p j不计0极点。 pj
s2
s
ks 1 2 ks
1
B
s
k
Ds
s2 s
k
2
k s
1
ks 1
k
1
s
2 s 2 ks 1
s2 s 2
1
s
2 s 2 系统,前向通路的传递函数
80
60
若闭环极点落在下图中红线包围
的区域中,有:
% ectg 和ts
3
40
20
0 30 60 90
.
上述结论也可应用于具有主导极点的高阶系统中。如下例:
[例4-12]单位反馈系统的开环传递函数为:Gk
实验 五 用MATLAB绘制系统根轨迹(2)
实验数据分析时可围绕要达成的实验目标,借助公式、模型或必要软件,结合作图、计算等方法对实验数据进行数据处理后,得出实验结果。实验数据分析过程应条理清晰,层次清楚。
rlocus(num,den) %直接在s平面上绘制系统的根轨迹图,[k,r]=rlocfind(num,den)%在作好的根轨迹图上,确定被选的闭环极点位置的增益值k和此时的闭环极点r(向量)的值。
在作出根轨迹图后,再执行该命令,命令窗口会出现提示语,“Select a point in the graphics windows”,此时将鼠标移至根轨迹图并选定位置,单击左键确定,出现“+”标记,在MATLAB窗口上即得到该点的根轨迹开环增益K值和对应的所有闭环根r(列向量)。
rlocus(num,den),
[k,r]=rlocfind(num,den)
num=[1 3];
den=[1 2 0];
sgrid
rlocus(num,den);
[k,r]=rlocfind(num,den)
5、实验现象、实验数据记录:
6、实验现象、实验数据的分析:
借助适当原理、公式、模型、利用必要的软件或其它分析方法、手段,对实验过程中出现的现象、所获取的实验数据进行具体、充分的分析。本部分的撰写应完整呈现出分析过程。
num=[1 5 5];
den=[1 3 4 2 0]
G=tf(num,den);
G1=zpk(G);
z=G1.z;
p=G1.p;
Z=z{:};
matlab根轨迹函数
matlab根轨迹函数
Matlab中的根轨迹函数是用于绘制系统的根轨迹图的工具。
根轨迹图是一种描述系统极点与零点随参数变化而移动的图形,通常用于设计和分析控制系统。
Matlab中的根轨迹函数是rlocus,语法格式为:
rlocus(sys) % 绘制系统sys 的根轨迹
rlocus(sys, k) % 绘制系统sys 的增益为k 时的根轨迹
rlocus(sys, kvec) % 绘制系统sys 在不同增益下的根轨迹
其中,sys是指代表系统的传递函数或状态空间模型,k是指定增益大小的标量值,kvec是指定多个增益值的向量。
绘制根轨迹图的过程中,根据系统的传递函数或状态空间模型,先求出系统的极点和零点,然后根据根轨迹的定义,计算出系统在不同增益下的极点位置,将它们绘制在图上,在极点移动时,根据根轨迹的性质,可以判断系统的稳定性和响应速度等性能指标。
因此,Matlab中的根轨迹函数是在控制系统设计和分析中非常有用的工具,可以帮助工程师更加直观地理解和优化系统的性能。
MATLAB绘制根轨迹
结果如下: r = -3.3089 k= 5
0.1545 + 1.7316i 0.1545 - 1.7316i
求根轨迹增益
rlocfind命令可求得给定根的根轨迹增益。 格式: [ k,poles ] = rlocfind(n,d) [ k,poles ] = rlocfind(num,den,p) 当代有输出变量时,可得到所有极点的座标数据和增益值。 不带输出时只得到所选点的座标和增益值。 注意:在执行这条命令前最好先执行一次根轨迹的绘图命 令,这样就可直接在根轨迹图上选取我们感兴趣的点。 其中的p是系统的根,由此可得到对应的增益值。
num=[3,2,5,4,6]; den=[1,3,4,2,7,2]; pzmap(num,den)
title(‘Pole-Zero Map’) % 图形标题
求系统根轨迹
rlocus 命令可求得系统的根轨迹 格式: [ r,k ] = rlocus(num,den) [ r,k ] = rlocus(num,den,k) 不带输出变量时则绘出系统的根轨迹图,带输出 变量时给出一组r,k的对应数据。 若给定了k的取值范围,则该命令将按要求绘出图 形或数组或者输出指定增益k所对应的r值。每条 根轨迹都以不同的颜色区别。
追求人生的美好!
我们的共同目标!
某系统开环传递函数为:
G(s) 2k s3 3s2 2s
要绘制系统的根轨迹,则输入: n = [0 0 0 2] d=[1 3 2 0] rlocus(n,d)
若要得到指定增益k值对应的r值则输入: n = 2; d = [ 1 3 2 0 ]; [ r,k] = rlocus(n,d,5)
MATLAB绘制根轨迹
由传递函数求零点和极点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)