資源簡介
基于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應用實現信號處理
評論
共有 條評論