📄 pidsim4.m
字号:
clf,
num=1,den=[1 4 2],tao=20,
w=logspace(-2,2,200)',
pause;
% plot Nyquist graph
clf;
[r,i]=nyquist(num,den,w),
rd=real((r+j*i).*exp(-j*w*tao)),
id=imag((r+j*i).*exp(-j*w*tao)),
plot(rd(1:84),id(1:84),'--'),
set(gca,'xtick',[-0.5 -0.4 -0.3 -0.2 -0.1 0 0.1 0.2 0.3 0.4 0.5]);
pause;
% slove the magnitude and phase
%[mag,phase]=nichols(num,den,w),
%mag,phase,
%pause;
%magdb=20*log10(mag),
%[gm,pm,wpc,wgc]=margin(magdb,phase,w),grid,
%gm,pm,wpc,wgc,
%pause;
% System Identification
A=abs((rd(58,1)+rd(59,1))/2), w0=(w(58)+w(59))/2,
t=[0:0.1:10],
[y,x]=step(num,den,t);
K=y(100,1),
T=(sqrt(K*K/A/A-1))/w0,ti=(pi-atan(w0*T))/w0,
num1=K, den1=[T 1],
printsys(num1,den1),
[r1,i1]=nyquist(num1,den1,w);
%step(num1,den1),
rd1=real((r1+j*i1).*exp(-j*w*ti)),
id1=imag((r1+j*i1).*exp(-j*w*ti)),
hold on,
plot(rd1(1:85),id1(1:85),':'),
pause;
%Simulition by SIMULINK
k2=(1.41*0.6174*T-T-ti)/(K*ti),
k1=(0.6174^2*T/ti-1)/K-k2,
num2=0.3099*0.6174^2,
den2=[1 1.41*0.6174 0.6174^2],
[r2,d2]=nyquist(num2,den2,w),
plot(r2,d2),grid,
% tuning PID parameters
Kp=(2.15*T*ti-K*k1-K*k2-1)/K,
Td=(1.75*T*ti-T-ti-K*k2*ti)/(K*Kp),
Kd=Kp*Td,
Ti=(K*Kp*ti^2)/(T*0.6174^3),
Ki=Kp/Ti,
%pause;
% Z-N tuning method
Kp2=1.2*(ti/T)^(-1)/K,
Ti2=T*2*(ti/T); Ki2=Kp2/Ti2,
Td2=T*0.5*(ti/T); Kd2=Kp2*Td2,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -