此示例演示如何调整带宽接近采样频率的高性能数字控制器。
我们使用Sim金宝appulink对电子设备功率级的电压控制器进行建模:
open_system (“rct_powerstage”)
将功率级放大器建模为二阶线性系统,其频率响应如下:
波德(psmodel)网格
控制器必须调节电压Vchip
发送到设备以跟踪设定点速度波形
对负载电流的变化不敏感伊洛德
.控制结构由反馈补偿器和扰动前馈补偿器组成。的电压文
进入放大器仅限于.控制器采样率为10 MHz(采样时间商标
为1e-7秒)。
此应用程序具有挑战性,因为控制器带宽必须接近奈奎斯特频率pi/Tm
= 31.4 MHz。为了避免离散化连续时间控制器时的混叠问题,最好在离散时间内直接对控制器进行整定。
功率级应响应所需电压的设定点变化速度波形
在大约5个采样周期内,峰值误差(跨频率)为50%。使用跟踪要求捕获此目标。
Req1=调整目标。跟踪(“Vcmd”,“Vchip”,5*Tm,0,1.5);要求1.名称=“定位点变化”;查看目标(要求1)
功率级还应迅速排除负载扰动伊洛德
.以从中获得的收益表示此要求伊洛德
到Vchip
.该增益在低频时应较低,以实现良好的干扰抑制。
s=tf('s')nf=pi/Tm;%奈奎斯特频率Req2 = TuningGoal。获得(“iLoad”,“Vchip”1.5 e - 3 * s / nf);Req2。焦点= [nf/1e4, nf];Req2。Name =负载扰动的;
高性能要求可能导致高控制努力和饱和。斜坡剖面vcmd
在Simulink模型中指定(在大金宝app约250个采样周期内从0到1),我们希望避免达到饱和约束.使用速率限制滤波器来模拟斜坡命令,并要求增益从速率限制器输入到小于.
速率限制器=1/(250*Tm*s);在Simulink中%模型斜坡命令金宝app% |RateLimiter * (Vcmd->Vin)| < VmaxReq3 = TuningGoal。获得(“Vcmd”,“Vin”,Vmax/RateLimitor);请求3.焦点=[nf/1000,nf];请求3.名称=“饱和”;
为了确保足够的稳健性,在工厂输入处需要至少7db增益裕度和45度相位裕度。
Req4=调整目标。边距(“Vin”,7,45); 要求4.名称=“利润”;
最后,反馈补偿器倾向于通过开槽来取消设备共振。当共振频率不确切已知或发生变化时,此类设备反转可能会导致不良结果。为防止这种情况,施加0.5的最小闭环阻尼,以主动阻尼设备的共振模式。
Req5 = TuningGoal.Poles(0、0.5、3 * nf);Req5。Name =“阻尼”;
下次使用系统
根据上面定义的要求调整控制器参数。第一次使用单反调谐器
用于配置Simulink模型以进行调整的接口。特别是,金宝app指定有两个可调谐块,并且应在采样时对模型进行线性化和调谐商标
.
TunedBlocks = {“补偿器”,“冷杉”};ST0 = slTuner (“rct_powerstage”,TunedBlocks);ST0.Ts=Tm;%为开环和闭环分析登记感兴趣的点添加点(ST0{“Vcmd”,“iLoad”,“Vchip”,“Vin”});
我们希望使用FIR滤波器作为前馈补偿器。为此,创建一阶FIR滤波器的参数化,并将其分配给Simulink中的“前馈FIR”块。金宝app
FIR=可调TF(“冷杉”1 1、Tm);把分母固定为z^nFIR.denominor.Value=[10];FIR.denominor.Free=假;setBlockParam(ST0,“冷杉”、冷杉);
注意单反调谐器
自动将反馈补偿器参数化为三阶状态空间模型(在Simulink块中指定的顺序)。金宝app下一个调整前馈和反馈补偿系统
.将阻尼和保证金要求视为硬性约束,并尽量满足其余要求。
rng(0)topt=系统选项(“随机启动”,6);ST=系统(ST0,[Req1 Req2 Req3],[Req4 Req5],topt);
最后:软= 1.29,= 0.96513,最后迭代= 338:软= 1.3,= 0.90215,最后迭代= 452:软= 1.29,= 0.93049,最后迭代= 301:软= 1.29,= 0.96365,最后迭代= 450:软= 1.28,= 0.90666,最后迭代= 367:软= 1.28,= 0.97886,最后迭代= 384:软= 1.28,硬= 0.99783,迭代= 462
最佳设计满足硬约束(硬
小于1),且几乎满足其他约束条件(软的
通过绘制每个需求的调优响应来图形化地验证这一点。
身材(“位置”,[10,101071714])视图目标([Req1 Req2 Req3 Req4 Req5],ST)
首先使用单反调谐器
绘制对step命令的闭环响应速度波形
阶跃干扰伊洛德
.
身材(“位置”,[100100560500])子批次(2,1,1)步骤(getIOTransfer(ST,“Vcmd”,“Vchip”), 20 * Tm)标题(“对电压阶跃指令的响应”次要情节(2,1,2)步骤(getIOTransfer(圣,“iLoad”,“Vchip”), 20 * Tm)标题(“抑制负载电流中的阶跃干扰”)
使用getLoopTransfer
计算设备输入处的开环响应,并叠加设备和反馈补偿器响应。
clf L = getLoopTransfer(ST,“Vin”,-1);C=getBlockValue(ST,“补偿器”);bodeplot(L,psmodel(2),C(2),{1e-3/Tm pi/Tm})网格图例(“开环响应”,“植物”,“补偿器”)
控制器达到了预期的带宽,响应速度足够快。将调整后的参数值应用于Simulink模型,并模拟调整后的响应。金宝app
writeBlockValue(ST)
非线性模拟的结果如下所示。请注意,控制信号文
大约是在模拟设定点跟踪部分的饱和界限。
图1:对斜坡命令和阶跃负载扰动的响应。
图2:输入电压的振幅文
在设定点跟踪阶段。
系统调谐(单反调谐器)
(金宝appSimulink控制设计)|单反调谐器
(金宝appSimulink控制设计)|调整目标,跟踪
|调谐目标。增益
|调整目标。边距