MATLAB rlocus函数根轨迹完整实操教程

发布时间:2026/7/12 6:27:14
MATLAB rlocus函数根轨迹完整实操教程 文章目录一、rlocus函数核心用途二、系统建模基础写法1. 分子分母系数向量写法实验报告常用2. s符号直接建模复杂系统更简洁三、rlocus基础绘图语法1. 最简调用自动绘制完整根轨迹2. 限定增益K范围绘制局部根轨迹四、高频进阶实操用法场景1添加阻尼比、自然频率参考网格 sgrid场景2交互式选取增益 rlocfind场景3多个系统根轨迹同图对比场景4提取根轨迹数据不绘图场景5搭配零极点图辅助分析 pzmap五、离散系统根轨迹绘制六、常见报错与实操避坑七、完整可直接运行综合示例脚本一、rlocus函数核心用途rlocus是控制系统工具箱专用函数用于绘制单位负反馈系统随开环增益K从0到无穷变化时闭环极点在复平面上的移动轨迹也就是根轨迹。通过根轨迹能直观完成三件工程常用工作判断不同增益下系统是否稳定根据阻尼比、超调量要求选定合适开环增益K直观观察零极点对系统动态性能的影响。使用前提提前用tf、zpk、ss搭建LTI线性系统缺少Control System Toolbox会提示函数未定义。二、系统建模基础写法根轨迹只针对开环传递函数建模两种常用写法。1. 分子分母系数向量写法实验报告常用示例开环传递函数G ( s ) 1 s ( s 3 ) G(s)\frac{1}{s(s3)}G(s)s(s3)1​num[1];denconv([10],[13]);Gtf(num,den);多阶分母连续相乘全部用conv函数嵌套展开避免手动展开多项式出错。2. s符号直接建模复杂系统更简洁stf(s);G1/(s*(s3));三、rlocus基础绘图语法1. 最简调用自动绘制完整根轨迹clear;clc;stf(s);G1/(s*(s2)*(s5));figure;rlocus(G);grid on;title(三阶系统开环根轨迹图);xlabel(实轴 σ);ylabel(虚轴 jω);运行后图像横轴复平面实轴纵轴虚轴鼠标左键点击轨迹任意一点弹窗直接显示增益K、闭环极点坐标、阻尼比、超调量、无阻尼自然振荡频率。2. 限定增益K范围绘制局部根轨迹系统增益区间过大时曲线拥挤可手动指定K上下限只绘制关注区间轨迹K_range0:0.01:20;rlocus(G,K_range);grid on;四、高频进阶实操用法场景1添加阻尼比、自然频率参考网格 sgrid工程设计一般要求阻尼比0.4~0.7叠加等值线可快速定位满足动态指标的极点stf(s);G1/(s*(s1)*(s4));rlocus(G);sgrid(0.6,[]);% 仅绘制阻尼比0.6参考线grid on;title(带阻尼比网格的根轨迹);sgrid(zeta,wn)第一个参数填目标阻尼比第二个参数填自然频率留空则只显示阻尼线。场景2交互式选取增益 rlocfind手动点击根轨迹上目标极点自动返回对应开环增益K直接生成闭环系统验证阶跃响应stf(s);G1/(s*(s2)*(s5));rlocus(G);sgrid(0.5,[]);grid on;[K_select,pole]rlocfind(G);disp([选中的开环增益 K ,num2str(K_select)]);% 构建单位负反馈闭环系统G_closefeedback(K_select*G,1);figure;step(G_close);grid on;title([K,num2str(K_select),闭环系统阶跃响应]);运行代码后鼠标点击目标极点命令行输出增益同时弹出闭环阶跃曲线一步完成增益整定与性能验证。场景3多个系统根轨迹同图对比对比校正前后、增加零点/极点后的轨迹变化区分线型颜色clear;clc;stf(s);G11/(s*(s4));G2(s1)/(s*(s4));% 增加零点校正figure;rlocus(G1,r-,G2,b--);grid on;legend(原系统,增加零点校正后,Location,best);title(校正前后根轨迹对比);场景4提取根轨迹数据不绘图需要批量计算不同K对应的极点坐标时返回增益向量与极点矩阵stf(s);G1/(s*(s3));K_list0:0.5:10;[r,K_out]rlocus(G,K_list);% r每一列对应一个K下的全部闭环极点disp(增益与对应闭环极点);fori1:length(K_out)disp([K,num2str(K_out(i)), 极点,num2str(r(:,i))]);end场景5搭配零极点图辅助分析 pzmap绘制根轨迹前先查看开环零极点分布预判轨迹走向stf(s);G1/(s*(s2)*(s5));figure;pzmap(G);grid on;title(系统开环零极点分布图o零点x极点);五、离散系统根轨迹绘制离散系统传递函数建立时指定采样时间Tsrlocus用法完全一致num[0.1];denconv([1-1],[1-0.5]);Ts0.1;Gztf(num,den,Ts);figure;rlocus(Gz);grid on;title(离散系统根轨迹图);六、常见报错与实操避坑未定义函数’rlocus’未安装Control System Toolbox命令行输入ver control校验附加功能管理器安装工具箱。根轨迹只有一小段、缺少分支分母多项式未完整展开多阶因式相乘必须用conv嵌套不能直接手写合并多项式。rlocfind点击无响应必须先弹出rlocus绘图窗口再执行rlocfind代码中分figure分开绘图避免多图覆盖。轨迹越过虚轴不知道临界稳定增益鼠标点击轨迹与虚轴交点弹窗读取对应K值该值为系统临界稳定增益。分不清开环闭环rlocus只输入开环传递函数闭环系统需要用feedback结合选定K重新构造。七、完整可直接运行综合示例脚本% rlocus根轨迹完整仿真代码clear;clc;close all;% 1. 构建三阶开环传递函数stf(s);G_open1/(s*(s1)*(s5));disp(开环传递函数);G_open% 2. 绘制带阻尼网格的根轨迹figure(1);rlocus(G_open);sgrid(0.6,[]);grid on;title(三阶系统根轨迹阻尼比0.6参考线);% 3. 交互式选取增益生成闭环验证动态性能[K,p]rlocfind(G_open);G_closefeedback(K*G_open,1);figure(2);step(G_close);grid on;title([K,num2str(K),闭环系统阶跃响应曲线]);% 4. 提取指定增益区间的极点数据K_data0:0.2:15;[pole_mat,K_out]rlocus(G_open,K_data);disp(前5组增益对应闭环极点);disp([K_out(1:5),pole_mat(:,1:5)]);