主要内容

直流电动机控制器的鲁棒调谐

这个例子展示了如何对参数不完全已知的直流电动机的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]);Km = K;Kb = K;Kf = ureal(Kf的, 0.2,“比例”, 50);J = n = n“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”);AP =分析点“dLoad”);CL0 = feedback(AP*P*C,1);CL0。InputName =“SpeedRef”;CL0。OutputName =“速度”;

图1:直流电机的PID控制

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

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

第一个目标R1指定灵敏度函数所需的配置文件。在低频时,灵敏度应较低,以获得良好的抗干扰性。第二个目标R2超过10 rad/s时施加-20 dB/ 10的滚降。第三个目标R3指定闭环极点的最小衰减、最小阻尼和最大固有频率。

viewGoal (R1)

viewGoal (R2)

viewGoal (R3)

你现在可以使用systune稳健地调整PID增益,也就是说,尝试满足设计目标所有不确定直流电机参数的可能值。因为可能存在局部最小值,所以从三组不同的初始增益值中执行三次单独的调优。

opt = systemeoptions (“RandomStart”2);rng(0), [CL0, fSoft] = systune(CL0,[R1 R2 R3],opt);
标称调谐:设计1:Soft = 0.838, Hard = -Inf设计2:Soft = 0.838, Hard = -Inf设计3:Soft = 0.914, Hard = -Inf设计3:Soft = 0.914, Hard = -Inf设计2:Soft: [0.838,2.01], Hard: [-Inf,-Inf], Iterations = 40稳健调谐设计2:Soft: [0.838,2.01], Hard: [-Inf,-Inf], Iterations = 29 Soft: [0.935, 1.77], Hard: [-Inf,-Inf], Iterations = 28 Soft: [1.35,1.35], Hard: [-Inf,-Inf], Iterations = 35最终:Soft = 1.35, Hard = -Inf, Iterations = 132稳健调谐设计1:Soft: [0.838,1.96], Hard:[-Inf,-Inf], Iterations = 65 Soft: [0.875,1.78], Hard: [-Inf,-Inf], Iterations = 28 Soft: [0.935,2.77], Hard: [-Inf,-Inf], Iterations = 27 Soft: [0.914, 1.35], Hard: [-Inf,-Inf], Iterations = 35 Final: Soft: [1.01,3.38], Hard: [-Inf,-Inf], Iterations = 57 Soft: [1.01,3.38], Hard: [-Inf,-Inf], Iterations = 27 Soft: [0.948,2.32], Hard: [-Inf,-Inf], Iterations = 66 Soft: [1.32,1.41], Hard: [-Inf,-Inf], Iterations = 30 Soft: [0.875,1.78], Soft: [-Inf,-Inf], Iterations = 30 Soft:[1.35,1.35], Hard: [-Inf,-Inf], Iterations = 22 Final: Soft = 1.35, Hard = -Inf, Iterations = 202

最终值接近于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”);2、step(ussample (S,30),getNominal(S),3)“抗负载干扰”)传说(“采样的不确定性”“名义”

拒绝性能保持一致,尽管有很大的工厂差异。您还可以验证灵敏度函数是否稳稳地保持在规定的范围内。

viewGoal (R1, CL)

鲁棒调优systune是很容易的。只需在可调闭环模型中包含植物不确定性尿素的对象,软件自动尝试在整个不确定范围内实现调优目标。

相关的例子

更多关于