使用MATLAB实现串联超前校正附带校正失效时的补偿策略

本题的例题为:
在这里插入图片描述

题目中给出的是时域指标,在进行频域法校正的时候要将时域指标转换成频域指标,转换的公式是根据,胡寿松第五版《自控原理》第239页高阶系统经验公式来进行的,在matlab中解方程即可:
在这里插入图片描述

clc;
clear;
% 超前校正例题
% 时域指标
rou = 0.275;
ts = 1.7;
K_gain = 10;
% 根据要求: 首先将时域指标转化成频域指标并得出K
% r(t)=t,ess<0.1,K=10
% 超调量<=27.5%,根据经验公式计算要求的相位裕度r_star
syms r_star
equa_0= rou==0.16+0.4*(1/sind(r_star)-1);
r_star = solve(equa_0);
r_star = vpa(r_star(2),3);
% 调整时间ts<=1.7,根据经验公式估算:
K0_exp = 2+1.5*(1/sind(r_star)-1)+2.5*(1/sind(r_star)-1)^2;
syms omega_c_star
equa_1 = (K0_exp)*pi/omega_c_star==ts;
omega_c_star = solve(equa_1);
omega_c_star = vpa(omega_c_star,3);
% 开始实施串联超前校正
num = 10;
den = conv([1,0],[conv([1/2,1],[1/30,1])]);
G0 = tf(num,den);
[Gm,Pm,wcg,wcp] = margin(num,den);
margin(G0);hold on

% 直接用相位裕度求解fai_m,进而求解倍频比
% 需要设定补偿量delta
delta = 13.5;
% 计算最大拉起量:
fai_m = r_star - Pm + delta;
a = (1+sind(vpa(fai_m,3)))/(1-sind(vpa(fai_m,3)));
a = vpa(a,3);
baselin_10loga = -10*log10(a);
[Mag,phase,w] = bode(num,den);
%注意要将幅值转换成分贝dB的形式
mag_db = mag2db(Mag);
%模拟作图计算的环节
omega_A = spline(mag_db,w,double(baselin_10loga));
omega_C = (wcp)^2/(omega_A);
omega_D = (omega_A)^2/(omega_C);
num_correct = [1/omega_C,1];
den_correct = [1/omega_D,1];
%得到校正环节的传函
Gcs = tf(num_correct,den_correct);
margin(Gcs);hold on
% 串联得到校正后的系统传函
G_star = series(G0,Gcs);
%进行验算,是否能满足频域指标
[Gmf,Pmf,Wcgf,Wcpf] = margin(G_star);
margin(G_star); hold on

这里其实出现了两种校正的补偿的方式,

增加delta的补偿量

上述代码使用的是增加超前相位补偿delta的量,正常应该取值为4~10。但是本例题中使用delta为10 的时候仍然达不到频域指标中的51相位裕度,所以持续增加,不断尝试,在delta取值为13.5时,此时矫正后的相位裕度为
P m f = 51.0358 Pmf=51.0358 Pmf=51.0358
其三个传递函数的bode图像图下图所示:
在这里插入图片描述

得到了相对正确的校正传函,经过simulink的验证,矫正之后的系统是稳定的

在这里插入图片描述

矫正之后的系统传函是:

在这里插入图片描述

偷“只因“法(卢老师真传)

将校正装置的传递函数中的omega_D逐渐放大,拉长BD线段,在不充分发挥校正装置的情况下逐渐满足频域指标,因此只需要修改omega_D的赋值语句即可,在原有的基础上向右偏移D个单位,然后看bode图,满足相位裕度即可

%模拟作图计算的环节
D = 3.9;
% 对Omega_D进行向右偏移,偏移量为D
omega_A = spline(mag_db,w,double(baselin_10loga));
omega_C = (wcp)^2/(omega_A);
omega_D = (omega_A)^2/(omega_C)+D;
num_correct = [1/omega_C,1];
den_correct = [1/omega_D,1];
%得到校正环节的传函
Gcs = tf(num_correct,den_correct);
% margin(Gcs);hold on
% 串联得到校正后的系统传函
G_star = series(G0,Gcs);
%进行验算,是否能满足频域指标
[Gmf,Pmf,Wcgf,Wcpf] = margin(G_star);
margin(G_star);

在这里插入图片描述

此时校正后的系统经过simulink的验证仍然是稳定的:

在这里插入图片描述

此时校正后的系统传函是:

在这里插入图片描述
两种方式都可以,但是在工程商更倾向于使用第二种投机的方式,因为一般情况下相角补偿量delta的取值范围在4~10,越大的delta其起到的作用更小,呈现边际效应递减的效果。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值