码迷,mamicode.com
首页 > 其他好文 > 详细

直流电机调速作业

时间:2016-06-15 19:16:58      阅读:254      评论:0      收藏:0      [点我收藏+]

标签:

直流电机调速

?

对于给定的模型,只需修改Controller部分就可以达到仿真目的,之前的代码只有比例环节,没有积分和微分环节,因此需要增加这两个环节,这里设定Kp=8Ki=1Kd=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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!