单片机|电机控制开发


文章目录

  • 前言
  • 0.各电机介绍
    • (1).直流有刷电机
    • (2).舵机
    • (3).步进电机
    • (4).无刷直流电机
  • 1.PID算法及其参数整定
  • 2.编码器介绍及使用
  • 3.直流电机PID控制
    • (1).速度环控制实现
    • (2).电流环控制实现
    • (3).位置环控制实现
    • (4).多环控制实现
  • 4.步进电机PID控制
    • (1).速度环控制实现
    • (2).位置环控制实现
    • (3).位置速度双环控制实现
    • (4).梯形加减速实现
    • (5).S形加减速实现
    • (6).直线插补实现
    • (7).圆弧插补实现
  • 5.无刷电机速度环控制
  • 6.ST FOC MC SDK5.x电机控制软件框架
  • 7.X-CUBE-MCSDK安装使用

前言 野火,基于STM32硬件(步进电机,(伺服电机)、直流有刷电机,直流无刷电机,永磁同步电机PMSM,舵机)PID闭环、步进加减速、直线圆弧插补
0.各电机介绍 (1).直流有刷电机 其几个重要的参数:(在电机选型时我们需要考虑这些问题)
? 空载转速:正常工作电压下电机不带任何负载的转速(单位为 r/min(转/分))。空载转速由于没有反向力矩,所以输出功率和堵转情况不一样,该参数只是提供一个电机在规定电压下最大转速的参考。
? 空载电流:正常工作电压下电机不带任何负载的工作电流(单位 mA(毫安))。越好的电机,在空载时,该值越小。
? 负载转速:正常工作电压下电机带负载的转速。
? 负载力矩:正常工作电压下电机带负载的力矩(N·m(牛米))。
? 负载电流:负载电流是指电机拖动负载时实际检测到的定子电流数值。
? 堵转力矩:在电机受反向外力使其停止转动时的力矩。如果电机堵转现象经常出现,则会损坏电机,或烧坏驱动芯片。所以大家选电机时,这是除转速外要考虑的参数。堵转时间一长,电机温度上升的很快,这个值也会下降的很厉害。
? 堵转电流:在电机受反向外力使其停止转动时的电流,此时电流非常大,时间稍微就可能会烧毁电机,在实际使用时应尽量避免。
? 减速比:是指没有减速齿轮时转速与有减速齿轮时转速之比。
? 功率:般指的是它的额定功率(单位 W(瓦)),即在额定电压下能够长期正常运转的最大功率,也是指电动机在制造厂所规定的额定情况下运行时, 其输出端的机械功率。
控制电路原理设计:
单片机|电机控制开发
文章图片

L298n的H桥实现电路图:
单片机|电机控制开发
文章图片

pwm控制速度、方向
代码:主要包括pwm的初始化和占空比的改变
驱动板的电流电压采集
代码:
过载保护:
代码:
(2).舵机 按照舵机的控制电路可以分为:模拟舵机和数字舵机。模拟舵机和数字舵机的机械结构可以说是完全相同的,模拟舵机的控制电路为纯模拟电路,需要一直发送目标信号,才能转到指定的位置,响应速度较慢,无反应区较大;数字舵机内部控制电路则加上了微控制器,只需要发送一次目标信号,即可到达指定位置,速度比模拟舵机更快,无反应区也更小。
按照外部接口和舵机的控制方式,可分为:PWM 舵机和串行总线舵机。
工作原理(模拟舵机):
模拟舵机内部的控制驱动电路板从外界接收控制信号,经过处理后变为一个直流偏置电压,在控制板内部有一个基准电压,这个基准电压由电位器产生并反馈到控制板。将外部获得的直流偏置电压与电位器的电压进行比较获得电压差,并输出到电机驱动芯片驱动电机,电压差的正负决定电机的正反转,大小决定旋转的角度,电压差为 0 时,电机停止转动。
单片机|电机控制开发
文章图片

(从图中可以看到,舵机内部是闭环控制的,所以这一类电机实际上是一种位置(角度)伺服的简化版伺服电机,将工业伺服电机的三闭环控制简化成了只有一个位置闭环。)
其控制原理如图,随着pwm的脉宽,角度改变:
单片机|电机控制开发
文章图片

