标签:
直流电机调速
?
对于给定的模型,只需修改Controller部分就可以达到仿真目的,之前的代码只有比例环节,没有积分和微分环节,因此需要增加这两个环节,这里设定Kp=8,Ki=1,Kd=60,最后得到的仿真波形如下图
可以看出,此时,加减速时间很短,反应迅速,超调量也不大,得到的速度曲线偏差很小。
具体代码如下:
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=8;
?
parameter Real Ki=1;
?
parameter Real Kd=60;
?
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;
?
?
?
?
标签:
原文地址:http://www.cnblogs.com/hkcjr/p/5588533.html