✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。
🍎个人主页:Matlab科研工作室
🍊个人信条:格物致知。
更多Matlab仿真内容点击👇
⛄ 内容介绍
本章考虑用鲁棒控制方法来控制一个简单的二阶机械系统:质量块-阻尼器-弹簧系统。该系统是本科生实验教学中常见的控制实验装置。作为本书中的第一个案例,将针对该装置介绍三种控制器的详细设计方法,分析闭环系统的鲁棒稳定性和鲁棒性能。为了简化设计过程,此处仅考虑模型的结构扰动(参数扰动)。针对此例,介绍了matlab鲁棒控制工具箱(Robust Control Toolbox)一些鲁棒控制器设计指令。希望此章的学习不仅能够教授鲁棒控制系统设计方面的知识,也能够教会大家如何使用鲁棒控制工具箱。
⛄ 部分代码
hin_mds
lsh_mds
ms_mds
omega=logspace(-1,2,100);
%Real perturbations
blkrs_R=[-1 1;-1 1;-1 1];
blkrs=[blkrs_R;abs(blkrs_R)];
pdim=3;
%
%Hinf Controller
clp_h=starp(sys_ic,K_hin);
clp_hg=frsp(clp_h,omega);
rob_stab=sel(clp_hg,[1:3],[1:3]);
fixl=[eye(pdim);0.1*eye(pdim)]; % 1% complex
fixr=fixl';
clp_mix=mmult(fixl,rob_stab,fixr);
rbnds_h=mu(clp_mix,blkrs);
%
%Loop Shaping Controller
clp_lsh=starp(sys_ic,K_lsh);
clp_lshg=frsp(clp_lsh,omega);
rob_stab=sel(clp_lshg,[1:3],[1:3]);
fixl=[eye(pdim);0.1*eye(pdim)]; % 1% complex
fixr=fixl';
clp_mix=mmult(fixl,rob_stab,fixr);
rbnds_lsh=mu(clp_mix,blkrs);
%
%mu Controller
clp_mu=starp(sys_ic,K_mu);
clp_mug=frsp(clp_mu,omega);
rob_stab=sel(clp_mug,[1:3],[1:3]);
fixl=[eye(pdim);0.1*eye(pdim)]; % 1% complex
fixr=fixl';
clp_mix=mmult(fixl,rob_stab,fixr);
rbnds_mu=mu(clp_mix,blkrs);
%
figure(1)
vplot('liv,lm',sel(rbnds_h,1,1),'r-',...
sel(rbnds_lsh,1,1),'m--',...
sel(rbnds_mu,1,1),'c-.')
title('robust stability for all controllers')
xlabel('Frequency(rad/s)')
ylabel('Upper bound of \mu')
⛄ 运行结果
⛄ 参考文献
[1]王纪婵, 张亲艳, 潘劲松. 基于Matlab的空气弹簧悬架的鲁棒控制仿真[J]. 图书情报导刊, 2012, 22(5):124-125.