一种微型电机转速测量控制系统及方法与流程

文档序号:23662804发布日期:2021-01-15 14:01阅读:63来源:国知局
一种微型电机转速测量控制系统及方法与流程

本发明涉及电机控制技术领域,具体涉及一种微型电机转速测量控制系统及方法。



背景技术:

现代控制系统几乎都是基于电脑采样控制,它只能离散地对采样对象进行采样,控制量也只能基于每次采样的偏差值。因此,不能准确计算理论算式中的积分项和微分项,只能用数值离散计算的方法逼近得到,经过这样处理得到的pid控制算式被称为数字pid控制算式。数字pid控制算式有两种:位置式pid控制算式、增量式pid控制算式。

位置式pid控制算式也存在一些缺点:由于要求输出最终的结果,很容易产生静态误差,控制器运算时要对偏差进行累加,使得计算机的运算工作量大。另外,由于pid控制器的输出的对应的是系统执行机构的绝对位置,假如计算机由于干扰或者程序跑飞而出现故障,pid控制器的输出有很有可能会出现大幅度的变化,如此一来必然会引起执行机构产生大幅度的位置变化。

增量式pid控制算式在位置式pid控制算式上做了改进,但是,不加改进、整理就直接利用位置式pid的输出来控制电机,会根本控制不了,甚至会出现灾难性的后果,因为所有的pid分析都是建立在被控制的执行机构所产生的动作之于过程变量都是属于增量式的系统之上,过程变量的改变需要执行机构和时间的共同参与。



技术实现要素:

为了克服现有技术存在的缺陷与不足,本发明提供一种微型电机转速测量控制系统及方法,本发明采用usb6008数据采集卡进行数据的采集以及模拟量的输出,以labview编程环境作为软件平台利用usb6008数据采集卡的计数器功能实现转速的测量、利用pid控制理论对转速实现控制,具有速度变化曲线显示、pid输出曲线显示、数据采集卡参数设定等功能,性能稳定、效果理想、操作简单,可广泛地应用于工业控制等领域,具有良好的运用前景。

为了达到上述目的,本发明采用以下技术方案:

本发明提供一种微型电机转速测量控制系统,包括:电机、第一光电门、第二光电门、圆光栅、异或门、三极管驱动电路、数据采集卡和上位机;

所述圆光栅与电机连接,所述电机与第一光电门、第二光电门连接,所述第一光电门、第二光电门与异或门输入端连接,所述异或门输出端与数据采集卡连接,所述数据采集卡分别与三极管驱动电路、上位机连接,

所述数据采集卡设有模拟电压输出单元和计数器;

所述上位机设有速度设定单元、pid运算单元、速度转换单元和速度显示单元;

所述圆光栅布局有明暗相间隔的条纹;

所述第一光电门、第二光电门用于产生相位相差90度的脉冲,所述脉冲根据检测到圆光栅的黑、白色条纹进行调整;

所述异或门用于将第一光电门、第二光电门产生的脉冲整合为新的脉冲;所述计数器用于接收脉冲形成计数值;

所述速度转换单元用于采集当前计数值,并且与前一次读取的数值相减得到增量,把得到的增量计算得到电机当前的转速;

所述速度显示单元用于实时显示当前转速;

所述速度设定单元用于设定初始速度;

所述pid运算单元用于把得到的电机速度和设定速度相比较,运用pid算法控制数据采集卡的模拟电压输出单元输出电压,建立一个缓冲变量,以缓冲变量输出控制驱动电机的电压;

所述三极管驱动电路用于接收模拟电压输出单元输出电压,经过三极管放大后驱动电机。

作为优选的技术方案,所述第一光电门与第二光电门设于圆光栅一侧,两者沿圆光栅圆周相隔90度。

作为优选的技术方案,所述圆光栅具体设置方式为:

设定y轴正方向为0°起点,顺时针为角度增加方向;

在0°到90°范围内:黑色或者白色条纹都是占10°;

