s=tf('s'); %生成拉普拉斯变量s
G=10/(s*(s+1)); %生成开环传递函数
[mag,phase,w]=bode(G); %获取对数频率特性上每个频率w对应的幅值和相位角
[Gm,Pm]=margin(G); %计算开环传递函数的幅值裕量和相位裕量
DPm=45; %期望的相位裕量
MPm=DPm-Pm+5; %校正网络需提供的最大相位超前
MPm=MPm*pi/180; %转换为弧度表示的角度
a=(1+sin(MPm))/(1-sin(MPm)); %计算超前校正的分度系数
adb=20*log10(mag); %计算开环传递函数对应不同频率的对数幅值
am=10*log10(a); %计算校正网络在校正后的剪切角度频率处提供的对数幅值
wc=sphine(adb,w,-am); %利用线性插值函数求取对应-am处的频率,即为校正后的 %剪切频率wc
T=1/(wc*sqrt(a)); %求时间常数
at=a*T;
Gc=tf([at 1],[T 1]); %获取控制器的传递函数
Gh=Gc*G;
figure,margin(Gh); %绘制校正后系统的Bode图
grid