一种新型电机控制系统的制作方法

文档序号:12037319阅读:258来源:国知局
一种新型电机控制系统的制作方法与工艺

本发明属于电机控制技术领域,具体涉及一种新型电机控制系统。



背景技术:

对于机械臂等的转动控制,现大多采用舵机、步进电机或使用光编码盘等进行反馈控制,但都存在各自的局限和取舍。例如对于舵机其转动速度很难调节,且不能超过360度旋转;对于步进电机,则存在丢步的可能,且通常扭矩较小,每次通电都需要校准初始位置;而对于使用光编码盘等进行反馈控制的电机,功能则比较粗糙单一,通常只能对速度进行控制。

并且对于步进电机,通过霍尔器件或者光编码盘等反馈控制的电机,通常使用和控制复杂,在同时控制多个电机时更是如此,需要使用者花费较多精力进行调试设定。



技术实现要素:

鉴于上述,本发明提供了一种新型电机控制系统,其创新性地采用基于绝对型容栅编码技术的角度传感器作为电机位置检测单元,使用高性能单片机结合pid控制算法进行电机控制和通信,实现了电机转动的灵活且精确的控制。

一种新型电机控制系统,包括一台主机和多台从机,每台从机均对应控制一台电机;所述主机用于接收关于电机控制目标要求的外部信号并对这些信号进行处理调配,生成相应的控制指令发送给各台从机,进而通过从机对电机进行控制;

所述从机包括传感器模块、单片机控制模块、电机驱动模块以及通信模块,其中:所述传感器模块安装于电机转轴上,其采用绝对型容栅角度传感器采集电机的转子位置角信息并将其转换为数字信号的形式,该数字信号经过解码和滤波被转换为可识别的绝对位置信息,交由单片机控制模块进行反馈控制;所述通信模块用于从机与主机之间的通信;所述电机驱动模块用于驱动电机运行,其输入侧接直流电压,输出侧与电机的三相定子绕组连接;所述单片机控制模块用于采集传感器模块输出的数字信号并对其进行解调还原得到转子位置角,进而对转子位置角进行拟合得到电机的速度和加速度,同时通过通信模块获取电机的控制指令,并根据电机的转子位置角、速度、加速度以及控制指令通过pid(比例-积分-微分)控制生成三相开关控制信号用以对电机驱动模块中的功率开关器件进行控制,此外单片机控制模块还将收集到的电机状态信息通过通信模块反馈给主机。

进一步地,所述主机生成的控制指令包含到达指定位置的角度指令值以及以指定转速运行的速度指令值。

进一步地,所述主机包括单片机内核、通信模块以及供电模块;其中,所述供电模块用于为整个主机供电;所述单片机内核用于接收外部信号并对这些信号进行处理调配,生成相应的控制指令,进而通过通信模块发送给各台从机。

进一步地,所述主机和从机中的通信模块均采用lin总线进行通信,lin总线具有低成本,并且用极少的信号线即可实现国际标准iso9141规定,可以满足主从的需要,本发明采用lin总线结构可以有效的利用资源,降低成本。

进一步地,所述主机通过给各台从机分配地址从而实现多机通信,即主机向从机发送控制指令时在数据帧中加入从机的目标地址,只有当从机发现该目标地址与自己的地址相匹配情况下才会执行对应的控制指令;同时当主机需要获取电机的状态信息时,先向该电机对应的从机发送请求,从机收到请求后再向主机反馈相应的电机状态信息。

本发明具有以下有益技术效果:

(1)本发明采用绝对型容栅角度传感器来检测电机转子的物理位置,并且结合高性能的单片机计算处理,实现对于电机的控制;容栅传感器结构简单,能够实现跨越360度的角度控制以及从静止开始的转速控制范围,并且断电重启后仍可识别当前绝对角度位置,功耗很低可长时间待机,能够使电机控制达到较高的精度,成本较低,对使用环境的要求也较小。

(2)本发明构建了主从机之间的通信网络,用户通过在上层设置几个运动参数,无需了解具体的控制原理,就能方便直观地对多个电机进行控制,且同时能够获得角度传感器及电机的反馈数据,用户利用这些反馈数据可以进行上层的全局控制,由此制成的电机控制模块,能够让用户可以专注于总体的控制,而不必操心具体每一个电机的使用。

