MATLAB rlocus函数结合根轨迹做控制器参数优化实操教程

📅 2026/7/12 6:24:43
MATLAB rlocus函数结合根轨迹做控制器参数优化实操教程
文章目录一、整体思路说明二、基础纯比例K参数单变量优化最常用2.1 优化判定指标2.2 完整优化代码流程2.3 优化操作步骤2.4 批量遍历增益自动筛选最优K无需手动点选三、进阶1新增校正零点根轨迹优化超前校正参数实操优化流程四、进阶2滞后校正根轨迹优化改善稳态误差五、进阶3PI控制器参数根轨迹优化六、根轨迹参数优化核心注意事项七、完整综合优化示例可直接复制做课程设计一、整体思路说明根轨迹参数优化核心逻辑以开环增益(K)为可调参数利用rlocus观察闭环极点分布结合阻尼比、稳定裕度、阶跃响应性能指标筛选最优增益若单增益无法满足要求可新增超前/滞后校正零极点再通过根轨迹重新优化参数。适用场景比例控制器P参数整定、超前校正、滞后校正、PI/PID初步参数寻优全程依托rlocus、rlocfind、sgrid完成可视化优化最后用阶跃响应验证优化效果。二、基础纯比例K参数单变量优化最常用2.1 优化判定指标工程通用约束条件闭环极点全部位于s平面左半平面系统稳定共轭复极点阻尼比(\zeta0.4\sim0.7)超调量5%~25%远离虚轴保证调节时间短、响应速度快避开临界稳定增益区间。2.2 完整优化代码流程clear;clc;close all;stf(s);% 原始被控对象开环传递函数Gp1/(s*(s2)*(s6));figure(1);rlocus(Gp);% 绘制阻尼比参考网格sgrid([0.4,0.7],[]);grid on;title(根轨迹优化阻尼比0.4~0.7最优区间);% 交互式拾取满足阻尼比的最优增益[K_opt,poles]rlocfind(Gp);disp([优化后比例增益 K ,num2str(K_opt)]);disp([对应闭环极点,num2str(poles)]);% 构建闭环系统验证动态性能G_closefeedback(K_opt*Gp,1);figure(2);step(G_close);grid on;title([K,num2str(K_opt),优化后闭环阶跃响应]);2.3 优化操作步骤运行代码弹出根轨迹0.4~0.7两条阻尼线之间为最优极点区域鼠标点击轨迹落在两条网格线中间的共轭极点读取输出(K_{opt})自动生成闭环阶跃曲线查看超调、调节时间是否达标若超调偏大重新点击更靠近0.7阻尼线的极点重新选取更小增益。2.4 批量遍历增益自动筛选最优K无需手动点选适合需要批量对比、写入实验报告场景自动筛选阻尼比落在0.4~0.7区间的增益stf(s);Gp1/(s*(s2)*(s6));% 设定增益遍历范围K_list0:0.1:30;[r,K_out]rlocus(Gp,K_list);% 循环判断每组增益对应的共轭极点阻尼比fori1:length(K_out)pr(:,i);% 提取共轭复极点complex_pp(imag(p)~0);if~isempty(complex_p)sigmareal(complex_p(1));wdabs(imag(complex_p(1)));wnsqrt(sigma^2wd^2);zeta-sigma/wn;% 筛选阻尼比0.4~0.7区间ifzeta0.4zeta0.7disp([适配增益K,num2str(K_out(i)), 阻尼比ζ,num2str(zeta)]);endendend三、进阶1新增校正零点根轨迹优化超前校正参数单纯调节比例K无法同时满足响应速度与超调时引入超前校正 (G_c(s)K\frac{sz}{sp}\quad(zp))固定零点z通过根轨迹优化极点p与总增益K。实操优化流程固定校正零点多次调整极点p绘制多条根轨迹对比轨迹偏移选择能让主极点落在目标阻尼区间的p再用rlocfind拾取最优Kclear;clc;stf(s);Gp1/(s*(s6));z1;% 固定校正零点% 两组不同校正极点对比Gc1(sz)/(s8);Gc2(sz)/(s12);G1Gc1*Gp;G2Gc2*Gp;figure;rlocus(G1,r-,G2,b--);sgrid(0.6,[]);grid on;legend(校正极点p8,校正极点p12);title(超前校正极点参数根轨迹对比优化);% 选择轨迹性能更好的系统拾取最优K[K_opt,~]rlocfind(G2);G_closefeedback(K_opt*G2,1);figure;step(G_close);grid on;优化逻辑极点p越大根轨迹主极点越往左系统响应速度越快反复对比选出兼顾超调与速度的p。四、进阶2滞后校正根轨迹优化改善稳态误差滞后校正 (G_c(s)\frac{sz}{sp}\quad(zp))作用压低低频增益、提升稳态精度根轨迹优化要点校正零极点靠近原点几乎不改变主极点动态特性主极点仍落在0.4~0.7阻尼区间仅优化稳态误差stf(s);Gp1/(s*(s3));Gc(s0.8)/(s0.1);% 滞后校正G_openGc*Gp;figure;rlocus(G_open);sgrid(0.6,[]);[K_opt,~]rlocfind(G_open);G_closefeedback(K_opt*G_open,1);figure;step(G_close);优化判断对比不加滞后校正、加滞后校正两条阶跃曲线稳态误差明显减小振荡幅度不变即为参数合适。五、进阶3PI控制器参数根轨迹优化PI控制器 (G_c(s)K_p\frac{K_i}{s}K_p\frac{sK_i/K_p}{s})令零点(zK_i/K_p)通过根轨迹优化零点位置与总增益调整零点z观察根轨迹主极点位置选定合适零点后拾取最优比例增益stf(s);Gp1/(s4);% PI控制器零点z可变z1.2;Gc(sz)/s;G_openGc*Gp;figure;rlocus(G_open);sgrid(0.5,[]);[Kp_opt,~]rlocfind(G_open);Ki_optKp_opt*z;disp([最优比例Kp,num2str(Kp_opt), 积分Ki,num2str(Ki_opt)]);G_closefeedback(Kp_opt*Gc*Gp,1);step(G_close);grid on;六、根轨迹参数优化核心注意事项区分主导极点与远极点优化只关注靠近虚轴的共轭主导极点远离虚轴的极点响应速度极快对动态性能影响很小不用作为优化依据。优化必须配套阶跃响应验证根轨迹只能看极点位置无法反映稳态误差、实际超调量选出参数后必须绘制step曲线校验指标。多参数优化分步进行不要同时调多个变量先固定校正零极点优化增益K确定K后再微调零极点多变量同步调整会无法判断参数影响规律。临界稳定增益约束优化的K必须小于轨迹与虚轴交点对应的临界增益否则系统发散鼠标点击虚轴交点可读取临界K上限。sgrid网格仅作参考不能完全照搬若系统存在远实极点即使主极点阻尼比达标曲线仍可能出现小幅振荡需以实际阶跃响应为准。离散系统优化禁用sgrid离散z平面根轨迹使用zgrid绘制阻尼圆稳定边界为单位圆优化判定标准和连续s平面完全不同。七、完整综合优化示例可直接复制做课程设计% 基于rlocus的比例增益完整参数优化脚本clear;clc;close all;stf(s);% 被控对象G_obj2/(s*(s1)*(s5));% 1. 绘制根轨迹划定最优阻尼区间figure(1);rlocus(G_obj);sgrid([0.4,0.7],[]);grid on;title(根轨迹参数优化ζ0.4~0.7最优区间);% 2. 交互式拾取最优增益[K_best,poles_best]rlocfind(G_obj);disp(优化结果);disp([最优比例增益 K ,num2str(K_best)]);disp([闭环主导极点,num2str(poles_best)]);% 3. 构建闭环系统验证时域指标G_closfeedback(K_best*G_obj,1);figure(2);step(G_clos);grid on;title([优化参数K,num2str(K_best),闭环阶跃响应]);% 4. 提取响应数据计算超调量[y,t]step(G_clos);y_steadyy(end);y_maxmax(y);overshoot(y_max-y_steady)/y_steady*100;disp([系统超调量,num2str(overshoot), %]);