在90°到180°范围内:90°到95°为白色条纹,95°到175°这一个区间每个黑色或者白色条纹所占的角度都是10°,175°到180°为黑色条纹;

180°到270°条纹的布局与0°到90°的布局相同,180°到360°的条纹的布局与90°到180°的布局相同;

所述第一光电门与第二光电门检测到黑色条纹时输出低电平,检测到白色条纹时输出高电平。

作为优选的技术方案,所述电机采用微型直流电机、光电门采用itr9606型号光电门、异或门采用cd4070型号异或门。

作为优选的技术方案,所述计数器设有多个参数节点,包括:countdirection节点、initialcount节点、edge节点和counter节点,所述countdirection节点用于选择计数器的计数方向,所述initialcount节点用于设定计数器的计数初值,所述edge节点用于选择计数器基于的触发边沿,所述counter节点用于选择接入计算机可用的计数器,选择数据采集卡的物理通道。

作为优选的技术方案,所述模拟电压输出单元设有多个参数节点,包括:outputterminalconfiguration节点、minimumvalue节点、maximumvalue节点、physicalchannels节点和units节点;所述outputterminalconfiguration节点用于设置模拟电压的输出接线端配置,所述minimumvalue节点和maximumvalue节点用于设置输出电压的范围,所述physicalchannels节点用于选择模拟电压输出的物理通道,所述units节点用于选择单位。

作为优选的技术方案,所述pid运算单元设有四个输入端,分别为设定值、过程变量、采样周期和pid参数输入端,所述pid参数包括比例系数kp、积分系数ki和微分系数kd;

所述设定值与过程变量相减得到偏差,偏差的流向分为几路:

第一,流向移位寄存器作为下一次的上一次的偏差值;

第二,与比例系数kp相乘,作为比例项输出;

第三,与采样周期相乘再与积分项相加,积分项的流向分为两路,第一路流向移位寄存器作为积分项保留,另一路乘以积分系数ki作为积分项输出;

第四,与上一次的偏差值相减,把得到的差除以采样周期再乘以微分系数kd作为为微分项输出,最后把比例项输出、积分项输出、微分项输出加起来,作为最后的pid输出。

作为优选的技术方案,设有数据采集卡的参数设置界面、电机转速的显示及控制面板界面;

所述数据采集卡的参数设置界面包括设置数据采集卡的采样周期界面、数据采集卡的计数器参数选择界面;

所述数据采集卡的计数器参数选择界面包括计数器的选择、计数边缘、计数方向、计数器初始值、以及数据采集卡的模拟输出设置界面;

所述电机转速的显示及控制面板界面用于对预定速度进行设定、显示当前测量得到的电机转速、显示设定速度和测量速度曲线、显示经过pid运算后最终作为输出电压输出的数字量,以及显示当前的采样周期、pid参数的设定、程序的强制结束。

本发明还提供一种微型电机转速测量控制系统的控制方法,包括下述步骤:

所述第一光电门、第二光电门产生相位相差90度的脉冲,所述脉冲根据检测到圆光栅的黑、白色条纹进行调整;

所述异或门将第一光电门、第二光电门产生的脉冲整合为新的脉冲;所述计数器接收脉冲形成计数值;

所述速度转换单元采集当前计数值,并且与前一次读取的数值相减得到增量,把得到的增量计算得到电机当前的转速;

所述速度设定单元设定初始速度;

所述pid运算单元把得到的电机速度和设定速度相比较,运用pid算法控制数据采集卡的模拟电压输出单元输出电压,建立一个缓冲变量,以缓冲变量输出控制驱动电机的电压;

所述三极管驱动电路接收模拟电压输出单元输出电压,经过三极管放大后驱动电机。

作为优选的技术方案,还设置有滤波步骤,具体步骤包括:建立一个队列,采用fifo的方式令测量得到的电机转速入队,对整个队列的元素求和然后把得到的和除以队列长度,把得到的商作为最终测量得到电机转速显示以及作为pid运算的输入。

