机电传动——控制直流电机调速

这次的直流调速采用PID的思路来写控制函数Controller,利用输出的瞬间值与预期值之间的偏差作为控制因子,反馈到PID控制器中,从而进一步控制下一个瞬间的输入值,从而使各项参数准确的到达指定值,并且没有超调和波动

首先直流电机基本的参数模型定义如下

model    PWMVoltageSource
  extends TwoPin;
  InPort Command(n=1);
  parameter Time T = 0.003;
  parameter Voltage Vin = 200;

equation

    T*der(v)+ v = Vin*Command.signal[1]/10;      

end PWMVoltageSource; 

model DCMotor                 "DC Motor"
  extends TwoPin;
  extends Rigid;
  OutPort SensorVelocity(n=1);
  OutPort SensorCurrent(n=1);
  parameter MomentOfInertia J"Total Inertia";
  parameter Resistance R"Armature Resistance";
  parameter Inductance L"Armature Inductance";
  parameter Real Kt"Torque Constant";
  parameter Real Ke"EMF Constant";

  AngularVelocity    w          "Angular velocity of motor";
  AngularAcceleration a          "Absolute angular acceleration of motor";
  Torque tau_motor;
  RotFlange_b    rotFlange_b;    

equation

  w = der(rotFlange_b.phi);
  a = der(w);
  v = R*i+Ke*w+L*der(i);
  tau_motor =  Kt*i;
  J*a = tau_motor + rotFlange_b.tau;
  SensorVelocity.signal[1] = w;
  SensorCurrent.signal[1] = i;
end DCMotor;

block  CommandSignalGenerator  

  OutPort outPort(n=1);
  Real acc;

equation

   if time <= 1 then
     acc =60;
   elseif time <3 then
     acc = 0;
   elseif time <4 then
     acc = -60;
   else
     acc = 0;
   end if;     

   der(outPort.signal[1]) = acc; 

end CommandSignalGenerator;

 model  DCMotorControlSystem

  Ground       ground1;
  Inertia      inertia1(J = 3, w(fixed = true));
  DCMotor      motor1(J = 1,R = 0.6,L = 0.01,Kt=1.8, Ke= 1.8,rotFlange_b(phi(fixed = true)));
  CommandSignalGenerator  sg1;
  Controller   con1;
  PWMVoltageSource PowerSource1;
equation
  connect(sg1.outPort, con1.command);
  connect(con1.feedback, motor1.SensorVelocity);
  connect(con1.outPort, PowerSource1.Command);
  connect(PowerSource1.p, motor1.p);
  connect(motor1.rotFlange_b, inertia1.rotFlange_a);
  connect(PowerSource1.n, ground1.p);
  connect(ground1.p, motor1.n);
end DCMotorControlSystem;

其次是写PID控制器模型,其代码如下

block   Controller  

  InPort command(n=1);
  InPort feedback(n=1);
  OutPort outPort(n=1);

  Real error;
  Real pout;
  Real poutIntegral;
  parameter Real Kp=2.1;
  parameter Real Ti=1.5;
  parameter Real Td=0.34;
  parameter Real Max_Output_Pos = 10;
  parameter Real Max_Output_Neg = -10;

equation
  error=command.signal[1]-feedback.signal[1];
  der(poutIntegral)=error/Ti;

algorithm

   pout := Kp * (error+Td*der(error)+poutIntegral);

   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;

编译电机模型,时间选为5s

simulate( DCMotorControlSystem, stopTime=5 )

绘制电机的电流和转速参数图

plot({motor1.i,motor1.w})

其图形如下

由图看来,这个PID控制器对直流电机的调速效果良好,速度能准确的变化且没有波动和超调,但电流仍然存在超调,这个可以通过反复尝试不同的微分和积分项比例参数来减小或消除超调,使曲线更平滑。

时间: 2024-12-24 04:11:05

机电传动——控制直流电机调速的相关文章

机电传动控制——直流电机调速仿真作业

本次调速仿真采用PID调节.首先要确定PID中的各项设计参数,仿真过程中采用临界比例度法确定了大概的Kp值.在若干次调整的过程中,发现加入微分环节后调整时间略有上升,故采用PI调节.调整参数确定为Kp=75,Ki=22.控制器部分的程序如下图所示.原理图如下 ASR和ACR调节器均使用PI控制器,控制程序如下 电机电流和速度曲线如下图所示 从图中可以看出:电流迅速上升至最大值后不变,然后电机开始匀加速,电流波形明显的改善.电机速度稳定,稳态偏差基本为零.Kp值越大,电流越快上升至最大值,ki值对

机电传动控制——直流电机调速仿真实验

1.直流电机模型 ? 2.PID调节参数的作用: 1.比例系数Kp的作用是加快系统的响应速度,提高系统的调节精度.? 2.积分作用系数Ki的作用是消除系统的稳态误差. 3.微分系数Kd的作用是改善系统的动态特性. ? ? 3. 控制函数controller的编写 调试KP,TI,TD的值 Kp=2.5 ti=1.2 td=0.31 4.仿真结果 上升时间 tp=0.0282 无超调

机电传动控制直流电机调速

使用PID控制器,在Cotroller的算法中,使用errori表示误差积分,errord表示误差微分,计算方式为 error := command.signal[1] - feedback.signal[1]; errori:=errori+error; errord:=error-pre(error); pout := Kp * error+Ki*errori+Kd*errord; 调试的步骤为:先调整Kp,将上升时间调到比较低的数值,但是增大Kp使上升时间的同时,超调量会Mp增大,所以下一

机电传动控制直流调速作业

一.仿真测试: 本次作业对直流调速控制器进行设计,预期采用PID控制,控制器设计如下: 其仿真结果如下: 二.对控制器和结果做以下解释: 1.控制器期初限定的10V输出限定对控制结果影响较大,使积分环节对振动的稳定作用变差: 2.微分环节引入反而使电流曲线更为尖锐,过渡曲线不平滑,因此放弃微分环节: 3.结果显示响应较快,但不够平滑,速度曲线变化不大,超调量很小.

《机电传动控制》——直流电机调速仿真作业

通过将原有直流电机调速例子运行之后 可以看到电流的稳定性不好,到达稳定的时间较长,超调量较大,稳态误差不够小,震荡明显. 原有的Controller只有比例控制,很粗糙,当增益较低时,稳态误差较大,当增益变大时,会引起电机电流和加速度的振荡. 经过考虑决定用PID调节,三个调节参数为比例调节Kp,积分调节Ki,微分调节Kd Kp增大会减小电流值达到稳定的时间,但会增大超调量,降低系统稳定性: Ki消除稳态误差,但会降低系统稳定性,减慢动态响应: Kd能减小超调量,减小调节时间: 最终选择参数为K

机电传动控制个人课程报告

                                                                                                                    机械臂的机电传动控制研究 摘要 机械臂是机器人中的重要组成部分,作为执行机构,有着操作灵活.控制方便.不易受环境因素影响的特点,使得它在工业机器人.家用机器人中有很好的前景,能够极大的提高生产效率,带来良好的社会效益.然而,现如今在机械臂研究领域,人们发现:机械臂的难

《机电传动控制》学习笔记04-1

<机电传动控制>学习笔记04-1 胡恒谦 机卓1301 一.设计要求 结合本周学习的交流电机原理及启动.调速.制动特性,用Modelica设计和仿真一个用三相交流异步电机带动起重机起升机构运行.具体要求如下: 1)实现如下机械运动周期: 控制电机带重物上升,从静止加速到800r/min 保持800r/min匀速运动0.5s, 减速到静止,保持静止状态0.5s, 带重物下降,从静止达到600r/min 保持600r/min匀速运动0.6s, 减速到静止. (为了便于仿真,匀速和静止持续时间较短)

机电传动控制第四周仿真作业

机电传动控制第四周仿真作业 题目要求: 结合本周学习的交流电机原理及启动.调速.制动特性,用Modelica设计和仿真一个用三相交流异步电机带动起重机起升机构运行.具体要求如下: 1)实现如下机械运动周期: 控制电机带重物上升,从静止加速到800r/min 保持800r/min匀速运动0.5s, 减速到静止,保持静止状态0.5s, 带重物下降,从静止达到600r/min 保持600r/min匀速运动0.6s, 减速到静止. (为了便于仿真,匀速和静止持续时间较短) 2) 升降机构和重物折算到到电

《机电传动控制》学习笔记

从<机电传动控制>的课本中,我们很容易找到机电传动控制这一概念的定义,即代表驱动生产机械的电动机和控制电动机的一整套电气系统.这门技术的目的是将电能转化为机械能,实现生产机械的启动.停止以及速度调节,满足各种生产工艺过程的要求,保证生产过程的正常进行.但实现这一目的的方法有很多种,随着信息技术的飞速发展,生产过程中的越来越多的工艺都可以通过电脑进行程序化的加工,实现生产机械设备.生产线.车间甚至整个工厂的自动化已经指日可待.技术发展越快,其中交融在一起的学科就越多,这就需要现代的工程师在自身学