使用MATLAB设计快速重复控制器及代码

本文介绍了重复控制理论及其在质子加速器跟踪精度问题中的应用。详细阐述了补偿控制器的设计,包括陷波器、二阶低通滤波器和相位滞后补偿器的作用。接着,给出了20kVA逆变器参数设计和MATLAB代码实现,展示了如何设计重复控制器的内模,并通过Bode图和Nyquist图分析了系统的稳定性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

重复控制简介

补偿控制器

代码实现 


重复控制简介

重复控制这一新型控制理论最早于出现日本学术界,其目的是为了用于解决质子加速器跟踪精度的问题。Yamamoto Y 等人提出了重复控制数学基础的内模原理,在控制通路中加入延时记录环节,在每个控制周期将误差记录并反馈到后一个周期的误差量中叠加控制,通过周期性的累加直至跟踪误差衰减到零,实现系统无静差控制。

补偿控制器

由于LC滤波器在谐振频率处增益较大,可能会造成重复控制器失稳,为了保证良好的稳定性与稳态精度,可在控制回路中串入补偿器校正控制对象的幅值与相位,同时达到低频下快速精确控制与抑制高频谐振的控制目标。

重复控制器包含重复控制器内模、陷波器、二阶低通滤波器以及相位滞后补偿器。

陷波器的主要作用是抑制谐振尖峰;

二阶低通滤波器的主要作用是降低高频增益;

相位补偿的主要作用是保证中低频增益为0,相位保持不变。

代码实现 

%% 重复控制器参数设计
%% 20kVA逆变器参数设计
L = 1.7e-3;
C = 22e-6;
W=2*pi*700;%二阶低通滤波器S(z)的截止频率,略低于LC滤波器的谐振频率
Wr = 1/sqrt(L*C);%LC滤波器谐振频率
lambda = 1;
Ts = 1/10000;
Tctl = 1e-4;
W0 = 2*pi*50;
s = tf('s');
z = tf('z',Ts);
%% 重复控制的内模设计
Q=0.95;%改进内模的滤波器,常数一般取0.95-1,为了使得内模稳定
QZ=(z+2+z^-1)/4;%改进内模采用的低通滤波器
N=200;%N=fs/f0=200
rcz0=QZ*z^(-N)/(1-QZ*z^(-N))%单倍频的内模
Hi=8;%电感电流有源阻尼反馈系数、
%% Bode图横坐标设置为Hz
opts = bodeoptions('cstprefs');
opts.Grid = 'on';
opts.FreqUnits = 'Hz';
opts.PhaseMatching = 'on';
Freq = 100*2*pi:0.1*2*pi:((1/2/Tctl)*2*pi);
%% 被控对象z域函数
GDP_z = z^(-1)*(z^(-1)+z^(-2))*(1-cos(Wr*Ts))/((1-2*z^(-1)*cos(Wr*Ts)+z^(-2)+Hi*z^(-1)/(Wr*L)*(sin(Wr*(1-lambda)*Ts)+z^(-1)*(sin(Wr*lambda*Ts)-sin(Wr*(1-lambda)*Ts))-z^(-2)*sin(Wr*lambda*Ts))));

%% 补偿器S(Z)设计,阻尼比设为1
S1=W^2/(s^2+2*W*s+W^2);
Sz=c2d(S1,Ts,'tustin')
figure(10);
bode(Sz);
%%  Z^m补偿环节,通过比较,得m=5时效果最好
% % for i=3:-1:1s
% % figure(2);
% % m=2+i;
% % bode(GDP_z*Sz*z^m,opts,Freq);
% % hold on
% % end
% figure(3)
% bode(GDP_z*Sz*z^3)
%% 比较不同的kr补偿效果
figure(1) 
bode(GDP_z*Sz*z^5*0.8);
hold on
%% 超前补偿环节z^(m)分数阶设计,效果一般不明显,没有采用。
% zcc=(1-0.5)+0.5*z^(-1);
% zcc1=(1-0.5)+0.5*z;
% figure(10)
% bode(Sz*GDP_z,z^(-4),z^(-5),z^(-5)*zcc)
% figure(11)
% bode(1.2*z^5*zcc1*Sz*GDP_z,opts,Freq);
% hold on 
% bode(1.2*z^5*Sz*GDP_z,opts,Freq);
% figure(12)
% bode(1.2*z^5*Sz*GDP_z*rcz);
% hold on
% bode(1.2*z^5*zcc1*Sz*GDP_z*rcz);


%% 
figure(14)
nyquist(QZ-QZ*0.8*z^5*Sz*GDP_z);%判断系统是否处于稳定状态
hold on
%% PIMR
figure(15)
pzmap(1+0.8*GDP_z);
%% 三种内模和补偿器效果
RCZ=0.8*z^5*Sz*rcz0;%采用六倍频内模和分数阶的六倍频重复控制器
%%
RCZ_num = cell2mat(RCZ.num);
RCZ_den = cell2mat(RCZ.den);


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

学习不好的电气仔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值