本发明与现有技术相比,具有如下优点和有益效果:

(1)对光电传感器测速时圆光栅明暗条纹的布局做出特殊设计,利用a、b两个光电门加异或门电路可以提高单位时间内的脉冲数量,从而提高测量分辨率;

(2)在转速控制中,对经典pid算法进行了改进,建立一个缓冲变量,用pid的输出作为一个增量值去改变这个缓冲变量,以缓冲变量作为真正的系统输出去控制驱动电机的电压,使得电机运转更平稳,更快接近设定值。

附图说明

图1为本实施例微型电机转速测量控制系统的整体结构框图;

图2为本实施例微型电机转速测量控制系统的主电路结构示意图;

图3为本实施例圆光栅的测量结构示意图;

图4为本实施例圆光栅的条纹布局图;

图5位本实施例输出脉冲时序图;

图6为本实施例pid控制整定结果对应的阶跃响应曲线图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

如图1所示,本实施例提供一种微型电机转速测量控制系统,包括电源、电机、电脑、光电门、异或门、三极管、usb6008数据采集卡;

两个光电门负责产生相位相差90度的与转速有一定函数关系的脉冲,即假设电机圆盘上制作的明暗条纹圆光栅数目为n组,如果测得每秒钟的脉冲数为n,则转速为n/n/秒;然后通过一个异或门整形为新的脉冲。新的脉冲连接到数据采集卡的计数器输入端。然后labview读取计数器的值,并且与前一次读取的数值相减得到增量,把得到的增量进行数学运算就可以得到电机当前的转速,具体的数学运算为:

转速=(计数器数值÷36)÷采样周期×60(转/分)

把得到的电机速度和设定速度相比较,运用pid算法控制数据采集卡的输出电压。输出的电压串联一个电阻经过一个三极管放大后驱动电机,电阻值采用22k,三极管采用s8050型号,就此,形成一个完整的系统。

在本系统中,主要用到数据采集卡的事件计数器功能和模拟输出功能;

系统所使用的电机为普通微型直流电机,输入电压范围是2.3v到15v。由于通过改变加载在电机两端的电压可以改变电机的转速,所以系统就是通过控制加载在电机两端的电压来控制电机的转速。

如图2所示,本实施例的微型电机转速测量控制系统分为测量和控制两部分,测量部分包括光电门、异或门、数据采集卡,控制部分主要靠三极管s8050提供足够电流驱动电机转动,在转速测量部分,光电门itr9606与异或门cd4070组合在一起,通过条纹的明暗变化采集到规律性的高低电平,送入数据采集卡进行脉冲计数。

三极管s8050在集电极可以提供足够电流的前提下,流经集电极的电流约等于流经基极的电流乘以一定的放大倍数,从而起到以小电流控制大电流的功能;

光电门itr9606是一款具有快速响应、高灵敏度的光电门,由一个红外线发射二极管以及一个npn型的光敏三极管组成,由于其中的红外线发射二极管已经具有足够的强度,所以无需外加放大电路来检测灯泡发出的光是否被物体所阻挡,使用时在输入端接一个400ω的限流电阻即可,输出的发射极接地,集电极接电路相应的输入端;

异或门(半加器)cd4070采用双列14脚封装,芯片电压vdd=-0.5—18v;输入电压vi=-0.5—vdd+0.5v;峰值输入、输出电流±ii=10ma;额定功耗pd=100mw。cd4070是集成4个异或门(半加器)的芯片,可以实现逻辑异或运算,本实施例将芯片的vdd脚接5v,vss脚接地,其他引脚按需要连接。

本实施例采用光电式脉冲编码器测量转速的方法来实现对这个电机转速测量与控制系统的转速的测量功能,但是这种利用脉冲编码器的测量方式不易做到高精度和高分辨率,usb6008的脉冲计数器的最大输入频率可高达5mhz,所以当光电式脉冲编码器采用36ppr的分辨率时,数据采集卡的计数器不会出现丢失脉冲的现象。

