APP下载

一种基于施密特触发器原理的直流电机位置控制及消抖算法

2021-01-15

微电机 2020年12期
关键词:施密特触发器直流电机

黄 峰

(台州技师学院(筹),浙江 台州 318000)

0 引 言

有刷直流电机由于转速高、结构及控制简单、成本低廉等优点,在家用、工业甚至航天等领域都得到了广泛应用。有刷直流电机应用中除了速度控制,在很多场景中也需要位置控制,例如机器人、阀门的转动角度控制、数控设备、雷达或火炮的随动系统等[1]。这些系统一般要求直流电机具有响应速度快、执行效率高、位置调节精确等特性。

由于直流电机内部参数时变、非线性的特点,使得直流电机位置伺服控制系统设计较为复杂。经典的直流电机伺服控制策略有反馈线性化、自适应鲁棒和滑模变等控制算法。反馈线性法在实际中常遇到数学模型难以建立的困难,自适应鲁棒法容易受强干扰影响导致系统跟踪性能变差,滑模变控制算法可能存在抖动现象[2-3]。基于上述因素,本文提出一种基于施密特触发原理的直流有刷电机位置控制及消抖算法,该方法已在实际产品中得以运用。据观测,本算法具有响应速度快、位置控制精度高、硬件要求低等优点。

1 控制系统硬件电路

1.1 硬件选型

本控制系统采用旋转角度传感器、微控制器、等硬件,其型号及元件参数如表1所示。

表1 有刷直流电机控制系统硬件主要清单

1.2 系统硬件框架图

经产品内部设计,直流有刷电机通过旋转轴带动产品内部齿轮箱,以促使电动阀门进行开关动作。旋转角度传感器(电位器)与齿轮箱输出轴连接,因此旋转角度传感器的输出电压代表了电动阀门的位置。微控制器高速采集该电压并换算成真实位置,同时根据系统的输入量得到目标位置,再通过内部算法处理输出对应的PWM至电机驱动芯片以促使有刷直流电机工作,系统的工作原理框架见图1。

图1 有刷直流电机位置控制系统硬件框架图

2 有刷直流电机位置控制算法

2.1 有刷直流电机位置控制抖动的危害

有刷直流电机在位置控制中最常见的问题就是抖动,当检测到目标位置和实际位置存在差异时,必须控制电机往目标位置进行偏转。但由于位置采样误差(如采用编码器该项误差可避免)、电机控制误差(尤其是电机转动惯量导致的误差)等因素,往往不能一次性将电机位置带动到目标位置。有刷直流电机位置控制如果存在抖动,不仅影响产品的使用体验,也会造成过度使用内部的碳刷导致电机使用寿命锐减,其启停冲击电流对电路电源可靠性也会造成威胁。

2.2 施密特触发器工作原理

施密特触发器(Schmitt trigger)是一种电压比较器电路。正向阈值和负向阈值不相等,当输入电压高于正向阈值电压,输出为低;当输入电压低于负向阈值电压,输出为高。当输入在正负向阈值电压之间,输出不改变[4]。基于施密特触发器原理的有刷直流电机位置控制算法不存在如PID算法的积分误差问题。

图2 施密特触发器输入和输出迟滞现象工作原理图

2.3 算法工作流程

记电机真实位置为X,电机目标位置为Y,计算得到位置误差为S,设系统允许误差绝对值为W。本系统的控制算法为

(1)当S的绝对值与W相差较大时,根据目标方向系统输出满额度PWM控制电机进行转动。

(2)当S的绝对值与W相差小于临界值(可据系统行程及转动惯量等特性设定)后,根据目标方向系统减小PWM输出控制电机进行转动,以减小电机的转动惯量。

(3)当电机继续转动,一直到S的绝对值小于等于W时,系统关闭PWM输出,保持电机处于静止状态。

(4)理想情况下,电机转动到系统认为的目标位置后,保持停止就可以了。但由于位置采样误差(模拟传感器不可避免),难免会造成检测位置与目标位置超出偏差,从而造成电机转动和抖动。为消除这种抖动,在上述算法基础上增加基于施密特触发原理的消抖算法,并设定触发界限。当电机首次停止后,记录电机的检测位置为R,若后续检测的电机位置与R的误差小于触发界限时,可认为是系统存在的干扰,可不予理会;当后续检测的电机位置与R的误差大于触发界限时,认为首次停止的并非误差允许范围内的目标位置,需要进一步进行调整。经过实测,该算法在执行中运算效率高,硬件要求低,系统响应和位置控制精度都较高。

该算法的流程图如图3所示。

图3 有刷直流电机位置控制系统算法流程图

2.4 参考核心程序(C语言版)

u8 SchmitFilter(u16 RealPos,u16 AimPos){

int PosMinus=0,SchmitPosMinus=0;

PosMinus=AimVoltage-RealVoltg;

if((fabs(PosMinus)<=PermissiveError)&&(StateBit==0)){

StateBit=1;

PreAimPos=RealPos;

return 1;}

SchmitPosMinus=RealPos-PreAimPos;

if(fabs(SchmitPosMinus)<=SchmitPermissiveError){

return 1;}

StateBit=0;

return 0;

}

3 算法实测及改进想法

根据产品设计需求,需完成电动阀门0至180度之间的任意转动角度位置调节。通过使用该算法,将控制信号(4~20 mA电流)完整周期内与电机转动角度之间的数据进行记录,测得电机控制的最大角度误差为1.5度,即最大线性误差为0.8%,同时测得该控制系统的重复性误差约正负1度。控制信号与电机角度之间的对应关系制成图标,如图4所示。

图4 控制信号输入(电流mA)与电动阀门角度(度)输出关系曲线

实践证明本算法可在常规有刷直流电机位置控制中进行采用。针对本算法的进一步改进,有如下思考:①调节过程中增加电流监测,实现软启动。②建立常用电机的状态模型,进行不同负载和速度之间的数据测试,以匹配不同应用场景的速度调节、系统允许误差及误差触发界限等参数。③在此基础上,探究实现更高位置控制精度的可能性。

4 结 语

本文从实践应用需求出发,在学习有刷直流电机位置控制经典算法的基础上,提出了一种新型的控制算法。经过实测及产品级应用,表明该算法具有响应速度快、程序编写较为简易、硬件支持要求低、调节精度较高、不会出现抖动的特点,可供相关行业人士借鉴参考。同时本文对该算法的后续改进提出了思考。

猜你喜欢

施密特触发器直流电机
基于模糊PID的无刷直流电机速度控制系统的设计与仿真
二重秩序的悖论:施密特和阿甘本对马勒布朗士哲学的再解读
主从JK触发器逻辑功能分析
基于FPGA的双绕组无刷直流电机软件设计
使用触发器,强化安全性
带着GPS去流浪
基于模糊神经网络PID的无刷直流电机控制系统研究
一种改进的无刷直流电机控制方法
对触发器逻辑功能转换的分析
触发器逻辑功能转换的两种方法