【MATLAB】根轨迹的绘制及rltool工具的使用

一、MATLAB中传递函数的表示

在绘制系统的根轨迹之前,需要知道传递函数在matlab中如何表示。
在matlab中,通常用向量表示一个多项式。例如P=[1 2 3 ]表示 F(s)=s2+2s+3。而对于传递函数的表示,通常利用一个向量num表示其分子多项式,den表示分母多项式。例如表示 F ( s ) = 3 s 2 + s s 3 + 5 s + 8 F(s)=\frac{3s^2+s}{s^3+5s+8} F(s)=s3+5s+83s2+s的代码如下:

clear all;
close all;
num=[3 1 0];
den=[1 0 5 8];
sys=tf(num,den)

运行结果:

sys =
 
    3 s^2 + s
  -------------
  s^3 + 5 s + 8
 
Continuous-time transfer function.

如果是两个多项式是相乘的形式,可以利用conv()函数。例如Fs=(s2+3s+1)(4s+1),则可以用den=conv([1 3 1],[4 1])计算出两个多项式相乘后的系数。

二、rlocus函数绘制根轨迹

MATLAB提供rlocus函数可以直接用于绘制系统的根轨迹。还能够允许用户交互式的选取根轨迹上的值。下表是rlocus函数的常见用法。

函数使用说明
rlocus(G)绘制开环传递函数为G的根轨迹
rlocus(G1,G2,…)在同一张图上绘制多个系统的根轨迹
rlocus(G,k)绘制系统的给定增益向量k的根轨迹
[r,k]=rlocus(G)返回根轨迹参数,r为闭环特征根
r=rlocus(G,k)返回系统的开环增益为k时的闭环特征根

下面分别演示常规根轨迹、参数根轨迹和零度根轨迹的绘制步骤。

1.常规根轨迹仿真示例

例: 某系统的结构如下图所示,绘制出其根轨迹。
图1-1
其中: G ( s ) H ( s ) = K ∗ ( s + 5 ) ( s + 2 ) ( s + 3 ) . G(s)H(s) = \frac{K^*(s+5)}{(s+2)(s+3)}. G(s)H(s)=(s+2)(s+3)K(s+5).
求解程序如下:

clear all;
close all;
num=[1 5];%num表示传递函数分子多项式系数向量
den=conv([1 2],[1 3]);%den表示传递函数分母多项式系数向量
sys=tf(num,den);%得到传递函数sys
rlocus(sys)%绘制根轨迹,也可以用rlocus(num,den)直接绘制。

运行结果如下图:
图1-2

2.参数根轨迹仿真示例

绘制参数根轨迹和绘制常规根轨迹的过程基本上相同。只需要在绘制参数根轨迹之前,引入“等效开环传递函数”,将绘制参数根轨迹的问题化为绘制K*变化时的根轨迹形式来处理。
例: 单位负反馈系统开环传递函数为 G ( s ) = k s ( s + 2 k ) . G(s) = \frac{k}{s(s+2k)}. G(s)=s(s+2k)k.
绘制出k=0→∞时的根轨迹。
解: 首先将上述传递函数转化为:
G ∗ ( s ) = k ( 2 s + 1 ) s 2 . G^*(s) = \frac{k(2s+1)}{s^2}. G(s)=s2k(2s+1).
然后就按照常规根轨迹的绘制步骤进行绘制,代码如下:

clear all;
close all;
num=[2 1];
den=[1 0 0];
rlocus(num,den);

运行结果如下:
图1-3

3.零度根轨迹仿真示例

绘制零度根轨迹和绘制常规根轨迹的过程也基本上相同。唯一的差别是在绘制零度根轨迹时,需要在表示传递函数分子多项式的系数前添加一个负号,举个例子如下。
例: 某正反馈系统的结构图如下所示,
图1-4
其中: G ( s ) H ( s ) = K ∗ s ( s + 5 ) ( s + 8 ) ( s 2 + 2 s + 2 ) . G(s)H(s) = \frac{K^*s(s+5)}{(s+8)(s^2+2s+2)}. G(s)H(s)=(s+8)(s2+2s+2)Ks(s+5).
试绘制出根轨迹。
代码如下:

clear all;
close all;
num=[-1 -5 0];
den=conv([1 8],[1 2 2]);
Gs=tf(num,den);
rlocus(Gs)

运行结果如下:
图1-5

三、图形化工具rltool介绍

MATLAB的rltool工具是一个图形化的工具,能够显示出系统的根轨迹以及系统的响应,同时也能够绘制系统的Bode图、奈奎斯特图和Nichols图等。rltool工具提供了一个非常直观的界面,帮助用户设计、分析和仿真控制系统,使得控制器的设计变得更加简单和高效。
下图是rltool工具界面的介绍。
在这里插入图片描述
rltool工具默认的系统结构如下图所示,
在这里插入图片描述
其中G为被控对象,也就是输入rltool(sys)命令时传递函数sys,C为控制器(补偿器),在本文中C的值就是开环增益K的值。如果要改变系统的结构图,在菜单栏的第三项“Edit Architecture”中选择系统结构。
rltool常用命令如下表:

函数说明
rltool打开rltool工具
rltool(PLANT)指定被控对象G的模型,PLANT是用TF、ZPK或SS创建的任何线性模型。
rltool(PLANT,COMP)进一步指定控制器C的模型,COMP是用TF、ZPK或SS创建的任何线性模型。
rltool(PLANT,COMP,LocationFlag,FeedbackSign)LocationFlag指定控制器的位置,FeedbackSign决定反馈符号。LocationFlag=‘forward’时,控制器C在前向通道上;LocationFlag=‘feedback’时,控制器C在反馈回路上;FeedbackSign='-1’为负反馈;FeedbackSign=’1‘为正反馈。