如图3、图4所示,两个光电门(a、b)安装在彼此相隔90°的位置上,圆光栅的具体设置方式为:

设定y轴正方向为0°起点,顺时针为角度增加方向,那么x轴正方向为90°,在0°到90°这一范围内,黑色或者是白色条纹都是占10°,但是,在90°到180°这一个区间:90°到95°为白色条纹,95°到175°这一个区间每个黑色或者白色条纹所占的角度都是10°,175°到180°为黑色条纹,180°到270°条纹的布局与0°到90°的布局类似,180°到360°的条纹的布局与90°到180°的布局类似。

设定这样的布局正是为了使用两个光电门。假设光电门检测到黑色条纹时输出低电平,检测到白色条纹时输出高电平。假设此时圆光栅开始逆时针转动,那么光电门a首先输出的是低电平,而光电门b输出的是高电平,此时ab的输出电平异;等圆光栅转动了5°之后,光电门a还是输出低电平,但是光电门b开始输出低电平,此时ab电平同;等再转动5°之后,光电门a开始输出高电平,光电门b还是输出低电平,此时ab异。如此一来,ab电平的异或同就每隔5°改变一次。如图5所示,得到当圆光栅从当前位置逆时针转动90°的时序图。

本实施例将测量到的脉冲送入数据采集卡的计数器端口,通过换算得到转速测量值,将该数值与设定的转速值不断进行比较,通过改进的pid算法算出需要调整的电机驱动电压,此电压值经过数据采集卡的模拟输出端输出给驱动电路,从而达到控制电机转速的目的。

显示界面:数据采集卡的参数设置界面、电机转速的显示及控制面板界面、数据采集卡的参数设置界面包括:设置数据采集卡的采样周期界面;数据采集卡的计数器参数选择界面,包括计数器的选择、计数边缘、计数方向、计数器初始值等一些参数的设置;以及数据采集卡的模拟输出设置界面。

电机转速的显示及控制面板界面完成的功能为:对预定速度进行设定、显示当前测量得到的电机转速、显示设定速度和测量速度曲线、显示经过pid运算后最终作为输出电压输出的数字量,该数字量交给数据采集卡后,数据采集卡输出相应的模拟量,此处可以清晰地看到输出电压是如何随着设定速度、测量速度以及不同的pid参数的变化而变化的;以及显示当前的采样周期、pid参数的设定、程序的强制结束等。

控制方法包括:数据采集卡的任务生成、参数设置与数据读取都是在编程中实现对数据采集卡的正确使用,电机转动产生的脉冲送入采集卡usb6008的pfi0计数器端口,用于测量转速;运算后生成的控制信号由采集卡的ao0端输出,转速的测量值可以在仪器前面板上通过曲线或仪表盘实时显示出来。

其中,计数器的主要参数节点有四个,countdirection节点用于选择计数器的计数方向:升值计数、减值计数、外部控制,其中升减值表示递增或递减前一计数值,而外部控制则是表示用户通过控制数据采集卡的数字端口来决定递增还是递减;initialcount节点用于设定计数器的计数初值;edge节点用于选择计数器基于的触发边沿:上升沿、下降沿;counter节点通过它来选择接入计算机可用的计数器,选择的是具体的数据采集卡的物理通道;

模拟电压输出设置节点的主要参数节点有5个,其中outputterminalconfiguration节点用来设置模拟电压的输出接线端配置:差分、伪差分、rse等等,minimumvalue、maximumvalue节点用于设置输出电压的范围,physicalchannels节点用来选择模拟电压输出的物理通道,units节点用于选择单位;

