这个例子展示了如何调整一个高性能数字控制器的带宽接近采样频率。
我们使用Sim金宝appulink对电子器件功率级的电压控制器进行建模:
Open_System('rct_powerstage')
功率级放大器以下列频率响应为二阶线性系统建模:
波德(psmodel)网格
控制器必须调节电压vchip.
送到设备上跟踪设定值vcmd.
并且对负载电流的变化不敏感iLoad
.控制结构包括反馈补偿器和干扰前馈补偿器。电压vin.
进入放大器是受限制的.控制器采样速率为10mhz(采样时间)Tm
是1 e -秒)。
这一应用具有挑战性,因为控制器带宽必须接近奈奎斯特频率π/ Tm
= 31.4 MHz。为了避免在离散时间控制器离散时混淆麻烦,最好将控制器直接在离散时间上进行调整。
功率级应响应所需电压的设定值变化vcmd.
在大约5个采样周期内,峰值误差(跨频率)为50%。使用跟踪需求来捕获这个目标。
Req1 = TuningGoal。跟踪(“Vcmd”,“Vchip”5 * Tm, 0, 1.5);Req1。Name ='setpoint改变';viewGoal (Req1)
功率级也应该迅速拒绝负载障碍iLoad
.用从中获得的利益来表达这个要求iLoad
来vchip.
.该增益在低频时应较低,以获得良好的抗干扰性。
s =特遣部队(“年代”);nf = pi / tm;%奈奎斯特频率req2 = tuninggoal.gain('iload',“Vchip”,1.5e-3 * s / nf);Req2.focus = [NF / 1E4,NF];req2.name ='负载干扰';
高性能需求可能导致高度控制努力和饱和度。对于斜坡剖面vcmd.
在Simulink模型中指定(从0金宝app到1在大约250个采样周期中),我们希望避免击中饱和约束.使用速率限制过滤器来模拟斜坡命令,并要求从速率限制器输入到的增益少于.
RateLimiter = 1 / (250 * Tm * s);在simulink中%models ramp命令金宝app%| RATELIMITER *(VCMD-> VIN)|req3 = tuninggoal.gain(“Vcmd”,“文”, / RateLimiter);Req3。聚焦= [nf/1000, nf];Req3。Name =“饱和”;
为确保充足的稳健性,在工厂输入需要至少7 dB的增益余量和45度相距。
Req4 = TuningGoal。利润(“文”7、45);Req4。Name ='边缘';
最后,反馈补偿器有消除装置共振的倾向。当共振频率不完全已知或可能发生变化时,这种植物倒置可能导致较差的结果。为了防止这一点,施加一个最小的闭环阻尼0.5,以主动阻尼电站的谐振模式。
REQ5 = TuningGoal.poles(0,0.5,3 * NF);req5.name ='减震';
下一个使用systune
调整控制器参数,根据上面定义的要求。首先使用slTuner
接口配置Simulink模型以进行调优。金宝app特别是,指定有两个可调块,并且模型应该在采样时线性化和调优Tm
.
TunedBlocks = {“补偿”,“杉”};st0 = sltuner('rct_powerstage', TunedBlocks);ST0。Ts = Tm;%注册兴趣点,用于开放和闭环分析addPoint (ST0, {“Vcmd”,'iload',“Vchip”,“文”});
我们想用一个FIR滤波器作为前馈补偿器。为此,创建一个一阶FIR滤波器的参数化,并将其分配给Simulink中的“前馈FIR”块。金宝app
冷杉= tunableTF (“杉”,1,1,tm);%修复分母到z ^ nfirs . denomator . value = [1 0];FIR.Denominator.Free = false;setBlockParam (ST0“杉”,冷杉);
请注意,slTuner
自动将反馈补偿器参数化为三阶状态空间模型(Simulink块中指定的顺序)。金宝app下次调整馈电和反馈补偿器systune
.将阻尼和保证金要求视为硬限制,并尽量符合其余要求。
rng(0) topt = systuneOptions()“RandomStart”6);ST = stune(ST0,[Req1 Req2 Req3],[Req4 Req5],topt);
最后:软= 1.29,= 0.857,最后迭代= 290:软= 1.28,= 0.97984,最后迭代= 425:软= 1.29,= 0.99799,最后迭代= 382:软= 1.29,= 0.87586,最后迭代= 346:软= 1.29,= 0.90107,最后迭代= 422:软= 1.28,= 0.99574,最后迭代= 473:软= 1.28,硬= 0.99417,迭代= 369
最好的设计满足了硬限制(难的
小于1),几乎满足其他约束(软
接近1)。通过绘制每个要求的调谐响应来验证图形。
数字('位置',[10,10,1071,714])
首先验证设计在线性域使用slTuner
界面。将闭环响应绘制到步骤命令vcmd.
和一步干扰iLoad
.
数字('位置'[100100560500])次要情节(2,1,1)步骤(getIOTransfer(圣,“Vcmd”,“Vchip”),20 * TM)标题('对电压中的步进命令的响应')子图(2,1,2)步骤(getiotransfer(st,'iload',“Vchip”),20 * TM)标题(“负载电流阶跃扰动的抑制”)
用getLoopTransfer
计算被试输入处的开环响应,并将被试响应与反馈补偿器响应叠加。
clf l = getlooptransfer(st,“文”1);C = getBlockValue(圣“补偿”);BODEPLOT(L,PSMODEL(2),C(2),{1E-3 / TM PI / TM})网格传奇(的开环反应,'植物',“补偿”)
该控制器达到了期望的带宽,响应足够快。将调优的参数值应用于Simulink模型,并模拟调优的响应。金宝app
writeBlockValue (ST)
非线性模拟的结果如下所示。注意控制信号vin.
仍然近在内饱和度界限用于模拟的设定值跟踪部分。
图1:响应RAMP命令和步进负载干扰。
图2:输入电压的幅度vin.
在设定值跟踪阶段。
TuningGoal。获得
|TuningGoal。利润率
|TuningGoal。跟踪
|slTuner
(金宝app仿真软件控制设计)|systune (slTuner)
(金宝app仿真软件控制设计)