功率级电压的数字控制
这个例子展示了如何调优带宽接近采样频率的高性能数字控制器。
功率级电压调节
我们使用Sim金宝appulink对电子设备的功率级电压控制器进行建模:
open_system (“rct_powerstage”)
功率级放大器被建模为二阶线性系统,其频率响应如下:
波德(psmodel)网格
控制器必须调节电压Vchip
发送到设备跟踪设定值Vcmd
并且对负载电流的变化不敏感iLoad
.该控制结构由反馈补偿器和扰动前馈补偿器组成。的电压文
进入放大器是有限制的.控制器采样率为10mhz(采样时间Tm
是1e-7秒)。
性能需求
这种应用具有挑战性,因为控制器带宽必须接近奈奎斯特频率π/ Tm
= 31.4 MHz。为了避免离散连续时间控制器时的混叠问题,最好是在离散时间直接调优控制器。
功率级应响应所需电压的设定值变化Vcmd
在大约5个采样周期内,峰值误差(跨频率)为50%。使用跟踪需求来捕获这个目标。
Req1 = TuningGoal。跟踪(“Vcmd”,“Vchip”5 * Tm, 0, 1.5);Req1。Name =“定位点变化”;viewGoal (Req1)
功率级还应迅速排除负载干扰iLoad
.用收益来表达这个要求iLoad
来Vchip
.这种增益在低频时应该很低,这样才能很好地抑制干扰。
S = tf(“年代”);nf = pi/Tm;%奈奎斯特频率Req2 = TuningGoal。获得(“iLoad”,“Vchip”,1.5e-3 * s/nf);Req2。焦点= [nf/1e4, nf];Req2。Name =负载扰动的;
高性能需求可能导致高控制努力和饱和度。对于斜坡剖面vcmd
在Simulink模型中指定(在大金宝app约250个采样周期内从0到1),我们希望避免击中饱和约束.使用速率限制滤波器对ramp命令建模,并要求从速率限制器输入的增益为小于.
RateLimiter = 1/(250*Tm*s);%模拟斜坡命令在Simulink金宝app% |RateLimiter * (Vcmd->Vin)| < Vmax . %Req3 =调优目标。获得(“Vcmd”,“文”, / RateLimiter);Req3。焦点= [nf/1000, nf];Req3。Name =“饱和”;
为了确保足够的稳健性,要求在器件输入处至少有7 dB增益裕度和45度相位裕度。
Req4 =调优目标。利润(“文”7、45);Req4。Name =“利润”;
最后,反馈补偿器有一个倾向,取消植物共振缺口。这种植物反转可能导致较差的结果时,共振频率是不确切地知道或受到变化。为了防止这种情况,施加最小闭环阻尼0.5来主动阻尼装置的谐振模式。
Req5 = tuninggoal . pole (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
FIR =可调的(“杉”1 1、Tm);将分母固定为z^nfir . denomator . value = [1 0];fir . denomator . free = false;setBlockParam (ST0“杉”、冷杉);
请注意,slTuner
自动将反馈补偿器参数化为三阶状态空间模型(在Simulink块中指定的顺序)。金宝app接下来调整前馈和反馈补偿器systune
.将阻尼和裕度需求视为硬性约束,并尽量满足其余需求。
rng(0) topt = systuneOptions(“RandomStart”6);ST = systune(ST0,[Req1 Req2 Req3],[Req4 Req5],topt);
Final:软= 1.29,硬= 0.99651,迭代= 373 Final:软= 1.29,硬= 0.98195,迭代= 407 Final:软= 1.29,硬= 0.91128,迭代= 351 Final:软= 1.29,硬= 0.99834,迭代= 399 Final:软= 1.3,硬= 0.99571,迭代= 360 Final:软= 1.28,硬= 0.99752,迭代= 504 Final:软= 1.29,硬= 0.97842,迭代= 368
最佳设计满足硬约束(硬
小于1)且几乎满足其他约束(软
接近1)。通过绘制每个需求的调优响应图形来验证这一点。
图(“位置”,[10,10,1071,714]) viewGoal([Req1 Req2 Req3 Req4 Req5],ST)
验证
首先在线性域内使用slTuner
接口。绘制step命令的闭环响应Vcmd
阶跃扰动iLoad
.
图(“位置”,[100,100,560,500]) subplot(2,1,1) step(getIOTransfer(ST,“Vcmd”,“Vchip”), 20 * Tm)标题(对电压中阶跃命令的响应) subplot(2,1,2) step(getIOTransfer(ST,“iLoad”,“Vchip”), 20 * Tm)标题(负载电流的阶跃干扰抑制)
使用getLoopTransfer
计算装置输入处的开环响应,并将装置和反馈补偿器的响应叠加。
L = getLoopTransfer(ST,“文”1);C = getBlockValue(ST,“补偿”);bodeploy (L,psmodel(2),C(2),{1e-3/Tm pi/Tm})网格图例(的开环反应,“植物”,“补偿”)
控制器达到了期望的带宽,并且响应足够快。将调整后的参数值应用于Simulink模型,并模拟调整后的响应。金宝app
writeBlockValue (ST)
非线性模拟的结果如下所示。注意控制信号文
大约在模拟的设定值跟踪部分的饱和边界。
图1:对斜坡命令和台阶负载干扰的响应。
图2:输入电压幅值文
在定点跟踪阶段。
另请参阅
systune (slTuner)
(金宝appSimulink控制设计)|slTuner
(金宝appSimulink控制设计)|TuningGoal。跟踪
|TuningGoal。获得
|TuningGoal。利润率