计数器的参数:选择下降沿计数、初始计数值为0、计数方向为升值计数、采集模式为1采样,采集到的计数器的值转化成双精度浮点数,转换之后的数据分两路:一路输入到while循环结构的移位寄存器中,作为下一次while循环对应的输入;另一路与上一次保存的数据(第一次运行时“上一次的数据”为0)相减,得到的数据即为单采样周期内得到的脉冲数。

把得到的脉冲数做一定的运算即可得到测量得到的电机转速,但是这样得到的电机转速会有一定的波动,所以需要一定的滤波。此处采取的是求平均值的方式滤波,具体实现方式就是建立一个队列,以fifo(先进先出)的方式令测量得到的电机转速入队,对整个队列的元素求和然后把得到的和除以队列长度,把得到的商作为最终测量得到电机转速显示以及作为pid运算的输入。

本实施例pid控制器有完整的微分和积分的组成成分和移位寄存器,建立一个缓冲变量,用pid的输出作为一个增量值去改变这个缓冲变量,最后再把这个缓冲变量作为真正的系统输出去控制驱动电机的电压。

具体地,将pid控制子程序计算出的输出控制量与while循环的左右两端成对设置的移位寄存器结合起来,每次计算结果输入给右端的移位寄存器,再通过循环返回到左端进入下一次累加,从而实现算式u(k)=u(k-1)+δu(k),起到增量式pid控制的作用。

pid控制器有四个输入端,分别为设定值(连接速度设定值)、过程变量(测量得到的电机转速)、dt(采样周期)、pid参数(比例系数kp、积分系数ki、微分系数kd)。设定值与过程变量相减得到偏差,偏差的流向分为几路。第一,流向移位寄存器作为下一次的上一次的偏差值;第二,与kp相乘,作为比例项输出。第三,与dt相乘再与积分项相加,积分项的流向分为两路,第一路流向移位寄存器作为积分项保留,另一路乘以ki作为积分项输出;第四,与上一次的偏差值相减,把得到的差除以dt再乘以kd作为为微分项输出。最后把比例项输出、积分项输出、微分项输出加起来,作为最后的pid输出。

整定pid参数的步骤:先将系统设置为纯比例(也就是把积分系数、微分系数调为0),调节好比例作用后再调节积分作用,最后再调节微分作用。

在调节比例系数时,逐渐地增大比例系数,是系统的比例作用逐渐加强,直到出现等幅震荡为止,然后适当减小这个参数,或者把比例增益乘以0.6—0.8。

在调节积分系数的时候,积分作用应该尽可能的小,因为积分作用的目的就是为了消除静态误差。如果可以消除静态误差,积分作用就应该尽可能地小。

在调节微分系数时,只要把系数从一个较小的数值开始增大,直至pid的输出出现很多的毛刺。这时候再适当减小微分系数即可。

下面是pid参数整定的原始记录:

kp整定:开始时把ki和kd设置为0,kp由0.05开始递增,当kp较小,虽然过程变量曲线最后都能够趋近于设定值,但是震荡周期过长,响应过慢。逐渐增加到0.1、0.2,0.25,0.3直到0.4,出现了等幅震荡,最后取0.7*0.4=0.28。

如果出现了等幅震荡之后再继续增加kp,则过程变量曲线震荡的波峰和波谷将分别是两个极限值:0和最大值。

ki整定:调节好kp之后,加入ki进行调节,由于使用kp=0.28进行调节时,曲线趋近于设定曲线要等待过久的时间,所以先令kp等于0.1来进行ki调节。调节ki的时候,从0.01开始增大,依次增大到0.02、0.03、0.1、0.2、0.3、1。当ki=0.01到1都没有太明显的变化。由于ki的作用主要是为了消除静态误差,系统没有明显的静态误差,所以取ki=0.1;

kd整定:加入kd。kd由0.01一直增加到0.2,在kd=0.07时,出现的阶跃响应曲线最符合要求;

整定结果:系统整定的最后结果为kp=0.28,ki=0.1,kd=0.07。如图6所示,得到其阶跃响应曲线。

上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1