控制系统的根轨迹作图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

控制系统的根轨迹作图
一、实验目的
1、 用matlab 完成控制系统的建立。

2、 了解系统根轨迹作图的一般规律,能熟练完成控制系统的根轨迹绘图。

3、 利用根轨迹图进行系统分析。

二、实验内容
1、 系统模型建立
sys = tf(num,den)
sys = zpk(z,p,k)
sys = ss(a,b,c,d)
sys = frd(response,frequencies)
该主题相关matlab 帮助资料:Matlab help ——contents ——control system toolbox ——building models
2、 根轨迹绘图
rlocus (num,den )
rlocus(num,den,k)
r=rlocus(num,den)
[z,p,k]=zpkdata(sys,’v ’)
该主题相关matlab 帮助资料:Matlab help ——contents ——control system toolbox ——building models
3、 根轨迹分析
Sisotool()__(单输入单输出)
该主题相关matlab 帮助资料:Matlab help ——contents ——control system toolbox ——root locus design
例1:传递函数为:
1.5
------------------
s^2 + 14 s + 40.02
sys_tf = tf(1.5,[1 14 40.02])
或 num=1.5,den=[1 14 40.02],sys_tf=tf(num,den);
例2:系统开环传递函数
)2)(1()(++=s s s k s Go g
根轨迹作图程序为:
k=1;z=[];p=[0,-1,-2];[den,num]=zp2tf(z,p,k);
rlocus(num,den)
例3:给定系统开环传递函数Go(s)的多项式模型,作系统的根轨迹图。

其计算公式为
1)
()()(-=⋅=s den s num k s Go 式中,k 为根轨迹增益,num 为开环传递函数Go(s)的分子多项式系数向量,den
为分母多项式系数向量。

函数格式1:开环增益k 的范围自动设定。

函数格式2:开环增益k 的范围可以由用户设定。

函数格式3:返回变量格式。

计算所得的闭环根r (矩阵)返回至matlab 命令窗口,不作图。

函数格式4:返回变量格式。

计算所得的闭环根r (矩阵)和对应的开环增益k (向量)返回至matlab 命令窗口,不作图。

函数格式5:从系统中提取零极点模型的参数。

更详细的命令说明,可以键入“help rlocus ”等帮助命令查询。

例如,系统开环传递函数
)2)(1()(++=s s s k s Go g
根轨迹作图程序为:
k=1;z=[];p=[0,-1,-2];[den,num]=zp2tf(z,p,k);
rlocus(num,den)
根轨迹如图1所示:
图1 根轨迹图
pzmap(num,den)
[p,z]=pzmap(num,den)
例4:给定单输入-单输出系统(SISO )的传递函数
)
()()(s den s num s G = 分子多项式系数向量num 和分母多项式系数向量den ,在s 平面作零极点图。

函数格式1:计算零极点并作图。

函数格式2:返回变量格式。

计算所得的零极点向量p ,z 返回至matlab 命令窗口,不作图。

例如,系统的传递函数
20
144)1(2)(23+++-=s s s s s G 程序为:num=[2,-2],den=[1,4,14,20],pzmap(num,den)
零极点图如图2所示
图2 零极点图
[k,r]=rlocfind(num,den)
此函数的功能是在作好的根轨迹图上,确定闭环位置的增益k 和闭环根r (向量)的值。

该函数执行前,先执行命令rlocus(num,den),作出根轨迹图,然后再执行该命令,出现提示语句“select a point in the graphics window ”,要求在根轨迹图上选定闭环根的位置。

将鼠标移至根轨迹图选定位置,单击左键确定,图上出现“+”标记,在matlab 平台上即得到了该点的增益k 和闭环根r 的返回变量值。

附:
控制系统的几种表达方式
Constructing Transfer Function and Zero/Pole/Gain Models
In the DC motor example, the state-space approach produces a set of matrices that
represents the model. If you choose a different approach, you can construct the
corresponding models using tf, zpk, ss, or frd.
sys = tf(num,den)
sys = zpk(z,p,k)
sys = ss(a,b,c,d)
sys = frd(response,frequencies)
For example, if you want to create the transfer function of the DC motor directly, use
these commands.
s = tf('s');
sys_tf = 1.5/(s^2+14*s+40.02)
The Control System Toolbox builds this transfer function.
Transfer function:
1.5
--------------------
s^2 + 14 s + 40.02
Alternatively, you can create the transfer function by specifying the numerator and
denominator with this code.
To build the zero/pole/gain model, use this command.
sys_zpk = zpk([],[-9.996 -4.004], 1.5)
This is the resulting zero/pole/gain representation.
Zero/pole/gain:
1.5
-------------------
(s+9.996) (s+4.004)
思考题:下面的传递函数如何在matlab表示出来?
40000000
----------------------------------
s (s+250) (s^2 + 40s + 9e004)
前2%不超过0.05秒,最大超调量不超过5%,利用根轨迹法完成。

sys1=tf(4e7,[1 250 0])
sys2=tf(1,[1 40 9e4])
sys=series(sys1,sys2)
例:绘制控制系统的阶跃曲线
①单输入系统:
sysc = tf(1000,[1 10 1000])
sysd = c2d(sysc,0.2) % ZOH sampled at 0.2 second
step(sysc,'--',sysd,'-') % Compare step responses
②多输入系统:
h = [tf(10,[1 2 10]) , tf(1,[1 1])]
step(h)
step(h,10) % Simulates from 0 to 10 seconds
t = 0:0.01:10 % Time samples spaced every 0.01 second
step(h,t)
绘制控制系统的波特图
sysc = tf(1000,[1 10 1000])
sysd = c2d(sysc,0.2) % ZOH sampled at 0.2 second
bode(sysc,'--',sysd,'-') % Compare Bode responses
分图绘制给定系统的各种特性曲线
h = tf([4 8.4 30.8 60],[1 4.12 17.4 30.8 60]);
subplot(221)
bode(h)
subplot(222)
step(h)
subplot(223)
pzmap(h)
subplot(224)
plot(rand(1, 100)) % Any data can go here
title('Some noise')
Matlab提供的相关帮助:
Matlab help——contents——control system toolbox——building models—designing compensators——root locus design
思考题。

相关文档
最新文档