急急急!~帮忙解决Matlab的传递函数问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 16:28:53
哪为好心人能帮我做下题,小弟初学MATLAB,请帮我做下程序~
已知单位负反馈系统被控制对象的开环传递函数为:G(s)=K/S^2(0.2S+1),设计超前滞后校正环节G=KC*ATS+1/TS+1.
要求使其校正后系统单位斜坡响应可KA=10rad/S^2;开环系统剪切频率W>=20rad/s

给你我的一个我曾经编的超前校正的程序,可能有用:
对于函数功能不懂的,可以使用help命令:
function Gc=blead(G,kc,dPm)
dPm=50; %相位裕度/角度(包含5度的安全裕量);
kc=1; %设定开环增益;
G=tf([48e-3 48],[1e-9 1e-6 2e-3 1]); %生成待校正系统传递函数
[mag,phase,w]=bode(G*kc); %生成波特图矩阵形式(此处反馈系数设为1)
Mag=20*log10(mag); %生成开环幅值
[Gm,Pm.Wcg,Wcp]=margin(G*kc); %计算未校正系统的相角裕度;

phi=(dPm-getfield(Pm,'Wcg'))*pi/180; %计算网络系数
alpha=(1+sin(phi))/(1-sin(phi));
phi
Mn=-10*log10(alpha);
Wcgn=spline(Mag,w,Mn);%确定校正后系统的剪切频率Wcgn;
T=1/Wcgn/sqrt(alpha);
Tz=alpha*T; %确定校正器的交接频率(1/T和1/alpha*T)

Gc=tf([Tz 1],[T 1]); %得到校正器传函;
bode(G*Gc); %画出bode图
hold on;
bode(G);