文章目录
- 前言
- 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(m安)。电机越好,空载时值越小。 ? 负载转速:电机在正常工作电压下带负载的转速。 ? 负载力矩:正常工作电压下电机带负载力矩(N·m(牛米)。 ? 负载电流:负载电流是指电机拖动负载时实际检测到的定子电流值。 ? 堵塞扭矩:当电机反向外力停止旋转时。如果经常出现电机堵塞现象,则会损坏电机或烧毁驱动芯片。因此,在选择电机时,这是除速度外应考虑的参数。随着时间的推移,电机温度迅速上升,这个值也会大幅下降。 ? 堵塞电流:当电机由反向外力停止转动时,电流非常大,电机可能在稍微时间内燃烧,应尽量避免实际使用。 ? 减速比:指无减速齿轮时转速与有减速齿轮时转速之比。 ? 功率:一般指其额定功率(单位) W(瓦),即在额定电压下长期正常运行的最大功率,也是指电机在制造商规定的额定条件下运行时, 输出端的机械功率。
L298nH桥实现电路图: 代码:主要包括pwm空比的初始化和变化
代码:
代码:
(2).舵机
可分为:模拟舵机和数字舵机。模拟舵机和数字舵机的机械结构可以说是完全相同的。模拟舵机的控制电路为纯模拟电路,需要发送目标信号才能转移到指定位置,响应速度慢,无响应区大;数字舵机内部控制电路增加微控制器,到达指定位置,速度比模拟舵机快,无响应区小。 根据外:PWM 舵机和串行总线舵机。 工作原理(模拟舵机): 模拟舵机内部的控制驱动电路板从外界接收控制信号,经过处理后变为一个直流偏置电压,在控制板内部有一个基准电压,这个基准电压由电位器产生并反馈到控制板。将外部直流偏置电压与电位器电压进行比较,输出到电机驱动芯片驱动电机。电压差的正负决定了电机的正反转和旋转角度,电压差为 0 时,电机停止转动。
(从图中可以看出,舵机内部是闭环控制的,所以这种电机实际上是位置(角度)伺服的简化伺服电机,将工业伺服电机的三个闭环控制简化为只有一个位置的闭环。 其控制原理如图所示pwm角度变化:
输入信号脉冲宽度为20ms,然后我们必须将脉冲配置为20ms,比如在使用f103的情况下,TIM4的时钟为72M,那么配置:
#define GENERAL_TIM_Period 1000 #define GENERAL_TIM_Prescaler 1440
可获得定时器时钟频率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 设置舵机占空比 * @param angle: 占空比,(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 < duyfactor ? 2.5/20.0*GENERAL_TIM_Period : dutyfactor;
}
#endif
TIM_SetCompare3(TIM4, dutyfactor);
}
/** * @brief 设置舵机角度 * @param angle: 角度,(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_ITRx TIM_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 倍。