clc
clear
%The given conditions
Wsc=2*pi*80;
Wob=Wsc;
M=3.2;
%The selected PID gains
Kpv=M*Wsc; %the proportional gains of the speed controller
Kiv=0.2*Kpv*Wsc; %the integral gains of the speed controller
Kpp=Wsc/9; %the proportional gain of the position controller
KP=Kpp*Kpv+Kiv; %the P gains of PID controller.
KI=Kpp*Kiv; %the I gains of PID controller.
KD=Kpv; %the D gains of PID controller.
%PID gains of the Disturbance Observer
LP=3*Wob^2*M;
LI=Wob^3*M;
LD=3*Wob*M;
%disturbance compensation performance P/Fdist
DCAL=[M LD LP LI];
DCBL=[M KD KP KI];
numeL=[M LD LP 0 0];
denoL=conv(DCAL,DCBL);
Luen=tf(numeL,denoL);
bode(Luen);
grid on
hold on
%disturbance compensation performance of using modified observer
DCAM=[M LD LP LI];
DCBM=[M KD KP KI];
numeM=[M LD 0 0 0];
denoM=conv(DCAM,DCBM);
Modi=tf(numeM,denoM);
bode(Modi)
%%no disturbance compensation
numeN=[1 0];
denoN=[M KD KP KI];
No=tf(numeN,denoN);
bode(No);
h = findobj(gcf, 'Type','line');
set(h, 'LineWidth', 2);%change linewidth
title('bode plot:P/Fdist')
legend('Luenberger observer','Modified observer','No compensation')
1
最新推荐文章于 2025-02-05 20:23:43 发布
