针对之前给出的直流电机调速基本模型,重写调速控制器。设定合适的参数,实现更好的控制性能。
要求:(1)稳态速度误差尽可能小
(2)电机速度输出的动态特性好
(3)电机加减速过程中,电流平稳变化无明显振荡
使用PID控制算法来优化控制结果,Cotroller算法重写如下:
block Controller
InPort command(n=1);
InPort feedback(n=1);
OutPort outPort(n=1);
Real error;
Real errori;
Real errord;
Real pout;
parameter Real Kp=9.9;
parameter Real Ki=3;
parameter Real Kd=70;
parameter Real Max_Output_Pos = 10;
parameter Real Max_Output_Neg = -10;
algorithm
error := command.signal[1] - feedback.signal[1];
errori:=errori+error;
errord:=error-pre(error);
pout := Kp * error+Ki*errori+Kd*errord;
if pout > Max_Output_Pos then
outPort.signal[1] := Max_Output_Pos;
elseif pout < Max_Output_Neg then
outPort.signal[1] := Max_Output_Neg;
else
outPort.signal[1] := pout;
end if;
end Controller;
采用PID调节的一般调节方式。先调节Kp的数值得到较小的上升时间:再调整Kd的数值来减小超调量的值:最后调节Ki的值消除稳态误差。Kp增大超调量增大,Kd增大电流振荡增大,三者的参数要进行协调。整体调节后得到比较理想的控制结果。
我的调试结果为:Kp=9.9;Ki=3;Kd=70。仿真过程的上升时间tr为0.020s左右,超调量25.8%,稳态值59.4907。
图形如下:
因为计算步长取得较大,计算结果不是很准确,所以图中有较大波动。
前3秒的图像如下:
基本符合要求。