主要内容

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

这个例子展示了如何在参数不完全已知的情况下对直流电机的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 = ureal(“R”2,“比例”, 40);L = ureal(“L”, 0.5,“比例”, 40);K = ureal(“K”, 0.015,“范围”[0.012 - 0.019]);Km = K;Kb = K;Kf = ureal(Kf的, 0.2,“比例”, 50);J = ureal(“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 =可调谐pid (“C”“pid”);AP =分析点(“dLoad”);CL0 =反馈(AP*P*C,1);CL0。InputName =“SpeedRef”;CL0。OutputName =“速度”

图1:直流电机PID控制

有许多方法可以指定所需的性能。在这里,我们主要关注负载扰动、滚脱和闭环动力学的敏感性。

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

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

viewGoal (R1)

viewGoal (R2)

viewGoal (R3)

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

opt = systuneOptions(“RandomStart”2);rng(0), [CL,fSoft] = systune(CL0,[R1 R2 R3],opt);
标称调优:设计1:软= 0.838,硬= -Inf设计2:软= 0.838,硬= -Inf设计3:软= 0.914,硬= -Inf设计2:软:[0.838,2.01],硬:[-Inf,-Inf],迭代= 40软:[0.875,1.76],硬:[-Inf,-Inf],迭代= 29软:[0.935,2.77],硬:[-Inf,-Inf],迭代= 27软:[1.35,1.35],硬:[-Inf,-Inf],迭代= 35最终:软= 1.35,硬= -Inf,迭代= 131设计1:软:[0.838,1.99],硬:[-Inf,-Inf],迭代= 65软:[0.875,1.77],硬:[-Inf,-Inf],迭代= 29软:[0.935,2.77],硬:[-Inf,-Inf],迭代= 27软:[1.35,1.35],硬:[-Inf,-Inf],迭代= 35 Final:软=[0.914,2.38],硬:[-Inf,-Inf],迭代= 57软:[0.875,1.76],硬:[-Inf,-Inf],迭代= 80软:[0.935,2.77],硬:[-Inf,-Inf],迭代= 28软:[1.35,1.35],硬:[-Inf,-Inf],迭代= 35 Final: [-Inf,-Inf]软= 1.35,硬= -Inf,迭代= 200

最终值接近于1,因此在整个不确定性范围内几乎实现了调优目标。整定PID控制器为

showTunable (CL)
C = 1 s Kp + Ki *——+ Kd * -------- s Tf*s+1 with Kp = 33.8, Ki = 83.2, Kd = 2.34, Tf = 0.028名称:C并行形式连续时间PIDF控制器。

接下来检查PID如何拒绝30个随机选择的不确定参数值的阶跃负载扰动。

S = getSensitivity(CL,“dLoad”);clf, step(usample(S,30),getNominal(S),3)“负载干扰抑制”)传说(“采样的不确定性”“名义”

拒有较大的植物变异,其拒接性能仍保持一致。您还可以验证灵敏度函数稳健地保持在规定的范围内。

viewGoal (R1, CL)

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

相关的例子

更多关于