此示例示出了如何调整一个高性能的数字控制器的带宽接近采样频率。
我们使用的Si万博1manbetxmulink在功率级电压控制器用于电子设备型号:
open_system('rct_powerstage')
功率级放大器被建模为一个二阶线性与下列频率响应系统:
博德(psmodel)格
控制器必须调节电压Vchip
传送到设备来跟踪设定值VCMD
并且是不敏感的负载电流的变化I负荷
。控制结构由一个反馈补偿器和干扰前馈补偿的。电压VIN
进入放大器被限制为。控制器取样率为10兆赫(采样时间Tm值
是1E-7秒)。
这个应用程序是一个挑战,因为控制器带宽必须接近Nyquist频率PI / TM
= 31.4兆赫。为了避免离散的连续时间控制器时走样的烦恼,优选直接调谐控制器以离散的时间。
功率级应于所希望的电压的设定点变化作出响应VCMD
在与50%的峰值误差(在频率上)约5个采样周期。使用跟踪需求捕捉到了这个目标。
REQ1 = TuningGoal.Tracking('VCMD','Vchip',5 *的Tm,0,1.5);Req1.Name =“给定值变化”;viewGoal(REQ1)
功率级也应尽快抑制负载扰动I负荷
。快速从收益而言,这要求I负荷
至Vchip
。这个收入应该是在低频良好抗干扰低。
S = TF('S');NF = PI / TM;%奈奎斯特频率REQ2 = TuningGoal.Gain(“I负荷”,'Vchip',1.5E-3 * S)/(NF);Req2.Focus = [NF / 1E4,NF];Req2.Name =“负载扰动”;
高性能的需求可能会导致较高的控制努力和饱和度。对于倾斜曲线VCMD
在Simulink模型(从0到1的万博1manbetx约250个采样周期)指定的,我们希望避免碰到饱和约束。使用限速滤波器建模的斜坡命令,要求该增益从速率限制器输入小于。
RateLimiter = 1 /(250 * TM * S);%车型斜坡在Simulink命令万博1manbetx%| RateLimiter *(Vcmd-> VIN)|<的VmaxREQ3 = TuningGoal.Gain('VCMD',“输入电压”,的Vmax / RateLimiter);Req3.Focus = [NF / 1000,NF];Req3.Name ='饱和';
以确保足够的耐用性,需要在工厂输入至少7 dB增益裕度和45度的相位裕度。
REQ4 = TuningGoal.Margins(“输入电压”,7,45);Req4.Name =“页边距”;
最后,反馈补偿器通过切出来取消植物共振的趋势。这样的植物可反转导致差的结果时,谐振频率不完全已知的或受变化。为了防止这种情况,施加一个最小的闭环阻尼0.5积极阻尼植物的谐振模式的。
REQ5 = TuningGoal.Poles(0,0.5,3 * NF);Req5.Name =“阻尼”;
接下来使用systune
调谐上面定义的控制器参数受到要求。第一次使用slTuner
界面来配置调谐Simulink模型。万博1manbetx具体地,指定有两个可调块和该模型应该被线性化,并在采样时间调谐Tm值
。
TunedBlocks = {“补偿”,'冷杉'};ST0 = slTuner('rct_powerstage',TunedBlocks);ST0.Ts =的Tm;感兴趣%注册点开环和闭环分析addPoint(ST0,{'VCMD',“I负荷”,'Vchip',“输入电压”});
我们要使用的FIR滤波器的前馈补偿。要做到这一点,创建一个一阶FIR滤波器的参数,并将其分配给在Simulink的“前馈FIR”块。万博1manbetx
FIR = tunableTF('冷杉',1,1-,TM);%修复分母到z ^ NFIR.Denominator.Value = [1 0];FIR.Denominator.Free = FALSE;setBlockParam(ST0,'冷杉',冷杉);
注意slTuner
自动参数化反馈补偿器作为第三阶状态空间模型(在Simulink块中指定的顺序)。万博1manbetx下一步调整前馈和反馈与补偿systune
。对待阻尼和保证金要求为硬约束,并尝试以最好地满足剩余的需求。
RNG(0)= TOPT systuneOptions('RandomStart',6);ST = systune(ST0,[REQ1 REQ2 REQ3],[REQ4 REQ5],TOPT);
决赛:软= 1.29,硬= 0.86093,迭代次数= 376决赛:软= 1.29,硬= 0.99995,迭代次数= 384决赛:软= 1.29,硬= 0.99039,迭代次数= 451决赛:软= 1.3,硬盘= 0.93106,迭代= 335最终:软= 1.28,硬= 0.99922,迭代= 422最终:软= 1.29,硬= 0.85572,迭代= 358最终:软= 1.29,硬= 0.99184,迭代= 464
最好的设计满足硬约束(硬
小于1)和近满足其它约束(柔软的
接近1)。通过绘制每个需求的调整响应验证此图形。
数字('位置'[10,10,1071,714])viewGoal([REQ1 REQ2 REQ3 REQ4 REQ5],ST)
首先使用验证设计线性域中slTuner
接口。绘制闭环响应于步骤命令VCMD
和一个阶跃扰动I负荷
。
数字('位置',[100100560500])副区(2,1,1)步骤(getIOTransfer(ST,'VCMD','Vchip'),20 * Tm)的标题(“在电压响应于步骤命令”)副区(2,1,2)步骤(getIOTransfer(ST,“I负荷”,'Vchip'),20 * Tm)的标题(“在负载电流阶跃扰动的抑制”)
用getLoopTransfer
计算在工厂输入的开环反应,叠加的工厂和反馈补偿响应。
CLF L = getLoopTransfer(ST,“输入电压”,-1);C = getBlockValue(ST,“补偿”);bodeplot(L,psmodel(2),C(2),{1E-3 / TM PI / TM})网格图例(“开环响应”,'厂',“补偿”)
该控制器实现所需的带宽和响应的速度不够快。应用调谐参数值Simulink模型和模拟调谐响应。万博1manbetx
writeBlockValue(ST)
从非线性模拟的结果显示如下。注意,控制信号VIN
大约保持内饱和界定用于模拟的设定点跟踪部。
图1:响应斜坡命令和步骤负载扰动。
图2:输入电压振幅VIN
在设定值跟踪阶段。
TuningGoal.Gain
|TuningGoal.Margins
|TuningGoal.Tracking
|slTuner
|systune(slTuner)