通过以下的例子来简单介绍rltool工具的使用方法。

例: 某系统的方框图下图所示,
图2-1
已知该系统为单位负反馈系统,被控对象为 G ( s ) = 1 s 3 + 20 s 2 + 100 s G(s)=\frac{1}{s^3+20s^2+100s} G(s)=s3+20s2+100s1,其中C(s)为比例控制器, C ( s ) = K C(s)=K C(s)=K,试绘制出K=0→∞时的系统根轨迹,另外讨论分别加入环节(s+4)和(s+2)对系统根轨迹的影响(C(s)=K(s+4)和C(s)=K(s+2)),并用阶跃响应验证结果。
解:
程序代码如下:

clear all;
close all;
num=[1];
den=[1 20 100 0];
Gs=tf(num,den);%建立被控对象传递函数
rltool(Gs)%打开rltool工具界面

运行以上代码过后,进入到rltool工具的界面,如下图所示。其界面会显示出该系统的根轨迹图和K=1时系统的阶跃响应。根轨迹图中的红点表示当前系统的闭环特征根,可以拖动红点来改变当前系统的闭环特征根,拖动红点的同时系统的阶跃响应也会发生改变。而此时左边"Controllers or Fixed Blocks"状态栏中C的值就是当前系统的开环增益。
在这里插入图片描述
在这里插入图片描述

然后给系统添加一个环节(s+4),只需要在根轨迹图右击鼠标,选择添加零点极点"Add Pole or Zero"即可,如下如图所示,
在这里插入图片描述
选择"Real Zero"添加实数零点,再在实数坐标上点击’-4‘的位置,添加完成后如下图所示,可以看到此时C的值为(s+4)。为了下一步能和添加环节(s+2)后对比系统的阶跃响应,先将该系统储存起来,点击菜单栏的"Store"选项储存为Design1。
在这里插入图片描述
接下来添加环节(s+2),只需要将刚才的“-4”零点拖拽到“-2”处,添加过后的结果如下图所示,

在这里插入图片描述

在这里插入图片描述
为了对比两个环节的阶跃响应,首先把两个系统的开环增益都设置为了1(也就是把控制图中C的值设置为1)然后再点击"Compare"选项选择Design1和当前系统进行对比,对比图如下,
在这里插入图片描述
其中,蓝色曲线为当前系统的阶跃响应(添加了环节(s+2)的系统),绿色曲线为Design1的系统阶跃响应(添加了环节(s+4)的系统)。

rltool的功能远不止画根轨迹,它也可以画Bode图、奈奎斯特图等等,能够对系统时域和频域分析起到很大的帮助,大家可以根据自己需要自行去探索

  • 37
    点赞
  • 179
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
压缩包包含: 1、仿真源代码文件,MATLAB可运行simulink和脚本代码。 2、可提交Word版本仿真报告。 一 、 仿真实验内容及要求 1 .MATLAB 软件 要求学生通过课余时间自学掌握 MATLAB 软件的基本数值运算、基本符号运算、基 本程序设计方法及常用的图形命令操作;熟悉 MATLAB 仿真集成环境 Simulink 的使用。 2 .各章节实验内容及要求 1)第三章 线性系统的时域分析法 · 对教材第三章习题 3-5 系统进行动态性能仿真,并与忽略闭环零点的系统动态性能 进行比较,分析仿真结果; · 对教材第三章习题 3-9 系统的动态性能及稳态性能通过仿真进行分析,说明不同控 制器的作用; · 在 MATLAB 环境下选择完成教材第三章习题 3-28,并对结果进行分析; · 在 MATLAB 环境下完成英文讲义 P153.E3.3; · 对英文讲义中的循序渐进实例“Disk Drive Read System”,在 100 = a K 时,试采用 微分反馈控制方法,并通过控制器参数的优化,使系统性能满足 % 5%, s < 3 250 , 5 10 s ss t ms d - £ < ´ 等指标。 2)第四章 线性系统的轨迹法 · 在 MATLAB 环境下完成英文讲义 P165.E4.5; · 利用 MATLAB 绘制教材第四章习题 4-5; · 在 MATLAB 环境下选择完成教材第四章习题 4-10 及 4-17,并对结果进行分析; · 在 MATLAB 环境下选择完成教材第四章习题 4-23,并对结果进行分析。 3)第五章 线性系统的频域分析法 · 利用 MATLAB 绘制本章作业中任意 2 个习题的频域特性曲线; · 利用 MATLAB 完成教材第五章习题 5-27; · 利用 MATLAB 完成教材第五章习题 5-29,并对结果进行分析。 4)第六章 线性系统的校正 · 利用 MATLAB 选择设计本章作业中至少 2 个习题的控制器,并利用系统的单位阶 跃响应说明所设计控制器的功能; · 利用 MATLAB 完成教材第六章习题 6-21 控制器的设计及验证; · 对英文讲义中的循序渐进实例“Disk Drive Read System”,试采用 PD 控制并优化控 制器参数,使系统性能满足给定的设计指标 ms t s 150 %, 5 % < < s 。 5)第七章 线性离散系统的分析与校正 · 利用 MATLAB 完成教材第七章习题 7-19 的最小拍系统设计及验证; · 利用 MATLAB 完成教材第七章习题 7-22 的控制器的设计及验证; · 利用 MATLAB 完成教材第七章习题 7-24 的控制器的设计及验证; · 对英文讲义中的循序渐进实例“Disk Drive Read System”进行验证,计算 D(z)=4000 时系统的动态性能指标,并说明其原因。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦斯威尔逊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值