📄 aaa.m
字号:
clear;clc;
numo=40;
deno=conv([1 0],[1 2]);
w=0.01:1000;
[mag1,phase1]=bode(numo,deno,w);
[gm1,pm1,wcg1,wcp1]=margin(numo,deno);
r=30;
ro=pm1;
e=10;
phic=(r-ro+e)*pi/180;
alphao=(1+sin(phic))/(1-sin(phic));
[io,jo]=min(abs(mag1-1/sqrt(alphao)));
wco=w(jo);
T=1/(wco*sqrt(alphao));
numc=[alphao*T 1];denc=[T 1];
[num,den]=series(numo,deno,numc,denc);
[gm,pm,wcg,wcp]=margin(num,den);
printsys(numc,denc);
printsys(num,den);
[mag2,phase2]=bode(numc,denc,w);
[mag,phase]=bode(num,den,w);
alpha=(1+sin(phic))/(1-sin(phic));
[i,j]=min(abs(mag-1/sqrt(alpha)));
wc=w(j);
subplot(211);
semilogx(w,10*log10(mag),w,10*log10(mag1),'--',w,10*log10(mag2),'-.');
grid,ylabel('幅值(db)');
title('---Go,-,Gc,GoGc');
subplot(212);
semilogx(w,phase,w,phase1,'--',w,phase2,'-',w,(w-180-w),':');
grid;ylabel('相位(。)');xlabel('频率(rad/s)')
title(['校正前:剪切频率=',num2str(wco),'rad/s',';','相位裕量=',num2str(pm1),'。','校正后:剪切频率=',num2str(wc),'rad/s',';', '相位裕量=',num2str(pm),'。']);
disp(['校正前:剪切频率=',num2str(wco),'rad/s',';', '相位裕量=',num2str(pm1),'。']);
disp(['校正后:剪切频率=',num2str(wc),'rad/s',';', '相位裕量=',num2str(pm),'。']);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -