实验七 直流电机转速和PID控制

目录

实验七 直流电机转速和PID控制 2

一、实验目标 2

二、硬件介绍 2

2.1槽型光耦测量原理 2

2.2 PWM电机驱动 3

三、实验步骤 4

3.1 硬件电路连接 4

3.2 PWM & 示波器设置 6

3.3 设定PID参数, 6

3.4 界面介绍 6

3.5 运行 8

3.6 PID控制方式 8

3.7 PID参数调节 9

四、LabVIEW程序解读 10

4.1 整体框图 10

4.2 程序流程图 12

4.3初始化设置 12

4.4 While循环 13

4.5转速测量 14

4.6 PID程序 14

实验七 直流电机转速和PID控制

一、实验目标

1.熟悉PID控制原理;

2.熟悉PWM电机调速原理;

3.调用EPI提供的子vi编写PID控制程序;

二、硬件介绍

槽型光耦霍尔电机实验板主要由PWM驱动电路(增加驱动能力,驱动电机)、直流电机、槽型光耦、霍尔组成。频率测量和槽型光耦测转速用到的电路和方法一致,本节主要时通过PID控制来实现实际转速跟踪目标转速,并改变“PID增益”观察运行效果。

2.1槽型光耦测量原理

槽型光耦是光电传感器的一种,是以光为媒体由发光体与受光体间的光路遮挡或由反射光的光亮变化为信号检测物体的位置、有无等的装置。槽型光耦具有检测距离长、响应速度快、受环境强光的影响三个特点。利用该特性并结合特殊的测量装置,槽型光耦可用于测量微型直流电机的转速。

图1 槽型光耦

光电测速码盘测速法:即在微型直流电动机转轴上安装一个圆形码盘,同时将码盘置于槽型光耦的槽中,码盘可以随电机顺畅旋转,如图2所示。微型直流电动机的转动将带动光电测速码盘旋转,利用槽型光耦装置将转速信号转换为脉冲信号,进而通过计算单位时间内脉冲信号的个数获得电动机的实际转速。

图 2码盘和装置

槽型光耦测速计算:

如果示波器测量频率为f,则转速n=f*60/6

60是转速变换到分钟,6代表每转一圈透光逢出现6次,f是示波器测量频率。

2.2 PWM电机驱动

直流电机选择PWM驱动控制,可以实现快速速度变换,输入PWM选择EPI设备的PWM1,PWM1端口只能输出0-5V的没有驱动能力的信号,需用DRV8337驱动电路将信号变为0-11V电压,电流能够达到1.8A。

图 6电机驱动

PWM输入占空比和电机速度成反比的关系,占空比越高,速度越慢。

PWM输入占空比(5V) 电机速度
0% 最快
100% 停止

三、实验步骤

改变PID参数,设定一个目标转速,观察实际测量出转速跟随目标转速动态变化,找出最优PID参数。

3.1 硬件电路连接

1. 首先供电,将EPI设备12V 和GND和传感器板上的12V和GND连在一起;

2. 将EPI设备的PWM1连接到槽型光耦实验板的”PWM”输入接口;

3. 槽型光耦输出连接到示波器通道AIN1(用于测量转速),测量电路连接如图7.

供电连接图

图7电路连接

下表列出传感器板和EPI设备连接关系:

传感器板需要功能 传感器板接口 EPI对应接口 EPI接口功能
Pwm输入端口 PWM PWM1 PWM通道1
槽型光耦输出 OUT AIN1 示波器AIN1
供电GND GND GND 虚拟仪器地
供电12V 12V +12V 12V电源输出

3.2 PWM & 示波器设置

输出PWM控制,设置PWM1的频率为1000Hz,输出高电平为5V,界面设置如图。使用示波器采集槽型光耦输出波形,AIN1时间轴设为20ms,采样量程设为±20v。


PWM设置 示波器设置

3.3 设定PID参数,

设定PID参数:P设定为“30”,I设定为“0.01”,D设定为“0.002”

3.4 界面介绍

1.用户转速设定旋钮,在运行过程中可以随时更改。

2.槽型光耦输出示波器测量后计算得出电机转速。

3.PWM1占空比的值(此值只用于观察pwm变化)。