(3)本发明综合了舵机的控制特点和步进电机的应用领域,覆盖了小型机械结构常用的运动需求,利用单片机芯片对带有容栅传感器的无刷电机进行控制,应用广且使用方便,具有广泛的适用场景,可以用于机械臂、云台、3d打印等需要角度控制和转速控制的场合。

附图说明

图1为本发明电机控制系统的结构示意图。

图2为从机的控制结构框图。

图3为主从机间通信过程中数据帧的结构示意图。

图4为从机接收的状态机示意图。

图5为主机的控制流程示意图。

图6为从机的控制流程示意图。

图7为从机的机械结构示意图。

具体实施方式

为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。

本发明对电机的控制可实现两大模式:角度模式和转速模式;角度模式为通过控制电机扭矩和负载维持动态平衡,使得电机能够在任意角度保持固定静止;转速模式则为控制电机的枢电流,以使得转速在负载变化的时候保持不变,也可以根据需要,依照角度传感器反馈的信息,使电机按照特定的模式转动,如加速减速。

如图1所示,本发明电机控制系统分为主机和从机两部分,主机的功能是是用于接收外部信号,然后将信号发送给从机,控制从机的电机转动,其主要构成为arm单片机内核、总线通信模块、供电模块,其中供电模块为整个主机进行供电,arm单片机内核负责接收外部信号,然后进行调配,通过lin通信端口发送信号给各个分机,实现控制。

从机主要包括电机驱动模块、arm单片机控制模块、容栅传感器模块三大部分。arm单片机控制模块的主要器件有arm内核、通信器件、供电器件、电机驱动器件以及容栅通信器件;其中,供电器件主要负责按各部分的电源需求提供所需电压电流;arm内核为中心器件连接其他各个部分,主要负责计算,处理数据;通信器件接收到来自主机的信号,然后送入arm内核,处理得到目标值,将其转化为电压输入电机驱动器件,输出对应的波形,用于驱动电机;容栅通信器件接收到来自容栅传感器的信号,输入arm内核,进行处理后可以得到当前电机运动情况。从机还包括各类状态指示灯,和arm单片机相连,用于判断输出,输入工作是否正常。图7为从机的机械结构实现,其中1为直流无刷电机,2为容栅传感器,3为驱动及控制电路板。

容栅传感器模块包括容栅传感器以及对应的信号处理芯片和供电模块,其中供电模块给传感器信号处理芯片供电,处理芯片接收来自容栅传感器的数据,将此数据处理后,输送给arm单片机控制模块。

电机驱动模块中最为主要的器件就是电机驱动芯片,其收到来自arm单片机控制模块的控制,实现电机驱动的目标。

本实施方式将从机的3个模块分为三层进行设计,有效地利用空间,减少装备体积,便于使用和携带;其总体的运行方式如下:主机接收到来自外部对于各个电机的目标要求,主机的arm单片机对此信号进行处理,通过通信模块发送到各个从机;从机通过通信器件接收到来自主机的信号,在arm单片机中进行解析,获得目标,通过电机驱动芯片对电机进行驱动,同时又利用容栅传感器检测电机运动情况,并且将此信号输送回arm单片机,此时就可以利用arm单片机内部设定好的pid算法进行驱动,从而以高精度,高速度的方式得到目标所需的运动状态,在达到运动状态后,再将信号反馈给主机。

本实施方式通过采用绝对型容栅角度传感器来检测电机转子的物理位置,并且结合高性能的单片机计算处理,实现对于电机的控制;容栅传感器与电机转轴相连接,电机的转动会带动容栅传感器,此时的容栅传感器可以对角度进行采样,并且采样得到的角度为绝对型角度值,此数据可以通过容栅通信模块传输给arm单片机,arm单片机接收信号,就可以知道当前电机的绝对角度位置。

为了能够快速而准确的完成目标,电机的控制目标主要分为两类:①到达指定位置;②以指定角速度进行旋转;此外还需要对电机进行反馈控制,通过arm单片机——电机——容栅传感器——arm单片机构成反馈回路;本实施方式在arm单片机内部设计了pid算法,分别用于角度目标的实现和速度目标的实现。

