MATLAB rlocus根轨迹分析实操注意事项

MATLAB rlocus根轨迹分析实操注意事项

文章目录

    • 一、建模层面核心注意事项(90%报错根源)
      • 1. rlocus只接收**单位负反馈开环传递函数**
      • 2. 分子分母多项式必须降幂排列,多因式必须用conv展开
      • 3. 区分连续系统与离散系统建模格式
      • 4. 传递函数不能带前置增益,增益由rlocus自动遍历
    • 二、绘图函数调用注意事项
      • 1. 自定义增益区间格式不能写错
      • 2. sgrid网格使用规范
      • 3. 多系统同图对比线型区分
    • 三、rlocfind交互式选增益高频坑点
    • 四、稳定性与性能判断注意事项
    • 五、数据提取用法注意事项
    • 六、报错与环境相关注意事项
    • 七、实验报告/工程绘图规范注意事项
    • 八、容易混淆的概念区分提醒

一、建模层面核心注意事项(90%报错根源)

1. rlocus只接收单位负反馈开环传递函数

rlocus内置逻辑默认结构:闭环传递函数 $ \Phi(s)=\dfrac{KG(s)}{1+KG(s)} $,输入必须是开环G ( s ) G(s)G(s),不能直接丢闭环系统进去。
错误示范:把feedback闭环后的模型传入rlocus,轨迹完全失真;
正确逻辑:先写开环G,rlocus(G),选定K后再用feedback(K*G,1)构造闭环验证。

2. 分子分母多项式必须降幂排列,多因式必须用conv展开

传递函数num、den系数从s最高次到常数项依次书写,不能颠倒;
多个一阶因式相乘,禁止手动口算合并,嵌套conv函数避免计算错误。
示例:G = 1 s ( s + 2 ) ( s + 4 ) G=\dfrac{1}{s(s+2)(s+4)}G=s(s+2)(s+4)1

% 正确写法den=conv([10],conv([12],[14]));% 错误:den=[1 6 8 0]手动书写极易写错系数

若多项式系数写错,根轨迹分支缺失、走向完全错乱。

3. 区分连续系统与离散系统建模格式

  • 连续系统:G=tf(num,den),无采样时间;
  • 离散系统:必须传入采样周期Gz=tf(num,den,Ts),否则rlocus仍按连续系统绘制,z平面根轨迹完全错误。
    离散根轨迹在z平面单位圆内才稳定,和s平面虚轴稳定判定规则不同,不要混用判断标准。

4. 传递函数不能带前置增益,增益由rlocus自动遍历

开环模型只能保留分子常数1,可变增益K由rlocus从0→∞遍历。
错误:G=5/(s+1),此时rlocus遍历的是K×5,增益数值混淆;
正确:G=1/(s+1),仿真时的放大倍数全部交给rlocus自动处理。

二、绘图函数调用注意事项

1. 自定义增益区间格式不能写错

限定K范围绘图时,rlocus第二个参数必须为一维递增数组:

% 正确K_range=0:0.01:30;rlocus(G,K_range);% 错误:K为递减数组、非正数数组,轨迹截断缺失

只截取局部区间会丢失临界稳定点、渐近线分支,完整分析建议不限制K区间。

2. sgrid网格使用规范

sgrid(zeta,wn)仅适用于连续系统s平面根轨迹,离散z平面不支持sgrid,强行调用直接报错。

  • 只画阻尼比线:sgrid(0.5,[])
  • 同时画阻尼比+自然频率:sgrid([0.4,0.6],[2,5])
  • 绘图顺序:先rlocus,再sgrid,顺序颠倒网格不会显示。

3. 多系统同图对比线型区分

多组开环系统叠加根轨迹时,必须手动指定颜色线型,避免曲线重叠无法区分:

rlocus(G1,'r-',G2,'b--');legend('原系统','校正后系统','Location','best');

不指定样式时多条曲线默认黑色实线,完全重叠看不清差异。

三、rlocfind交互式选增益高频坑点

  1. 必须先弹出rlocus图像窗口,再执行rlocfind
    代码顺序颠倒会直接无交互弹窗,鼠标点击无任何反馈:
% 正确顺序rlocus(G);sgrid(0.6,[]);[K,pole]=rlocfind(G);
  1. 鼠标点击尽量贴合轨迹线条,点空白区域会返回无效极点、错误K值;
  2. 若根轨迹分支密集,放大图窗局部区域再点击,精度更高;
  3. rlocfind返回的K是开环总增益,构造闭环时一定要写成feedback(K*G,1),不能直接feedback(G,1)。

四、稳定性与性能判断注意事项

  1. s平面稳定判定标准
    根轨迹极点全部在虚轴左侧系统稳定;轨迹穿过虚轴时对应的K为临界稳定增益,超过该K极点进入右半平面,系统发散。
    不要把离散z平面单位圆规则套用到连续系统。
  2. 阻尼比与超调量对应仅针对共轭复极点
    实轴上的单实极点无振荡,sgrid阻尼线只对复极点有参考意义,不要用实轴极点判断超调。
  3. 渐近线、分离点、虚轴交点仅代表开环特性,闭环动态需要step验证
    根轨迹只能看极点位置,无法直观体现稳态误差,选定K后必须绘制阶跃响应,综合超调、调节时间、稳态误差评估性能。

五、数据提取用法注意事项

使用[r,Kout] = rlocus(G,Klist)提取数据时:

  1. 输出r是三维矩阵,每一列对应一组增益下全部闭环极点,遍历读取数据需要矩阵索引;
  2. Klist步长不宜过大,步长过大会漏掉临界稳定增益;
  3. 仅提取数据不绘图时,不会弹出图像窗口,无法使用sgrid、rlocfind交互工具。

六、报错与环境相关注意事项

  1. 提示未定义函数rlocus
    未安装Control System Toolbox,命令行输入ver control验证;学生版、精简版MATLAB容易缺失该工具箱,需手动在附加功能管理器安装。
  2. 图像空白、无轨迹
    ① num、den系数全部为0;② 传递函数书写错误,分母最高次系数为0;③ 零极点全部抵消,系统降阶为常数。
  3. 根轨迹分支数量和系统阶数不符
    分母多项式展开不全,conv嵌套遗漏因式,导致阶数计算错误,分支缺失。
  4. 根轨迹左右走向完全反常
    混淆开环、闭环模型,把闭环传递函数传入rlocus,轨迹逻辑完全颠倒。

七、实验报告/工程绘图规范注意事项

  1. 每张根轨迹图必须加grid on,配合sgrid网格,方便读取阻尼比与增益;
  2. 标注坐标轴:实轴σ、虚轴jω,标题注明系统开环传递函数;
  3. 对比校正前后轨迹需添加图例,区分原系统、超前/滞后校正系统;
  4. 临界稳定增益、目标阻尼比对应的极点,建议截图标注K值,配套闭环阶跃响应曲线佐证。

八、容易混淆的概念区分提醒

  1. rlocus = 根轨迹(K从0到无穷);rlocfind = 交互式拾取增益,二者配套使用,不能互相替代;
  2. pzmap只画开环固定零极点,不随K变化,仅作为根轨迹前置辅助图;
  3. bode频域分析、rlocus复平面极点分析,两类工具适用场景不同,不可单独依靠一种完成校正设计。