一种基于pid控制的步进电机双闭环控制方法及系统

文档序号:1907834 发布日期:2021-11-30 浏览:13次 >En<

阅读说明:本技术 一种基于pid控制的步进电机双闭环控制方法及系统 (PID control-based stepping motor double-closed-loop control method and system ) 是由 华庆 陈曦童 郝新源 王寰宇 于 2021-07-27 设计创作,主要内容包括:本公开提供了一种基于PID控制的步进电机双闭环控制方法及系统,包括PID控制器、驱动器、步进电机和编码器,所述驱动器分别与所述PID控制器和步进电机相连接;所述编码器与步进电机相连接;所述PID控制器包括分别与编码器相连接的速度环和位置环;所述PID控制器基于编码器的总脉冲数和上位机所设定的第一目标值进行计算,得到用于控制步进电机方向的位置环期望值;通过PID控制器设置控制系数,结合所得到的位置环期望值判断是否开启速度环控制,使得步进电机在距离目标值远时采用速度环控制、在即将达到目标值时采用位置环控制。(The utility model provides a stepping motor double closed loop control method and system based on PID control, comprising a PID controller, a driver, a stepping motor and an encoder, wherein the driver is respectively connected with the PID controller and the stepping motor; the encoder is connected with the stepping motor; the PID controller comprises a speed ring and a position ring which are respectively connected with the encoder; the PID controller calculates based on the total pulse number of the encoder and a first target value set by an upper computer to obtain a position ring expected value for controlling the direction of the stepping motor; and setting a control coefficient through a PID controller, and judging whether to start speed loop control or not by combining the obtained expected value of the position loop, so that the stepping motor adopts speed loop control when being far away from the target value and adopts position loop control when reaching the target value.)

一种基于PID控制的步进电机双闭环控制方法及系统

技术领域

本公开属于电机控制技术领域,具体涉及一种基于PID控制的步进电机双闭环控制方法及系统。

背景技术

本部分的陈述仅仅是提供了与本公开相关的

背景技术

信息,不必然构成在先技术。

步进电机是一种将电脉冲信号转换成相应角位移或线位移的电动机;每输入一个脉冲信号,转子就转动一个角度或前进一步,其输出的角位移或线位移与输入的脉冲数成正比,转速与脉冲频率成正比。

据发明人了解,传统的比例-积分-微分(简称PID)单闭环控制在步进电机的控制中存在着一定的缺陷:速度环闭环控制虽然可以精准的控制步进电机的转速,但是难以实现对步进电机位置上的精准控制;位置环闭环控制虽然可以精准的控制步进电机的转动角度,但是需通过人为限制速度来有效防止步进电机的堵转。传统的PID双闭环控制在到达设定的目标值时容易造成步进电机的过冲现象。

因此,有必要进行步进电机双闭环控制的研究。

发明内容

为了解决现有技术的不足,本公开提出了一种基于PID控制的步进电机双闭环控制方法及系统,通过设置控制系数,结合位置环期望值判断是否开启速度环控制,使步进电机在距离目标值较远时采用速度环控制,在即将到达目标值时采用位置环控制,有效解决了步进电机的过冲现象。

为了实现上述目的,本公开采用了如下的技术方案:

根据一些实施例,本公开的第一方案提供了一种基于PID控制的步进电机双闭环控制系统,采用如下技术方案:

一种基于PID控制的步进电机双闭环控制系统,包括PID控制器、驱动器、步进电机和编码器,所述驱动器分别与所述PID控制器和步进电机相连接;所述编码器与步进电机相连接;所述PID控制器包括分别与编码器相连接的速度环和位置环;

所述PID控制器基于编码器的总脉冲数和PID控制器所设定的第一目标值进行计算,得到用于控制步进电机方向的位置环期望值;通过PID控制器设置控制系数,结合所得到的位置环期望值判断是否开启速度环控制,使得步进电机在距离目标值远时采用速度环控制、在即将达到目标值时采用位置环控制。

根据一些实施例,本公开的第二方案提供了一种基于PID控制的步进电机双闭环控制方法,采用如下技术方案:

一种基于PID控制的步进电机双闭环控制方法,包括以下步骤:

计算编码器所采集到的脉冲信号,得到总脉冲数和单位时间的脉冲数;

将所得到的总脉冲数作为第一实际值、上位机中所设定的第一目标值输入到位置环,基于PID算法计算得到位置环期望值;

根据位置环期望值来控制步进电机的转动方向;

基于PID控制器设置控制系数,通过比较控制系数与位置环期望值之间的大小来判断是否开启速度环控制;当位置环期望值大于控制系数时开启速度环控制,通过速度环期望值计算步进电机第二PWM的输出比较值,否则直接通过位置环期望值计算步进电机第一PWM的输出比较值。

与现有技术相比,本公开的有益效果为:

本公开通过设置控制系数,结合位置环期望值判断是否开启速度环控制,使控制系数在距离位置环目标值较远时采用速度环控制,在即将到达位置环目标值时采用位置环控制,有效解决了步进电机的过冲现象。

附图说明

构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。

图1是本公开实施例一中基于PID控制的步进电机双闭环控制系统的结构框图;

图2是本公开实施例二中基于PID控制的步进电机双闭环控制方法的流程图。

具体实施方式

下面结合附图与实施例对本公开作进一步说明。

应该指出,以下详细说明都是例示性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。

需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。

在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。

实施例一

本公开实施例一提供了一种基于PID控制的步进电机双闭环控制系统。

如图1所示的一种基于PID控制的步进电机双闭环控制系统,包括PID控制器、驱动器、步进电机和编码器,所述驱动器分别与所述PID控制器和步进电机相连接;所述编码器与步进电机相连接;所述PID控制器包括电流环以及分别与编码器相连接的速度环和位置环。

PID控制器基于编码器的总脉冲数和上位机所设定的第一目标值进行计算,得到用于控制步进电机方向的位置环期望值;通过PID控制器设置控制系数,结合所得到的位置环期望值判断是否开启速度环控制,使得步进电机在距离目标值远时采用速度环控制、在即将达到目标值时采用位置环控制。

作为一种或多种实施方式,PID控制器一般是三环控制系统,由内到外依次是电流环、速度环和位置环。

电流环的输入值(即电流环给定值)是速度环经PID调节之后的输出值,将电流环给定值和电流环的反馈值进行比较作差,得到的差值在电流环内做PID调节以输出至步进电机;这里的电流环的反馈不是编码器中的反馈,而是在驱动器内部安装在每相的霍尔元件(磁场感应变为电流电压信号)反馈给电流环。电流环通过所述速度环控制的输出值与安装在驱动器内部每相霍尔元件所感应的电流电压信号之间的差值在电流环内部形成一个PID调节的负反馈。

速度环的输入(即速度设定)是位置环经PID调节之后的输出值以及位置设定的前馈值,将速度设定和速度环反馈值进行比较作差,得到的差值在速度环做PID调节(主要是比例增益和积分处理)后输出,该输出值就是电流环中的电流环给定值。速度环的反馈来自于编码器的反馈后的值经过速度运算器得到的。

位置环的输入就是外部的脉冲信号(通常情况下,直接写数据到驱动器地址的伺服例外),外部的脉冲信号经过平滑滤波处理和电子齿轮计算后作为位置环设定值,将位置环设定值和来自编码器反馈的脉冲信号经过偏差计数器的计算后的数值在经过位置环的PID调节(比例增益调节,无积分微分环节)后输出和位置给定的前馈信号的合值,该合值就是速度环设定。位置环的反馈也来自于编码器。

编码器安装于步进电机的尾部,且和电流环没有任何联系,其采样信号来自于电机的转动而不是电机电流,和电流环的输入、输出、反馈没有任何联系。电流环是在驱动器内部形成的,即使没有电机,只要在每相上安装模拟负载(例如电灯泡)电流环就能形成反馈工作。

在本实施中,PID控制器采用STM32,编码器采用旋转编码器。

实施例二