设电机的角速度为随着时间变化为ω(t),角度随时间的变化为θ(t),由于采样、传输和计算有一定的时延,假定每次的时延都一致为τ,则在t时刻,单片机中接收到的数据为t-τ时刻的角度值,也就是θ(t-τ);同时由于采样的是固定的时间间隔,故此建立离散的模型,角速度v[n]=v(τn),角度θ[n]=θ(τn)。

(1)指定速度控制:

指定速度即为要求电机以某一确定速度进行匀速转动。对于三相直流无刷电机的控制,若是直接输出三相电流,使其按照恒定相位递增的方式运动,此时由于电流和对应的相位切换速度不相匹配,电机内部的力无法提供足够的力量或是提供了过多的力量,这都会导致无法到达指定的相位,从而无法实现指定速度旋转。所以对于三相直流无刷电机的控制,首先需要根据角度反馈信息做到相位同步,然后再控制电流大小,以达到对变化负载的恒转速控制;在此,本实施方式使用常用且实用的pid算法。

虽然容栅传感器检测到的是电机的角度,但是由于时间很短,所以可以利用平均角速率代替瞬时角速率ω[n],设定目标的速度为ωm,故有如下的pid控制器:

其中:ωe[n]为目标和实际之间的误差,ωe[n]=ωm-ω[n],kp、ki、kd分别为比例、积分和微分参数,需要后期进行调参;为了便于设计,上式可以改写为增量型公式:

δi[n]=kp(ωe[n]-ωe[n-1])十kiωe[n]十kd(ωe[n]-2ωe[n-1]十ωe[n-2])

但是由于采样的延时,公式中的ωe[n]无法准确得到,故此利用最小二乘法对此进行估算,假设角速度变化的曲线为2次曲线:ω=aωt2+bωt+cω,并且利用已知的前4个数据(记为ωi,i=1,2,3,4)对此进行最小二乘法进行拟合,则有如下公式:

其中:wi为各个数值的权重,此处考虑到时间的影响,采用指数加权的方式,即wi=ei/4,i=1,2,3,4;解此方程组可以得到如下预测结果ωn:

ωn=aω(5τ)2+bω(5τ)+c_ω

为了能够使得达到指定的速度,需要指定下一个时刻要达到的相位,此项可以由下式给出:

φn=θ[n]+ωmτ

其中:θ[n]同样也是未知的,此处利用之前给出的拟合速度来进行预判,可以得到如下公式:

φn=θ[n-1]+(ωn+ωm)τ

(2)指定角度控制:

指定角度主要指目标要求无刷电机在某一绝对角度停止,如果是直接将角度制对应的三相直流电传送给无刷电机,此时往往会导致出现剧烈的抖动现象,这对于机械结构的稳定性有很大的影响,故对此目标设计了pid控制算法,实现了高精度、高效率地到达指定角度,几乎无抖动。

设定pid控制器的控制对象为速度(利用之前给出的速度控制器实现),记为μ[n],设定角度目标为θm,则可以得到如下pid控制器的公式:

其中:e[n]为目标和实际之间的误差,也就是e[n]=θm-θ[n],kp、ki、kd分别为比例、积分和微分参数;为了便于设计,上式可以改写为增量型公式:

δμ[n]=kp(e[n]-e[n-1])+kie[n]+kd(e[n]-2e[n-1])+e[n-2]

同样地,由于采样的延时,公式中的e[n]无法准确给出,故利用最小二乘法对此进行估算;假设角度变化的曲线为3次曲线θ=aθt3+bθt2+cθt+dθ,并且利用已知的前5个数据(记为θi,i=1,2,3,4,5)对此进行最小二乘法进行拟合,则有如下公式:

其中:wi为各个数值的权重,此处考虑到时间的影响采用指数加权的方式,即wi=ei/5,i=1,2,3,4,5;解此方程组,可以得到如下预测结果ωn:

θn=aθ(6τ)3十bθ(6τ)2十cθ(6τ)十dθ