代码:
由上图得出其输入信号脉冲宽度为20ms,那我们要将其脉冲配置为20ms,比如在使用f103的情况下,TIM4的时钟为72M,那么配置:
#defineGENERAL_TIM_Period1000 #defineGENERAL_TIM_Prescaler1440

可得定时器时钟频率f=72/1440=50k,那么一个时钟为T=1/f = 0.00002s,周期为1000*0.00002s = 20ms。
舵机的脉冲宽度:0.5~2.5ms,所以占空配置为:0.5/20* GENERAL_TIM_Period ~ 2.5/20* GENERAL_TIM_Period
设置角度的函数如下:
/** * @brief设置舵机占空比 * @paramangle: 占空比,(0.5/20.0*PWM_PERIOD_COUNT 到 2.5/20.0*PWM_PERIOD_COUNT) * @retval 无 */ void set_steering_gear_dutyfactor(uint16_t dutyfactor) { #if 1 { /* 对超过范围的占空比进行边界处理 */ dutyfactor = 0.5/20.0*GENERAL_TIM_Period > dutyfactor ? 0.5/20.0*GENERAL_TIM_Period : dutyfactor; dutyfactor = 2.5/20.0*GENERAL_TIM_Period < dutyfactor ? 2.5/20.0*GENERAL_TIM_Period : dutyfactor; } #endif TIM_SetCompare3(TIM4, dutyfactor); }/** * @brief设置舵机角度 * @paramangle: 角度,(0 到 180(舵机为0°-180°)) * @retval 无 */ void set_steering_gear_angle(uint16_t angle_temp) { angle_temp = (0.5 + angle_temp / 180.0 * (2.5 - 0.5)) / 20.0 * GENERAL_TIM_Period; // 计算角度对应的占空比 set_steering_gear_dutyfactor(angle_temp); // 设置占空比 }

(3).步进电机 输出的角位移与输入的脉冲数成正比、转速与脉冲频率成正比。所以可用控制脉冲数量、频率及电动机各相绕组的通电顺序来控制步进电机的转动。
分类:
按相数:单相、二相、三相、四相、五相步进电机
按励磁方式:磁阻式、永磁式、混磁式
永磁式:PM,步距角3.5度居多
磁阻式:(反应式)采用软磁材料,一般是硅钢片,步距角可以达到1.2度,效率低
混合式:为以上两种的混合体,其步距角:二相一般1.8,三相1.2,五相0.72
举例:五线四相步进电机:也被称为单极性步进电机:电流方向固定,从其他地方汇集到公共端。
单片机|电机控制开发
文章图片

四线双极性:没有公共端,电流方向可以改变
单片机|电机控制开发
文章图片

工作原理:
单极性步进电机(分为共阴极、共阳极):
可以单相整步驱动(就是同一时间内只有一组线圈导通,只需要稍微分析一下就可以得出其运动方向(右手螺旋定则)):
单片机|电机控制开发
文章图片

也可以两项整步驱动(也叫四相四拍驱动方式):
单片机|电机控制开发
文章图片

我们可以将以上两种结合在一起,四相八拍驱动:(一个缺点:1,3,5,7拍的扭矩小于2,4,6,8拍)
单片机|电机控制开发
文章图片

技术指标:
技术指标
静态参数
?相数
? 拍数
? 步距角
? 定位转矩:电机在不通电状态下
? 静转矩
动态参数
? 步距角精度
? 失步:一般都是因负载 太大或者是频率过快。
? 失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误 差,采用细分驱动是不能解决的。
? 最大空载起动频率:在不加负载的情况下,能够直接起动的最大频率。
? 最大空载的运行频率:电机不带负载的最高转速频率。
? 运行转矩特性:电机的动态力矩取决于电机运行时的平均电流(而非静态电流),平均电流 越大,电机输出力矩越大,即电机的频率特性越硬。
【单片机|电机控制开发】主要特点
1.步进电机的精度大概为步距角的 3-5%,且不会积累
2.步进电机的外表允许的最高温度:一般步进电机会因外表温度过高而产生磁性减小,从而 会导致力矩较小,一般来说磁性材料的退磁点都在摄氏 130 度以上,有的甚至高达摄氏 200 度以上,所以步进电机外表温度在摄氏 80-90 度完全正常。
3.步进电机的转矩与速度成反比,速度越快力矩越小。
4.低速时步进电机可以正常启动,高速时不会启动,并伴有啸叫声。步进电机的空载启动频 率是固定的,如果高于这个频率电机不能被启动并且会产生丢步或者堵转。
步进电机的驱动:
需要驱动器
单片机|电机控制开发
文章图片

代码:pwm配置
(4).无刷直流电机 缺点:转矩小
无刷直流电机(BLDC,反电动势为梯形波)、永磁同步电机(PMSM,反电动势为正弦波)
参数:
额定电压:由工作环境决定
KV 值 :实际转速 =KV 值*工作电压
转矩与转速:最大电流和最大功率
槽极结构(N:槽数,P:极数)
铁芯极数(槽数)定子硅钢片的槽数量
磁钢极数(极数)转子上磁钢的数量
模型常见的内转子无刷电机结构有: 3N2P(有感电机常用)、12N4P(大部分内转子电机) 模型常见的外转子无刷电机结构有:9N6P、9N12P、12N8P、12N10P、12N14P、18N16P、24N20P。 模型用内转子无刷电机极数不高的原因: 目前内转子电机多用于减速使用,所以要求的转速都比 较高。电子转速 = 实际转速 * 电机极对数,电子控制器支持的最高电子转速往往都是一个定数,所以如果电机极对数太高的话,支持的最高电机转速就会下降,所以目前的内转子电机极数都是 4以内。
其他设计驱动需要的参数
定子电感:电动机静止时的定子绕组两端的电感。 定子电阻:在 20℃下电动机每相绕组的直流电阻。 反电动势系数:在规定条件下,电动机绕组开路时,单位转速在电枢绕组中所产生的线感应电动势值。
工作原理
无刷电机是带反馈电路的,每时每刻都需要获取转子的位置:
单片机|电机控制开发
文章图片

三相六臂全桥驱动电路驱动无刷电机:
单片机|电机控制开发
文章图片
在上图中导通 Q1 和 Q4,其他都不导通,那么电流将从 Q1 流经 U 相绕组,再从 V 相绕组流到 Q4。这样也就完成了上一节中的第一步,同理,依次导通 Q5Q4、Q5Q2、Q3Q2、Q3Q6 和 Q1Q6, 这也就完成了 6 拍工作方式。但是,单片机的引脚直接驱动 MOS 管还是不行的,所以这里需要 使用专用的 IC 来驱动 MOS 管。 我们再来思考一个问题,在想让一对 MOS 管导通时,是需要知道上一步导通的是哪两个 MOS 管,而且第一步中 MOS 管导通时转子的位置是我们自己规定,在实际使用中启动时转子的位置 却是未知的,因此,我们并不知道第一步应该导通哪两个 MOS 管,所以这里我们需要知道转子 的位置信息。但并不需要连续的位置信息,只需要知道换相点的位置即可。
获取转子位置一般有两种方法,一种是使用传感器(霍尔传感器:成本低,光栅编码器:精度高,旋转变压器:可靠性高),一种是不使用传感器(直接使用反电势来估计转子的位置)。
这里以霍尔传感器举例子。
(霍尔效应:当电流垂直于外磁场通过半导体时,载流子发生偏转,垂直于电流和磁场的方向会产生一附加电场,从而在半导体的两端产生电 势差,这一现象就是霍尔效应,这个电势差也被称为霍尔电势差。)
在 BLDC 中一般采用 3 个开关型霍尔传感器测量转子的位置,由其输出的 3 位二进制编码去控 制三相六臂全桥中的 6 个 MOS 管的导通实现换相。如果将一只霍尔传感器安装在靠近转子的 位置,当 N 极逐渐靠近霍尔传感器即磁感器达到一定值时,其输出是导通状态;当 N 极逐渐离 开霍尔传感器、磁感应逐渐小时,其输出仍然保持导通状态;只有磁场转变为 S 极便达到一定 值时,其输出才翻转为截止状态。在 S 和 N 交替变化下传感器输出波形占高、低电平各占 50%。 如果转子是一对极,则电机旋转一周霍尔传感器输出一个周期的电压波形,如果转子是两对极, 则输出两个周期的波形。
在直流无刷电机中一般把 3 个霍尔传感器按间隔 120 度或 60 度的圆周分布来安装,如果按间隔 120 度来安装,则 3 个霍尔传感器输出波形相差 120 度电度角,输出信号中高、低电平各占 180 度电度角。如果规定输出信号高电平用“1”表示,低电平用“0”表示,则输出的三个信号可以 用三位二进制码表示,如下图所示。
单片机|电机控制开发
文章图片
单片机|电机控制开发
文章图片
转子每旋转一周可以输出 6 个不同的信号,这样正好可以满足我们条件。只要我们根据霍尔传感 器输出的值来导通 MOS 管即可。通常厂家也会给出真值表。一般有两个, 一个是对应顺时针旋 转,另一个对应的是逆时针旋转。配套电机的真值表如下。
单片机|电机控制开发
文章图片
单片机|电机控制开发
文章图片

控制
1.
速度公式:
V=(Ua-IaRa)/CE?
影响电机转速的三个参量分别是电枢回路的总电阻 Ra, 调整电枢绕组的供电电压 Ua 或者调整励磁磁通 ?。也就是说,想要改变电机的转速,必须对以上三个参量进行调整。
? Ua——电机定子绕组的实际电压大小
? Ia——电机绕组内通过的实际电流大小
? Ra——电路系统中包含电机的回路电阻大小
? CE——电势系数
? ?——励磁磁通
一般通过改变电压来调速,可通过pwm来调电压,以上讲了三相六臂桥,我们只需要对摩斯管输出pwm波即可改变速度,其中硬件连线如下:
单片机|电机控制开发
文章图片

单片机|电机控制开发
文章图片

6个摩斯管作为输出,HU、HV、HW是霍尔传感器检测到的数据,作为输入。
改变速度有以下几种方法:
单片机|电机控制开发
文章图片
单片机|电机控制开发
文章图片

使用TIM5来触发TIM8:
#define TIM_COM_TS_ITRxTIM_TS_ITR3// 内部触发配置(TIM1->ITR3->TIM4)

单片机|电机控制开发
文章图片
直流无刷驱动板温度电流电压采集
使用ADC来采集
1.PID算法及其参数整定 在文章PID控制理论中有详细说明。
2.编码器介绍及使用 分类
按检测原理分:
单片机|电机控制开发
文章图片

按编码类型分:
增量式:
绝对式:能输出电机的绝对位置
混合式
旋转式光电编码器例子:
单片机|电机控制开发
文章图片
单片机|电机控制开发
文章图片

增量式编码器的倍频技术
增量式编码器输出的脉冲波形信号形式常见的有两种:
1.占空比 50% 的方波,通道 A 和 B 相位差为 90°;
2. 正弦波这类模拟信号,通道 A 和 B 相位差同样为 90°。
对于方波信号,如果把两个通道组合起来看的话,可以发现 A 和 B 各自的上升沿和下降沿都能计数,至少在 1/2 个原始方波周期内就可以计数一次,最多 1/4 个原始方波周期。这样计数频率就是原始方波信号的 2 倍或 4 倍。
单片机|电机控制开发
文章图片

常用测速方法
3.直流电机PID控制 (1).速度环控制实现 (2).电流环控制实现 (3).位置环控制实现 (4).多环控制实现 4.步进电机PID控制 (1).速度环控制实现 (2).位置环控制实现 (3).位置速度双环控制实现 (4).梯形加减速实现 (5).S形加减速实现 (6).直线插补实现 (7).圆弧插补实现 5.无刷电机速度环控制 6.ST FOC MC SDK5.x电机控制软件框架 7.X-CUBE-MCSDK安装使用

    推荐阅读