主要内容

直流电机控制器的鲁棒整定

这个例子展示了如何鲁棒地调整一个PID控制器的直流电动机的参数不完全已知。

直流电机的建模

以“伺服控制器对直流电动机的鲁棒性”为例,推导了直流电动机的不确定模型。给出了从外加电压到角速度的传递函数

$ $ P (s) = {K_m \ / J L s ^ 2 + (J R + L K_f) s + K_m K_b + R K_f} $ $

的阻力R美元,电感L美元,电动势常数K_b美元电枢常数K_m美元,粘滞摩擦K_f美元、惯性载荷$ J $为电机的物理参数。这些参数不是完全已知的,并且会发生变化,因此我们将它们建模为具有指定范围或百分比不确定性的不确定值。

R =尿素的(“R”2,“比例”, 40);L =尿素的(“L”, 0.5,“比例”, 40);K =尿素的(“K”, 0.015,“范围”[0.012 - 0.019]);公里= K;Kb = K;Kf =尿素的(Kf的, 0.2,“比例”, 50);J =尿素的(“J”, 0.02,“比例”, 20);P = tf(Km,[J*L J*R+Kf*L Km*Kb+Kf*R]);P.InputName =“电压”;P.OutputName =“速度”

时间和频率响应函数一步波德自动采样不确定参数在其范围内。这有助于衡量不确定性的影响。例如,绘制不确定植物的阶跃响应P并注意到工厂直流增益的巨大变化。

步骤(P, getNominal (P), 3)传说(“采样的不确定性”“名义”)

鲁棒PID调优

为了稳健性地调整这个直流电机的PID控制器,创建一个可调PID块C并建立一个闭环模型CL0图1中的反馈回路。添加分析点dLoad在设备输出端测量对负载扰动的灵敏度。

C = tunablePID (“C”“pid”);美联社= AnalysisPoint (“dLoad”);CL0 =反馈(美联社* P * C, 1);CL0。InputName =“SpeedRef”;CL0。OutputName =“速度”

图1:直流电机的PID控制

有许多方法可以指定期望的性能。在这里,我们关注负载扰动、滚落和闭环动力学的灵敏度。

R1 = TuningGoal。灵敏度(“dLoad”特遣部队(1.25 [0],[1 - 2]));R2 = TuningGoal。MaxLoopGain (“dLoad”10 (1);R3 = TuningGoal。波兰人(“dLoad”, 0.1, 0.7, 25);

第一个目标R1指定灵敏度函数所需的配置文件。为了更好地抑制干扰,在低频时灵敏度应该较低。第二个目标R2施加- 20db / 10年的滚转超过10 rad/s。第三个目标R3指定闭环极点的最小衰减、最小阻尼和最大固有频率。

viewGoal (R1)

viewGoal (R2)

viewGoal (R3)

您现在可以使用systune鲁棒地调整PID增益,即尝试和满足的设计目标所有不确定直流电机参数的可能值。因为局部极小值可能存在,从三组不同的初始增益值执行三组单独的调优。

选择= systuneOptions (“RandomStart”2);rng(0), [CL,fSoft] = systune(CL0,[R1 R2 R3],opt);
名义调优:设计1:软= 0.838,硬=负设计2:软= 0.838,硬=负设计3:软= 0.914,=从健壮的调优的设计1:软:[0.838,1.98],硬:负无穷,无穷,迭代= 65软:[0.875,1.76],硬:负无穷,无穷,迭代= 29软:[0.935,2.77],硬:负无穷,无穷,迭代= 28软:[1.35,1.35],困难:[-Inf,-Inf], Iterations = 35 Final: [1.35,1.35], Hard: [-Inf,-Inf], Iterations = 35 Final:, Hard: [-Inf,-Inf],Soft = 1.35, Hard = -Inf, Iterations = 32 Soft: [1.35, 1.37], Hard: [-Inf,-Inf], Iterations = 57 Soft: [0.875,1.77], Hard: [-Inf,-Inf], Iterations = 87 Soft: [1.02,2.98], Hard: [-Inf,-Inf],迭代= 30 Soft: [1.34,1.36], Hard: [-Inf,-Inf], Iterations = 20 Final:软= 1.35,硬= -Inf,迭代= 226

最终值接近1,因此在整个不确定范围内,调优目标几乎都达到了。调谐PID控制器为

showTunable (CL)
C = 1 s Kp + Ki *——+ Kd * -------- s Tf*s+1, Kp = 33.8, Ki = 83.2, Kd = 2.34, Tf = 0.028

接下来,检查这个PID是如何排除30个随机选择的不确定参数值的步进负载扰动的。

S = getSensitivity (CL,“dLoad”);clf步骤(usample(年代,30),getNominal (S), 3)标题(负载扰动抑制的)传说(“采样的不确定性”“名义”)

拒工厂有很大的变化,但废液性能保持一致。您还可以验证灵敏度函数稳健性地保持在规定的范围内。

viewGoal (R1, CL)

健壮的优化与systune是很容易的。只需将植物的不确定性包括在可调谐闭环模型使用尿素的对象,软件会自动尝试实现整个不确定范围的调优目标。

相关的例子

更多关于