结合之前给出的两个设计目标:指定角度和指定转速,本实施方式中从机控制电机转动的过程如图2所示。当目标为角度时,使用整体过程中角度pid控制器内部嵌套着速度pid控制器,形成双闭环结构,这样可以使得电机的运行更加稳定。

为了实现主从机之间的相互通信,本实施方式采用lin总线进行通信,在主从机上都设有lin总线发射与接受器件;lin总线具有低成本,并且用极少的信号线即可实现国际标准iso9141规定,可以满足主从的需要等特点,在本实施方式中采用lin总线结构可以有效的利用资源,降低成本。

在实际使用中,例如机器人上一般存在多个电机,而机器人中主mcu的通信接口数量是有限的,因此使用一对一通信不理想,所以通过给电机分配地址来实现多机通信。主机向从机发送信息时,在数据帧中加入目标地址,只有从机发现地址与自己的地址匹配才会执行命令;同时还需要从电机得到实时角度和速度信息,为了避免冲突,选择的方法是主机向需要获取数据的从机发送请求,从机再发送对应的信息。

进而根据传输的数据的特点,本实施方式规定了特殊的数据帧格式:

首先,需要一个可以无歧义识别的结束标志,因为可能会发生串口线松动导致某个字节丢失的情况,如果没有这个特殊标志会导致之后的所有字节都无法识别,无法从错误中恢复。由于发送的数据中有较大的整数(0~35999),因此一个字节中的所有值(0~255)都已经被占用;本实施方式把某一个字节数值设为特殊字节后(记该字节数值为ctrl),如果数据中有一个字节出现了ctrl,就需要escape,类似于c语言printf()函数中的反斜杠,如果发送者发现在数据中出现了ctrl,就额外插入一个ctrl,并且规定ctrl后面跟的都为特殊命令,可以用来表明我们想让从机停在某一角度还是保持某一速度,或者是要请求数据等,

数据帧格式如图3所示,其中^表示ctrl,dst是目标地址命令,addr是地址数据,echo用来检测从机是否在线,sndr是发送地址命令,sel是请求数据命令,rspd是对echo的回应,dt表明发送的是角度还是速度,dl和dh是数据的低字节和高字节,end是结束命令;addr、dl、dh中如果出现ctrl需要插入额外的ctrl。

接收者使用状态机来对数据进行判断,图4为从机接收的状态机,主机接收类似;其中u\^表示除了ctrl之外的所有字节,状态3、4、5等用来检测数据中的ctrl,如果出现了没有列出的转移条件就说明传输出错,进入状态14直到出现结束标志^end恢复。

由于加入了echo测试从机是否在线的功能,从机在发送实时数据时可能又出现echo回复要发送,此处使用的方法是使用环形队列,新出现的数据始终加到队列末尾。开启第一个字节的发送后,cpu可以暂时处理别的工作,队列中的其他字节在mcu产生发送完成中断后发送,直到队列为空;如果在正在发送当前数据时出现echo回应要发送,只需加到队列末尾,而不用开启新的发送,发送完成中断处理函数会发完队列中的所有字节。

主机的控制流程如图5所示,主机在开机之后,首先检查的是从机连接情况,若无误则开始待机,准备目标的接收和来着从机的数据反馈,此处目标输入的优先级更加高;若有目标输入,则分析目标类型,并且将其打包通过传输协议发送至从机;若有数据反馈,则开启数据的接收,完毕之后回到待机状态。

如图6所示,从机的工作模式较为复杂,中断向量主要由两个方向:接收与发送;接收到来着主机的数据包后,对其进行解析,若是匹配,则分析其中的命令,否则继续处于接收状态;接收到的命令主要有控制指令和请求指令两类,控制指令又分为角度控制和速度控制,若收到这类信息,则将其送入对应的pid控制器,进入电机驱动模块;请求指令分为请求连接情况和请求电机数据,则分别获取对应数据,送入发送模块。

发送模块首先要检查当前是否处于发送状态,若是处于发送状态,则加入发送队列,否则开始发送。电机驱动模块在接收到控制指令后,利用来着容栅传感器的角度数据进行pid控制,用结果来修改寄存器,再通过对应的通道输出三相直流电压,对电机进行控制。

上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

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