电机控制开发


前言

野火,基于STM32硬件(步进电机,(伺服电机)、直流有刷电机,直流无刷电机,永磁同步电机PMSM,舵机)PID闭环、步进加减速、直线圆弧插补


0.各电机介绍

(1).直流有刷电机

其几个重要的参数:(在电机选型时我们需要考虑这些问题)
• 空载转速:正常工作电压下电机不带任何负载的转速(单位为 r/min(转/分))。空载转速由于没有反向力矩,所以输出功率和堵转情况不一样,该参数只是提供一个电机在规定电压下最大转速的参考。
• 空载电流:正常工作电压下电机不带任何负载的工作电流(单位 mA(毫安))。越好的电机,在空载时,该值越小。
• 负载转速:正常工作电压下电机带负载的转速。
• 负载力矩:正常工作电压下电机带负载的力矩(N·m(牛米))。
• 负载电流:负载电流是指电机拖动负载时实际检测到的定子电流数值。
• 堵转力矩:在电机受反向外力使其停止转动时的力矩。如果电机堵转现象经常出现,则会损坏电机,或烧坏驱动芯片。所以大家选电机时,这是除转速外要考虑的参数。堵转时间一长,电机温度上升的很快,这个值也会下降的很厉害。
• 堵转电流:在电机受反向外力使其停止转动时的电流,此时电流非常大,时间稍微就可能会烧毁电机,在实际使用时应尽量避免。
• 减速比:是指没有减速齿轮时转速与有减速齿轮时转速之比。
• 功率:般指的是它的额定功率(单位 W(瓦)),即在额定电压下能够长期正常运转的最大功率,也是指电动机在制造厂所规定的额定情况下运行时, 其输出端的机械功率。

控制电路原理设计:

L298n的H桥实现电路图:

pwm控制速度、方向
代码:主要包括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 < dutyfactor ? 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 倍。
在这里插入图片描述
常用测速方法

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安装使用

  • 0
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: x-cube-mcsdk-ful 5.4.4 是针对物联网设备的软件开发工具包(SDK)。该SDK由STMicroelectronics公司开发,用于帮助开发人员快速构建物联网设备应用程序。 x-cube-mcsdk-ful 5.4.4 提供了丰富的功能和特性,以支持物联网设备的连接、通信和数据管理。它包含了多种协议和协议栈,如MQTT、CoAP、HTTP等,能够满足不同物联网应用场景的需求。 该SDK还提供了丰富的API和例程,使开发人员可以快速集成和使用不同的传感器、执行器和网络接口。通过这些API和例程,开发人员可以轻松地访问和控制物联网设备的各种功能。 此外,x-cube-mcsdk-ful 5.4.4 还提供了云端连接和数据管理的功能。它与云平台集成并支持云端数据存储、远程升级和配置管理等功能。开发人员可以通过SDK提供的接口和功能,将设备数据传输到云端,并实现远程监控和控制。 总而言之,x-cube-mcsdk-ful 5.4.4 是一种功能强大的物联网设备开发工具包,提供了丰富的功能和特性,帮助开发人员快速构建物联网应用程序,并与云平台进行连接和数据管理。 ### 回答2: x-cube-mcsdk-ful 5.4.4是针对STMicroelectronics的X-CUBE-MCSDK软件套件的版本5.4.4。该软件套件用于开发具有驱动和控制功能的嵌入式系统,此软件套件主要面向电机控制应用。 X-CUBE-MCSDK是一个全面的软件套件,为用户提供了从电机驱动器和控制器硬件平台到现场总线通信和图形用户界面的各种软件组件。通过使用这个软件套件,用户可以快速开发电机控制应用,并且可以轻松地适应各种不同的硬件平台和环境。 在版本5.4.4中,X-CUBE-MCSDK引入了一些新的功能和改进。这些改进可以进一步提高电机驱动和控制的性能和效率。另外,版本5.4.4还修复了一些已知的问题和错误,以增强软件的稳定性和可靠性。 通过使用x-cube-mcsdk-ful 5.4.4,开发人员可以更轻松地实现高性能的电机控制应用。这个软件套件提供了许多有用的工具和函数,可以帮助开发人员实现电机驱动和控制的各种功能。此外,该软件套件还提供了详细的文档和示例代码,以帮助开发人员更好地理解和使用软件。 总之,x-cube-mcsdk-ful 5.4.4是一个功能强大的软件套件,适用于开发各种电机控制应用。它提供了丰富的功能和工具,能够帮助开发人员快速、高效地实现电机驱动和控制的各种需求。 ### 回答3: x-cube-mcsdk-ful 5.4.4是一个软件开发工具,它提供了一套用于开发物联网应用程序的框架和工具。这个版本号为5.4.4表示这是该工具的第五个大版本,其中的4指的是小的更新版本号。该工具允许开发人员轻松地创建与云端连接的物联网设备,并使用云服务进行数据传输和控制。 在x-cube-mcsdk-ful 5.4.4中,开发人员可以使用各种编程语言和硬件平台,如ARM和STM32系列微控制器。该工具提供了一系列丰富的功能,包括设备注册、数据采集和传输、云服务接口等。 通过x-cube-mcsdk-ful 5.4.4,开发人员可以实现各种物联网应用场景,如智能家居、工业自动化和智能城市。其强大的功能和易于使用的界面使开发人员能够更加高效地开发和调试物联网设备。 x-cube-mcsdk-ful 5.4.4还提供了周到的技术支持和文档说明,开发人员可以随时查阅以解决问题和获取支持。这使开发人员能够更好地理解该工具的使用方法和功能,从而更加轻松地进行物联网应用程序的开发。 总的来说,x-cube-mcsdk-ful 5.4.4是一个强大而灵活的物联网开发工具,它为开发人员提供了丰富的功能和简化的开发流程,使他们能够更加高效地开发物联网应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值