本发明涉及电机控制,具体涉及一种电机运动控制方法及系统。
背景技术:
1、目前,在舞台演艺或展览展示中,需要机械专业协同演出。在机械控制过程,存在匀速运动情况,但不少需求是根据其他专业设备控制进行变速运动。变速运动涉及到加减速过程,同时,要求电机连续平滑过渡达到较好的展示效果;但是现有的展示方式在机械运动的速度剧烈变化会带来运动抖动的问题。因此,设计一种能够解决电机连续变速运动的平滑过渡的方案成为本领域技术人员亟待解决的技术问题。
技术实现思路
1、针对所述缺陷,本发明实施例公开了一种电机运动控制方法,其能够实现电机连续变速的平滑过渡处理。
2、本发明实施例第一方面公开了电机运动控制方法,包括:
3、获取控制台处传输的电机位置信息,基于所述电机位置信息生成相应电机的缓冲队列数据;所述缓冲队列数据包括多个控制节点数据,所述控制节点数据包括速度信息、位置信息、加速度信息和停止节点标识;
4、获取所述缓冲队列数据中的首节点和停止节点,根据所述首节点和停止节点确定在相应节点时电机的运动状态;其中,所述首节点为缓冲队列数据中第一个节点,所述停止节点为缓冲队列数据中具有停止节点标识的节点;
5、若所述电机的运动状态为第一运动状态,判断所述首节点是否为停止节点,若是,则将与所述首节点关联的控制节点数据传输至发送数据队列;若否,则计算所述首节点到停止节点的段平均速度,根据所述段平均速度和电机转动系数来确定启动缓冲距离;
6、若电机到达所述启动缓冲距离,则通过速度滑动平均算法对缓冲队列数据中各个节点数据计算以得到调整节点数据,并将空周期节点数据以及调整节点数据添加到发送数据队列;
7、若所述电机的运动状态为第二运动状态,判断所述首节点是否为停止节点,若是,则将与所述首节点关联的控制节点数据传输至发送数据队列;若否,则通过速度滑动平均算法计算处于相应节点的电机的实际速度和位置值,根据所述电机的实际速度和位置值对相应节点数据进行更新,并将更新后的节点数据传输至发送队列;
8、将所述发送数据队列发送至电机控制器处以进行电机转动控制。
9、作为一种可选的实施方式,在本发明实施例第一方面中,在所述将所述发送数据队列发送至电机控制器处之后,还包括:
10、获取电机的位置状态信号,根据所述电机的位置状态信号来判断是否运动到位,若是,则发送相应的发送数据队列,若否,则继续等待;
11、在所述根据所述段平均速度和电机转动系数来确定启动缓冲距离之后,还包括:
12、通过定时获取电机状态信息来确定电机是否达到启动缓冲距离;
13、若电机没达到所述启动缓冲距离,删除与所述首节点关联的控制节点数据。
14、作为一种可选的实施方式,在本发明实施例第一方面中,所述将所述发送数据队列发送至电机控制器处,包括:
15、循环将发送数据队列中的节点数据通过modbus协议发送至相应的电机控制器,直至发送数据队列中的数据为空。
16、作为一种可选的实施方式,在本发明实施例第一方面中,在所述根据所述首节点和停止节点确定在各个节点时电机的运动状态之后,还包括:
17、若所述电机的运动状态为第三运动状态,则将速度缓存队列中的速度值全部设置为零,将与所述首节点关联的控制节点数据传输至发送数据队列,并删除与所述首节点关联的控制节点数据。
18、作为一种可选的实施方式,在本发明实施例第一方面中,所述通过速度滑动平均算法对缓冲队列数据中各个节点数据计算以得到调整节点数据,包括:
19、创建一固定长度的速度缓冲队列,并对所述速度缓冲队列中的速度值进行初始化处理;
20、将缓冲队列数据中速度数值加入到所述速度缓冲队列中并按照滑动平均公式计算得到相应的速度输出值,并根据所述速度输出值来对相应的控制节点数据中的速度数值进行更新;所述滑动平均公式为:
21、(n1+n2+n3+n4+n5+…+nm)/m;
22、将所述速度缓冲队列中的第一个速度值删除,并将所述速度输出值加入到所述速度缓冲队列的队尾处以对缓冲队列数据中的下一节点进行速度处理,直至处理至相应的停止节点。
23、作为一种可选的实施方式,在本发明实施例第一方面中,所述第一运动状态为从停止到运动的状态,所述第二运动状态为从运动到停止的状态,所述第三运动状态为保持停止的状态。
24、作为一种可选的实施方式,在本发明实施例第一方面中,在所述通过速度滑动平均算法计算处于相应节点的电机的实际速度和位置值之后,还包括:
25、计算首节点到停止节点的区间平均速度,根据所述区间平均速度得到相应的提前停止区间;
26、若检测到电机进入提前停止区间,则将当前首节点设置为停止节点,并将与更新后的当前首节点的节点控制数据传输至发送数据队列中;
27、所述根据所述段平均速度和电机转动系数来确定启动缓冲距离,包括:
28、根据所述段平均速度、电机转动系数和缓冲计算公式来确定启动缓冲距离,所述缓冲计算公式为:启动缓冲距离=段平均速度*电机转动系数。
29、本发明实施例第二方面公开一种电机运动控制系统,包括:
30、位置获取模块:用于获取控制台处传输的电机位置信息,基于所述电机位置信息生成相应电机的缓冲队列数据;所述缓冲队列数据包括多个控制节点数据,所述控制节点数据包括速度信息、位置信息、加速度信息和停止节点标识;
31、节点获取模块:用于获取所述缓冲队列数据中的首节点和停止节点,根据所述首节点和停止节点确定在相应节点时电机的运动状态;其中,所述首节点为缓冲队列数据中第一个节点,所述停止节点为缓冲队列数据中具有停止节点标识的节点;
32、第一判断模块:用于若所述电机的运动状态为第一运动状态,判断所述首节点是否为停止节点,若是,则将与所述首节点关联的控制节点数据传输至发送数据队列;若否,则计算所述首节点到停止节点的段平均速度,根据所述段平均速度和电机转动系数来确定启动缓冲距离;
33、计算模块:用于若电机到达所述启动缓冲距离,则通过速度滑动平均算法对缓冲队列数据中各个节点数据计算以得到调整节点数据,并将空周期节点数据以及调整节点数据添加到发送数据队列;
34、第二判断模块:用于若所述电机的运动状态为第二运动状态,判断所述首节点是否为停止节点,若是,则将与所述首节点关联的控制节点数据传输至发送数据队列;若否,则通过速度滑动平均算法计算处于相应节点的电机的实际速度和位置值,根据所述电机的实际速度和位置值对相应节点数据进行更新,并将更新后的节点数据传输至发送队列;
35、发送模块:用于将所述发送数据队列发送至电机控制器处以进行电机转动控制。
36、本发明实施例第三方面公开一种电子设备,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行本发明实施例第一方面公开的电机运动控制方法。
37、本发明实施例第四方面公开一种计算机可读存储介质,其存储计算机程序,其中,所述计算机程序使得计算机执行本发明实施例第一方面公开的电机运动控制方法。
38、与现有技术相比,本发明实施例具有以下有益效果:
39、本发明实施例中电机运动控制方法通过对即将出现剧烈速度变化的电机转动数据进行滑动平均处理,进而使得在电机在实际运动的时候并不会产生猛烈的速度变化,减少了电机在进行机械运动时速度剧烈变化带来的运动抖动问题。
1.一种电机运动控制方法,其特征在于,包括:
2.如权利要求1所述的电机运动控制方法,其特征在于,在所述将所述发送数据队列发送至电机控制器处之后,还包括:
3.如权利要求1所述的电机运动控制方法,其特征在于,所述将所述发送数据队列发送至电机控制器处,包括:
4.如权利要求1所述的电机运动控制方法,其特征在于,在所述根据所述首节点和停止节点确定在各个节点时电机的运动状态之后,还包括:
5.如权利要求1所述的电机运动控制方法,其特征在于,所述通过速度滑动平均算法对缓冲队列数据中各个节点数据计算以得到调整节点数据,包括:
6.如权利要求1所述的电机运动控制方法,其特征在于,所述第一运动状态为从停止到运动的状态,所述第二运动状态为从运动到停止的状态,所述第三运动状态为保持停止的状态。
7.如权利要求1所述的电机运动控制方法,其特征在于,在所述通过速度滑动平均算法计算处于相应节点的电机的实际速度和位置值之后,还包括:
8.一种电机运动控制系统,其特征在于,包括:
9.一种电子设备,其特征在于,包括:存储有可执行程序代码的存储器;与所述存储器耦合的处理器;所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行权利要求1至7任一项所述的电机运动控制方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机程序,其中,所述计算机程序使得计算机执行权利要求1至7任一项所述的电机运动控制方法。