此示例显示如何调整高性能数字控制器,带宽接近采样频率。
我们使用Sim金宝appulink为电子设备的电源级模拟电压控制器:
开放式系统(“rct_功率级”)
功率级放大器被建模为具有以下频率响应的二阶线性系统:
BODE(PSMODEL)网格
控制器必须调节电压Vchip
传送到设备以跟踪设定值速度波形
并且对负载电流的变化不敏感Iload.
. 控制结构由反馈补偿器和扰动前馈补偿器组成。电压Vin
进入放大器仅限于。控制器采样率为10 MHz(采样时间Tm值
是1E-7秒)。
此应用程序具有具有挑战性,因为控制器带宽必须接近奈奎斯特频率PI / TM.
=31.4兆赫。为避免离散连续时间控制器时出现混叠问题,最好在离散时间内直接调整控制器。
功率级应响应所需电压的设定值变化速度波形
在大约5个采样周期中,峰值误差(跨越频率)为50%。使用跟踪要求来捕获此目标。
req1 = tuninggoal.tracking('vcmd'那'vchip',5 * tm,0,1.5);req1.name =“设定点更改”;ViewGoal(req1)
功率级还应快速抑制负载干扰Iload.
。在收益方面表达这一要求Iload.
到Vchip
。对于良好的干扰抑制,这种增益应低于低频。
s = tf('); nf=pi/Tm;%奈奎斯特频率Req2=调谐目标。增益(“伊洛德”那'vchip',1.5e-3*s/nf);需求2.焦点=[nf/1e4,nf];要求2.名称=“负载扰动”;
高性能要求可能导致高控制努力和饱和。对于坡道纵断面vcmd
在Simulink模型中指定(在大金宝app约250个采样周期内从0到1),我们希望避免达到饱和约束. 使用速率限制滤波器对斜坡命令进行建模,并要求从速率限制器输入的增益少于。
Ratelimiter = 1 /(250 * Tm * s);%Simulink中的模型渐变命令金宝app%|速率限制器*(Vcmd->Vin)|Req3=调整目标。增益('vcmd'那'vin',vmax / Ratelimiter);req3.focus = [nf / 1000,nf];req3.name ='饱和';
为确保足够的稳健性,在设备输入端要求至少7 dB增益裕度和45度相位裕度。
req4 = tuninggoal.margins('vin',7,45);req4.name =“利润”;
最后,反馈补偿器具有通过术语取消植物共振的倾向。当谐振频率不完全已知或受到变化时,这种植物反转可能导致差的结果。为了防止这种情况,施加最小闭环阻尼0.5以主动潮湿植物的共振模式。
Req5=调谐目标极(0,0.5,3*nf);要求5.名称=“阻尼”;
下一次使用Systune.
根据上述要求调整控制器参数。首先使用SLTUNER.
接口配置Simulink模型进行调谐。金宝app特别地,指定有两个可调谐块,并且该模型应该在采样时间线性化和调谐Tm值
。
TunedBlocks={“补偿者”那'冷杉'}; ST0=单反调谐器(“rct_功率级”,tunedblocks);st0.ts = tm;%注册开环和闭环分析的关注点addpoint(st0,{'vcmd'那“伊洛德”那'vchip'那'vin'});
我们希望使用FIR滤波器作为馈电补偿器。为此,请创建一阶FIR筛选器的参数化,并将其分配给Simulink中的“馈送FIR”块。金宝app
fir = tunabletf('冷杉',1,1,Tm);%将分母固定到z^nfir.denominator.value = [1 0];fir.denominator.free = false;SetBlockParam(ST0,'冷杉',杉木);
注意SLTUNER.
将反馈补偿器自动参数化为三阶状态空间模型(Simulink块中指定的阶数)。下一步,调整前馈和反馈补偿器金宝appSystune.
. 将阻尼和裕度要求视为硬约束,并尽量满足其余要求。
RNG(0)TOPT = SYSTUNEOPTIONS('OrmyStart'6);ST = SYTUNE(ST0,[REQ1 REQ2 REQ3],[REQ4 REQ5],TOPT);
Final:Soft = 1.29,硬= 0.857,迭代= 290最终:Soft = 1.28,硬= 0.97984,迭代= 425 Final:Soft = 1.29,硬= 0.99799,迭代= 382 Final:Soft = 1.29,硬= 0.87586,迭代= 346 Final:Soft = 1.29,硬= 0.90107,迭代= 422 Final:Soft = 1.28,硬= 0.99574,迭代= 473 Final:Soft = 1.28,硬= 0.99417,迭代= 369
最佳设计满足硬约束(硬的
小于1),并且几乎满足其他约束(柔软的
接近1)。通过绘制每个需求的优化响应,以图形方式验证这一点。
身材(“位置”,[10,10,1071,714])ViewGoAL([req1 req2 req3 req4 req5],st)
首先使用使用的线性域中的设计SLTUNER.
接口。绘制对step命令的闭环响应速度波形
一步一个脚印Iload.
。
身材(“位置”,[100,100,560,500])子图(2,1,1)步(getiotransfer(st,'vcmd'那'vchip'),20*Tm)标题('响应步进指令'电压')子批次(2,1,2)步骤(getIOTransfer(ST,“伊洛德”那'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)
非线性模拟结果如下。注意控制信号Vin
大约在模拟设定点跟踪部分的饱和界限。
图1:对斜坡指令和阶跃负载干扰的响应。
图2:输入电压的振幅Vin
在设定值跟踪阶段期间。
TuningGoal.gain.
|TuningGoal.Margins.
|TuningGoal.Tracking.
|SLTUNER.
(金宝appSimulink Control Design)|Systune(SLTuner)
(金宝appSimulink Control Design)