资源简介
基于MATLAB鲁棒控制工具箱,设计出计算机硬盘磁头的H无穷鲁棒控制器,具有良好的性能。
代码片段和文件信息
format short e
w=logspace(-26100);
%设一般被控制对象
%定义控制对象和加权函数
Psys=nd2sys([1][1 0 0]3.87e7);
W1sys=nd2sys([1 125.7][1 1e-4]5e-1);
W2num1=[1 1e+4 5.7e+7];
W2dencof=1;
W2den1=[1 1.2e+4 4.04e+8];
W2sys1=nd2sys(W2num1W2den1);
W2sys=mmult(W2sys1W2sys123.9);
W3sys=0.1;
W4sys=nd2sys([10 10*0.5*0.5e4][1 10*5e4]);
%显示加权函数的Bode图
Pfr=frsp(Psysw);
W1fr=frsp(W1sysw);
W2fr=frsp(W2sysw);
W3fr=frsp(W3sysw);
W4fr=frsp(W4sysw);
figure(1);
vplot(‘livlm‘W1frW2frW3frW4fr);
title(‘Weightign Functions‘)
xlabel(‘Freprency [rad/s] ‘)
ylabel(‘Gain‘)
grid;
%设一般被控制对象
systemnames=‘Psys W1sys W2sys W3sys W4sys‘;
inputvar=‘[w1;w2;u] ‘;
outputvar=‘[W1sys;W2sys;W4sys;w2+Psys] ‘;
input_to_W3sys=‘[w1] ‘;
input_to_Psys=‘[u+W3sys] ‘;
input_to_W1sys=‘[Psys+w2] ‘;
input_to_W2sys=‘[Psys] ‘;
input_to_W4sys=‘[u]‘;
sysoutname=‘Gpsys‘;
cleanupsysic=‘yes‘;
sysic;
%设计控制器
disp([‘H00 controller Design with hinfsyn‘]);
K=[];
glow=0;ghigh=10;tol=1e-2;
while isempty(K)==1&ghigh<1e6;
[KCLgopt]=hinfsyn(Gpsys11glowghightol);
- 上一篇:电机直接起动matlab仿真
- 下一篇:EWT经验小波matlab应用实现信号处理
评论
共有 条评论