4.目标转速和实际转速实时波形图。

3.5 运行

点击程序运行按钮,改变目标转速,观察实际转速和运行设定值变化。

3.6 PID控制方式

修改PID参数,观察实际运行效果。

  1. 当 用户设定“目标转速设定”发生变换,

  2. 目标转速和实际转速不相同,PID的控制程序输出“过程变量MV”发生变化,目标转速和实际转速差别越大,过程变量值越大,计算得出PWM值变换也越大;

  3. PWM变化就反应在电机转速上,转速发生变化后,示波器测量传到上位机的转速也发生变化;

  4. 目标转速和实际转速比较,再产生“过程变量MV”,继续控制PWM,就一直如此循环直到目标转速和实际转速相同。

程序运行效果如图所示:

在实现上,程序会一直采集数据计算转速。然后通过PID算法计算PWM的占空比,再下发PWM值,改变电机转速,使实际转速达到目标转速,改变目标转速值,观察电机转速变换。可以改变不同的PID参数,观察转速控制效果。

3.7 PID参数调节

修改PID参数,观察实际转速变化有无过冲,和达到稳定状态时间,最终是否稳定。给出不同PID值,测量输出状态。

PID参数设定 P
I
D
是否过冲
是否能稳定
稳定时间

四、LabVIEW程序解读

程序使用 EPI 提供的接口函数通过软件编程实现传感器控制/测量。主要使用“初始化.vi”
、“数据采集.vi” 、“采样率设置.vi” 、“采样量程设置.vi” 、“PWM.vi”等。

PID算法实现使用Labview自带的PID控件VI,该多态VI的DBL数组实例可用于多环PID控制应用。

程序采用事件结构,事件处理结构中,“超时”中一直进行数据采集,采集可以通过示波器来采集,当前面板设置值改变时,事件处理结构处理完事件后再回到“超时”中进行数据采集。

4.1 整体框图

图5
展示了本实例的运行界面和程序框图,程序中计算频率使用了FFT的方式,使用了PID控制算法。“目标转速设定(RPM)”,实际转速会朝着目标转速调整,调整的参数可以通过“PID增益”来控制。

图5 运行界面

图6 整体程序框图

4.2 程序流程图

程序流程图如图7所示,先进行初始化,然后一直在while循环中采集数据,将采集到的数据计算得到当前频率,然后再通过PID算法,计算得出方波的占空比,从新下发PWM1值,在程序运行中。

图7 实例流程图

4.3初始化设置

程序初始化设置状态,该状态完成EPI
通信端口设置、电源开启、示波器通道设置(采样率,采样量程)。初始化函数在前面已经介绍,这里不在介绍,初始化代码如图8
所示:

图8 初始化

4.4 While循环

While循环中放置事件结构,设置“超时”事件为100ms,相当于每隔100ms空闲事件处理一次“超时”结构里面的程序。在该状态下主要进行:示波器数据采集和FFT测频率和计算转速;PID控制算法计算得出占空比值;下发新PWM1的值。该状态代码如图9所示:

程序中有频率测量是使用FFT测频方式,输出是”FFT测频”,一帧数据中,周期越多,频率越精确,所以在示波器时间轴设置上,可以设置为“50ms”。

图 9 while中超时程序

  1. 数据采集.vi:该VI用于读取EPI采集到的四个通道的数据。

(2)FFT.vi:该VI用于计算频率。

4.5转速测量

测的频率转除以一圈对应6个脉冲,再乘以60,得到每分钟转速。

图 10 转速变换

4.6 PID程序

PID算法这部分调用labview自带程序实现,通过控制前面板的PID参数,输出PID调节值,再将值转换成PWM占空比变化并设置PWM1的占空比,从而达到PID控制。

图11 PID算法

PID控件描述如图12:

图 12 PID控件

将PID输出的操作变量转换成PWM的占空比变换,如图13所示。

图 13 PWM1设置

在实现上,程序会一直采集数据计算转速。当改变目标转速时,程序会根据PID参数和当前实际转速,计算出PWM占空比变化值,再将新的PWM占空比发送。观察电机转速变换。

实验过程和测量方式用户可根据自身需求进行修改。