本公开实施例二提供了一种基于PID控制的步进电机双闭环控制方法,采用了实施例一中所提供的基于PID控制的步进电机双闭环控制系统。

如图2所示的一种基于PID控制的步进电机双闭环控制系统,包括以下步骤:

步骤S01:计算编码器所采集到的脉冲信号,得到总脉冲数和单位时间的脉冲数;

步骤S02:将所得到的总脉冲数作为第一实际值、上位机中所设定的第一目标值输入到位置环,基于PID算法计算得到位置环期望值;

步骤S03:根据位置环期望值来控制步进电机的转动方向;

步骤S04:基于PID控制器设置控制系数,通过比较控制系数与位置环期望值之间的大小来判断是否开启速度环控制;当位置环期望值大于控制系数时开启速度环控制,执行步骤S05,否则直接通过位置环期望值计算步进电机第一PWM的输出比较值;

步骤S05:速度环期望值计算之前的数据处理;

步骤S06:计算速度环期望值和步进电机第二PWM的输出值。

作为一种或多种实施方式,在步骤S01之前,首先对控制系统的时钟和外设的初始化,并通过上位机进行第一目标值的输入。

作为一种或多种实施方式,在步骤S01中,总脉冲数的大小等于定时器溢出次数与计数器重装载值乘积,再与当前定时器计数值之和;单位时间的脉冲数的大小等于当前的总脉冲数与上次的总脉冲数之差。

作为一种或多种实施方式,在步骤S02中,将第一目标值与第一实际值相减得到当前误差e(k),将当前误差e(k)进行累加得到累加误差将当前误差e(k)赋值给上次误差e(k-1)、作为下次计算的上次误差e(k)-e(k-1),将得到的当前误差e(k)、累计误差和下次计算的上次误差e(k)-e(k-1)与在PID控制器中预设的比例系数KP、积分系数KI和微分系数KD进行数学运算,即得位置环期望值

作为一种或多种实施方式,在步骤S03中,若位置环期望值为正则步进电机顺时针旋转,若位置环期望值为负则步进电机逆时针旋转。

作为一种或多种实施方式,在步骤S04中,步进电机第一PWM的输出比较值用于控制步进电机PWM波的占空比,与比较计数器的计数频率、位置环期望值、编码器的采样频率和脉冲信号比(脉冲信号比是步进电机单圈脉冲数与编码器单圈脉冲数的比值)有关,即

作为一种或多种实施方式,在步骤S05中,将位置环期望值传给另一个变量,并设定最大启动速度;

若PID控制器中预测的启动速度大于最大启动速度时,步进电机不能正常启动,则将最大启动速度设定为启动速度;若PID控制器中预测的启动速度小于最大启动速度时,步进电机能正常启动,有效防止步进电机在启动时发生堵转。

作为一种或多种实施方式,在步骤S06中,将位置环期望值作为第二目标值、单位时间的脉冲数作为第二实际值输入到速度环,基于PID算法计算得到速度环期望值;通过速度环期望值计算步进电机第二PWM的输出比较值。

具体的,将第二目标值与第二实际值相减得到当前误差E(k),将当前误差E(k)进行累加得到累加误差将当前误差E(k)赋值给上次误差E(k-1)、作为下次计算的上次误差E(k)-E(k-1),将得到的当前误差E(k)、累计误差和下次计算的上次误差E(k)-E(k-1)与在PID控制器中预设的比例系数KP、积分系数KI和微分系数KD进行数学运算,即得速度环期望值

步进电机第二PWM的输出比较值用于控制步进电机PWM波的占空比,与比较计数器的计数频率、速度环期望值、编码器的采样频率和脉冲信号比(脉冲信号比是步进电机单圈脉冲数与编码器单圈脉冲数的比值)有关,即

本公开通过设置控制系数,结合位置环期望值判断是否开启速度环控制,使控制系数在距离位置环目标值较远时采用速度环控制,在即将到达位置环目标值时采用位置环控制,有效解决了步进电机的过冲现象。

以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种旋转风力发电机的方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!