
【MPS机器人挑战赛作品】基于STM32G4的FOC驱动学习板
简介
使用STM32G4+MPS公司的MP6539GF-Z/GV-Z设计的一款简单FOC驱动,其功能性强大,学习易上手。
简介:使用STM32G4+MPS公司的MP6539GF-Z/GV-Z设计的一款简单FOC驱动,其功能性强大,学习易上手。开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
目 录
第一章 绪论
1.1课题研究背景和意义
背景:近年来,人形机器人得到了飞速的发展,应用场景逐渐走向现实世界。为了适应复杂场景和任务需求,对人形机器人的驱动部件提出了新的要求,其中就需要关节电机具有响应速度快、控制精度高、功率密度大的要求,并且其性能直接影响机器人的整体表现。因此本设计的电机驱动器,在硬件方面提高功率密度;软件方面采用FOC算法、具有快速响应的软件架构,用来驱动关节电机实现大功率、高精度、快响应的性能指标。
意义:大功率的人形机器人关节FOC电机驱动器,能够为关节电机提供快响应、高精度、大功率的控制性能。关节电机的高精度控制,能够让人形机器人的末端执行控制精度更高,执行更为精细的任务,如装配、手术等。大功率的控制能为电机提供更大的力矩,提高负载能力从而胜任高强度的任务,如搬运重物、攀爬等。通过软件架构提高系统的响应速度,能够快速响应外部环境的变化或任务需求的调整,使机器人能够在复杂场景中实现快速启停、变向或负载调整,对于需要高机动性和灵活性的应用至关重要,如救援、运动等。因此,本设计保证机器人本体的稳定性,促进人形机器人适应更多不同的复杂场景。
除此之外,本设计还提供了电压检测、电流检测、温度检测的主动安全检测功能。实时检测电压的波动范围,保障系统工作在合理的电压范围内,避免因为欠压和过压导致电路异常;检测电流除了可以提供精准的电机控制外,还可以提供过载保护、短路提醒;在长时间高负载运行时容易发热,温度检测可以实时监控电机温度,防止因过热导致的绝缘材料老化、磁体退磁或电子元件损坏。通过主动安全检测能够提高系统的可靠性,实时检测数据能够避免突发故障的产生,降低维护成本。本设计还支持通过CAN通信方式对多电机的级联,人形机器人具有多自由度,级联设计可以控制多个关节电机协同工作,实现复杂的多自由度运动。例如,机器人手臂的抓取动作需要肩、肘、腕等多个关节的精确配合,级联控制可以确保这些关节的动作协调一致和动作的流畅性。
随着人形机器人的发展,对上游产业提出了新的要求,包括电机本体、电机驱动等。大功率关节电机驱动的设计也会反促进人形机器人在不同领域执行更多任务。
1.2国内外研究现状
1.2.1国外研究
美国的波士顿动力人形机器人Atlas最初采用的液压驱动,具有较强的机动灵活的运动表现,能够实现跨越障碍、后空翻等动作,但是液压驱动的成本居高不下,无法量产。在2024年4月波士顿动力宣布液压Atlas退出历史舞台,进入电动机器人时代。特斯拉Optimus直接采用的电驱动方案,成本更低、控制更加精准[1]。但是通过电驱动提供高负载的性能,对电机本体以及驱动都提出了新的要求。Prasanna[2]团队利用PID控制器研究了一种无刷直流电机的场定向控制方法。该方法的目的在于通过空间矢量脉宽调制技术来降低供电电流的全谐波失真。通过该技术在逆变器中实现固态开关所能达到的平衡开关频率,提高了控制器的可靠性。该研究给本设计提供了很好的思路,对本系统SVPWM的改良和电机控制器的设计提供了关键的技术引导。R. Lazar在电机驱动器中使用模型预测控制(MPC)来降低开关损耗和电机噪声[3]。通过优化控制策略,显著提高了系统的动态性能和能效。
1.2.2国内研究
国内起步较晚,但随着机器人的发展与工业体系的完善,国内对关节电机的本体研究和FOC技术的研究也都有一定的突破和进展。尹洪桥[4]团队利用单神经元神经网络对无刷直流电机控制系统进行了深入的探究。该神经网络主要用于改善速度环的 PID算法,从而得到更短的电压爬升时间,尽可能少的超调量和更优秀的控制性能。但神经网络对控制芯片的算力有较高的要求,所以该方案可能会带来较大的成本增量。宇树科技是国内领先的人形机器人本体设计公司,已经成为全球首家人形机器人量产的公司。宇树科技自研电机与控制单元集成一体化设计,具有高能效、高可靠性、更高的扭矩密度。
随着人形机器人的发展,大功率的关节电机驱动设计在国内外都有着不同的发展。国内主要研究多关节协调、高能效驱动、热量管理方面;国外主要研究控制算法的优化、电机与驱动的系统集成。随着国内的人形机器人的发展和政策的支持,大功率的人形机器人关节FOC设计会不断进步发展,为机器人技术的进步和应用提供新的机遇。
1.3本文研究内容
大功率人形机器人关节FOC设计涉及到电机学、电力电子、自动控制、嵌入式系统、PCB设计等多学科内容。其主要功能有对电机进行力矩、位置、速度控制;支持宽电压12-63V输入、峰值相电流为100A、峰值功率达1200W、通信方式FD-CAN或RS-422并支持级联。具体内容有如下几个部分:
第一章主要介绍本设计的研究背景和意义,解决当前人形机器人本体的痛点,拓宽人形机器人的多场景应用。通过介绍国内与国外的头部企业与科研院所的发展现状和研究内容,表明了本设计的重要性。最后对本设计的每个进行概括总结。
第二章是本设计的基础理论部分,介绍当前主流的关节电机的基本结构和数学模型以及控制方法。介绍BLDC电机基本数学模型三相静止坐标系和两项旋转坐标系之间的转换。介绍SVPWM空间矢量脉宽调试技术以及控制策略。
第三章从原理图和PCB两个方面进行介绍。原理图主要分为电源部分、主控部分、栅极驱动部分、MOSFET部分、电压电流以及温度检测部分、通信部分等。PCB设计主要考虑大功率的处理、EMC、热管理设计、器件的布局与PCB形状、信号完整性设计、接口与测试点等。
第四章从各模块驱动程序、FOC算法的实现、程序逻辑框架三个方面介绍。
驱动程序包括通过SPI通信对栅极驱动配置、对编码器数据的读取、通过ADC对电压和温度数据的读取、通过电流重构算法获取相电压等驱动程序;FOC算法实现对电机的位置、速度、力矩进行控制;通过重新构建程序架构想,实现对电机的快速响应。
第五章在功能测试和工艺流程介绍了首次调试的流程包括焊接流程和功能测试的方法。工艺流程介绍了在样板测试和小批量的生产时贴片以及焊接流程。实现在不同功率下的测试结果,验证系统的可靠性。
第六章为总结与展望,对本设计的内容进行概括总结,并对未来发展做了进一步的系统性展望。
第二章 关节电机数学模型和控制方法
2.1关节电机的结构组成
常见关节电机的主要结构由电机本体、减速器、编码器、驱动板以及电机外壳组成。电机本体是关节电机的核心部分,常用电机类型有直流无刷电机和永磁同步电机。减速器用于降低电机转速并增加输出扭矩,常见类型有行星减速器、谐波减速器[5]。编码器采用磁编码器,通过磁传感器检测磁环的磁场变化。驱动板使用控制电机本体,使关节电机输出预设位置、速度、力矩[6]。通常采用FOC控制。关节电机的构成如下图1所示。

图 1 关节电机结构图
2.2关节电机的电机本体类型
电机本体通常采用直流无刷(BLDC)电机和永磁同步电机(PMSM)。BLDC电机的反向电动势为方形波,传统上采用六步换向(方波驱动),但也可以使用 FOC算法,BLDC电机适合高转速应用。PMSM反向电动势为正弦波,通过FOC算法控制,转矩波动小,适合高精度应用。因此本设计以PMSM作为电机本体进行数学模型分析。将从PMSM的结构介绍、永磁同步电机数学模型、SVPWM算法五个方面介绍。
2.2 永磁同步电机的结构介绍
永磁同步电机主要定子、转子、外壳组成。定子是电机的静止部分,由定子铁芯和定子绕组组成。转子是电机的旋转部分,由永磁体和铁芯组成。又根据永磁体的安装位置,转子可以分为表面贴装式和内置式。表面贴装式是将永磁体安装在转子表面,机械强度较低,在高速运行时,可能会因为离心力的影响导致永磁体脱落的风险,因此表面贴装式不适合高转速;内置式是将永磁体嵌入到转子内部,机械结构坚固,适合高转速。外壳可以保护电机内部结构,并提供机械支撑,外壳通常为金属材料,具有良好的散热性[7]。
2.3 永磁同步电机的转动原理
电机的结构有定子和转子组成,转子是由永磁体构成,一般由两对及两对以上的磁极,在建模时将简化为一对磁极。定子则是有三相绕组。PMSM的结构图如图2所示。

图 2 结构图
永磁同步电机的工作原理是在定子旋转磁场和转子旋转磁场的相互作用。将正弦电流以三相相差120°接入定子,其表达式为:
(1)
其中,、、为三相绕组的电流;I电流的有效值;为电流的角频率,t为时间。
每一相的绕组通入交变的电流,就会在定子中产生磁动势。三相绕组的磁动势的表达式为:
(2)
其中,、、为三相绕组的磁动势;为每相绕组基波磁动势的幅值,为定子绕组的空间位置。
将三相绕组的磁动势合成,得到合成磁动势:
(3)
通过以上公式可以看出电机的工作原理,当想三相绕组接入三相正弦相差120°的电流,产生旋转磁场,使得转子在旋转磁场的作用下转动。当旋转磁场与定子同步旋转,但始终相差一定角度,转速相同。通过编码器获取转子的位置,进一步推导出速度,通过控制三相绕组的电流给定,控制电机转动。
2.4 永磁同步电机的数学模型
在对永磁同步电机进行数学建模时,为了简化计算,通常会忽略对电机影响微弱的因素,主要忽略:磁路饱和、铁芯损耗、电机中的涡流以及磁滞损、温度对电机的电感和电阻以及其他参影响。定子三相绕组在空间上对称的情况下,在静止ABC坐标系、-两相静止坐标系、d-q旋转坐标系下的永磁同步电机数学模型[8]。
2.4.1 三相静止坐标系的模型
永磁同步电机三相绕组的电压平衡方程为:
(4)
定子绕组的磁链方程为:
(5)
(6)
其中,、、是每相绕组的自感,并且==;M为绕组之间的互感,并且均相等;为永磁体的磁链;是转子的电角度。
电磁转矩表达式为:
(7)
其中,为电机的极对数。
2.4.2 两相静止坐标系的数学模型
通过Clarke变化将三相静止坐标系变换到两相静止坐标系,将模型进行解耦,便于分析。在电机模型中,Clarke变换有等幅值变换和等功率变换。本设计以等幅值为例,对电机的磁链、电压进行分析。等幅值Clarke变化公式如下:
(8)
等幅值反Clarke变换如下:
(9)
永磁同步电机定子的电压方程:
(10)
通过化简最终得:
(11)
同理最终永磁同步电机定子绕组的磁链方程为:
(12)
电磁转矩方程为:
(13)
2.4.3两相旋转坐标系的模型
通过上文已经将三象限坐标系转化为了两相静止坐标系,大大的简化了控制难度,但是电机是在不停旋转的,所以需要进一步将两相静止坐标系下的模型,通过Park变换转化为两相旋转坐标系即d-q坐标系的数学模型。如下公式为Park变化公式。
(14)
Park反变化公式为:
(15)
两相旋转坐标系下的定子电压方程:
(16)
最终化简得:
(17)
两相旋转坐标的磁链方程:
(18)
最终化简得:
(19)
电磁转矩方程为:
(20)
2.3空间矢量脉宽调制SVPWM技术
在电机控制中的交流调制方法有两种,其中SPWM是将三角载波和对称的三相正弦调制波形比较生成PWM,是一种电压控制的方法。而SVPWM是通过控制三相逆变的MOSFET,按照一定的开关顺序,使相电流成正弦波,使电机的磁链轨迹近似圆形。SPWM的电压波形为正弦波,而SVPWM为马鞍波,使直流母线电压利用率得到很大提高。
2.3.1 SVPWM原理
三相逆变电路如下图所示,通过6个MOSFET按照一定的开关顺序,输出想要的电压矢量。SVPWM开关器件的开关次数要少于SPWM的1/3,母线电压的利用率提高15%,并且有很好的谐波抑制作用。

图 3 逆变电路
为电源的母线电压,为DC-link电容,、、为正弦变化为电压矢量,在ABC三相静止坐标系中的电压方程为:
(21)
式中,为相电压的幅值,为相电压的角频率。通过欧拉公式得到合成矢量。
(22)
有以上公式能得,在合成矢量进行匀速转动,三相坐标轴的投影便是三相正弦电压。三相逆变电路是由三个半桥电路组成,设定Sx(x=a、b、c)表示每个半桥的状态,其中1为上桥臂导通,0为下桥臂导通。如果两个桥臂同时导通则会发生断路,所以这种情况是禁止的。
(23)
Sa、S-b、Sc的三相输出组合一种有八种,其中有000和111的零矢量以及6个非零矢量。电机的相电压和开关函数之间的关系:
(24)
将Sx的八组开关状态代入关系方程得到相电压、线电压数值。如下表所示:
表1 八组开关状态
|
Sa |
S-b |
Sc |
矢量 |
U_AB |
U_BC |
U_CA |
U_AN |
U_BN |
U_CN |
|
0 |
0 |
0 |
U0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
1 |
0 |
0 |
U4 |
U_dc |
0 |
-U_dc |
2U_dc/3 |
-U_dc/3 |
-U_dc/3 |
|
1 |
1 |
0 |
U6 |
0 |
U_dc |
-U_dc |
U_dc/3 |
U_dc/3 |
-2U_dc/3 |
|
0 |
1 |
0 |
U2 |
-U_dc |
U_dc |
0 |
-U_dc/3 |
2U_dc/3 |
-U_dc/3 |
|
0 |
1 |
1 |
U3 |
-U_dc |
0 |
U_dc |
-2U_dc/3 |
U_dc/3 |
U_dc/3 |
|
0 |
0 |
1 |
U1 |
0 |
-U_dc |
U_dc |
-U_dc/3 |
-U_dc/3 |
2U_dc/3 |
|
1 |
0 |
1 |
U5 |
U_dc |
-U_dc |
0 |
U_dc/3 |
-2U_dc/3 |
U_dc/3 |
|
1 |
1 |
1 |
U7 |
0 |
0 |
0 |
0 |
0 |
0 |

图 4电压空间矢量图
根据电压空间矢量图可以看出,图中的六个非零矢量U1~ U6通过MOSFET管的开关状态输出得到,六个空间矢量幅值相同,U0和U7在图中的中心位置。六个空间矢量将复平面分成了六个扇区。相邻的两个电压矢量的同矢量合成每个扇区内的电压矢量。如下式所示:
(25)
也能表示为:
(26)
其中,为期望输出电压,T为PWM载波采样周期,利用时间等效原理来控制两个相邻矢量的作用时间,用零矢量补充空余的时间,从而合成期望输出的电压。
使空间电压矢量在每个周期增加一定的角度,因为每个矢量都可以通过两个矢量进行合成,因此就能让电压矢量在空间中旋转,从而完成空间电压矢量的脉宽调制。
2.3.2 SVPWM扇区开关切换顺序
控制系统输出需要的矢量电压,并且按照一定的角频率在空间中旋转当旋转到矢量图的某一个扇区中,系统计算该区间所需要的电压空间矢量。六个扇区的开关切换顺序如下表所示:
表2 扇区开关切换顺序
|
Uref 所在的位置 |
开关切换顺序 |
|
Ⅰ区(0°≤θ≤60°) |
…0-4-6-7-7-6-4-0… |
|
Ⅱ区(60°≤θ≤120°) |
…0-2-6-7-7-6-2-0… |
|
Ⅲ区(120°≤θ≤180°) |
…0-2-3-7-7-3-2-0… |
|
Ⅳ区(180°≤θ≤240°) |
…0-1-3-7-7-3-1-0… |
|
Ⅴ区(240°≤θ≤300°) |
…0-1-5-7-7-5-1-0… |
|
Ⅵ区(300°≤θ≤360°) |
…0-4-5-7-7-5-4-0… |
第三章 硬件设计
本文的硬件设计包括原理图设计和PCB设计,利用Altium Designer软件设计。其中原理图设计包括电源部分、主控部分、栅极驱动部分、三相逆变电路、电压电流以及温度采样电路、通信以及接口部分。在PCB设计考虑器件布局、功率设计、信号完整性、板型结构兼容等等。
3.1原理图设计
在原理图设计中,主要包括电源部分、主控部分、栅极驱动部分、逆变电路、母线电压电流和温度检测以及通信部分等组成[9]。
3.1.1 电源部分
在大功率的关节电机驱动中,通常需要宽范围的电压输入。本设计的电源部分包括12-63V转5V、5V转3.3V。其中12-63V转5V采用电源芯片型号为LMR51610XDBVR,内部采用同步BUCK电压拓扑,开关频率为400KHZ,并且支持1A电流输出。电源原理图如下图所示,在电源的输入端和输出端均采用不同大小的电容滤除高低频不同频段的杂波。输出电压的设置的公式为XXX公式。公式中R2和R3如原理图所示、VOUT为输出电压5V、VFER为芯片内部0.8V的精密基准电压。
(27)

图5 12-63V转5V原理图
5V转3.3V由于压差较低,需要的电流较小,所以采用低压差线性稳压器(LDO)的电源方案。LDO具有体积小、电路简单、精度高、纹波小等优点,本设计采用的LDO型号为TPSPX3819M5-L-3-3。电路如下图所示,首先将输入的5V电压通过电容和磁珠进行滤波之后接入电源芯片的VIN引脚,VOUT引脚输出3.3V电压并通过电容滤波。

图6 5V转3.3V
3.1.2 主控部分
主控部分包括微型控制单元(MCU)、下载电路、外部晶振、BOOT电路等。MCU选用STM32G474RBT6,内核为Arm® Cortex®-M4,频率可达170M,具有单精度浮点单元 (FPU),支持所有 Arm 单精度数据处理指令和所有数据类型。它还实现了一整套 DSP指令和内存保护单元 (MPU),增强了应用程序的安全性。如图所示为MCU电源的供电部分,对于普通供电引脚采用不同容值的电容滤除高低频的杂波;对于参考参考电压以及敏感电压的引脚经过磁珠之后再经过电容滤波之后接入MCU电源的引脚上。

图7 MCU供电电路
MCU一共有64的引脚,其中用到的引脚功能有PWM输出、ADC采集、串口通信、SPI通信、普通GPIO等。下图为用到的引脚连接图。

图8 引脚连接
MCU的核心电路有复位电路、外部晶振电路、BOOT选择、下载电路等。STM32的复位条件需要在复位引脚有低于0.8V的电压,持续时间为100ns便能够复位,复位电路如图9所示。晶振为MCU提供最基本的时钟信号,由于内置的晶振容易产生温飘、精度不高,因此本设计采用外部8M晶振,晶振电路如图10所示。MCU的启动时,BOOT0管脚和nBOOT1选项位用来选择以下三种启动选项之一:从用户Flash启动;从系统存储器system memory启动;从嵌入的SRAM启动。本设计选择将BOOT0置低电平,从用户Flash启动。具体电路如BOOT图所示:

图9 复位电路 图10 晶振电路 图11 BOOT选项
3.1.3 栅极驱动
在大功率逆变电路中,由于流过的电流很大,为了让MOSFET的内阻尽量小,通过会是导通时的Vgs在允许范围内尽可能的高,所以通过将MCU的PWM信号通过栅极驱动器将信号进行放大,进而使得MOSFET的开关效率更高。栅极驱动器能够有效的屏蔽大功率的噪声,将功率部分与信号部分隔离。逆变电路由三个半桥组成,每个半桥的上下两个MOSFET同时导通会出现短路的情况,因此这种情况是避免的。但是MOSFET的导通和关闭的过程是需要时间的,所以上下两个MOSFET在开关的时候需要中间有空闲的时间,也被成为死区。栅极驱动器可以控制死区时间,有效的保护功率器件避免短路。
本设计采用的栅极驱动器为DRV8353FS,其采用智能门驱动(SGD)体系,优化了死区时间,通过MOSFET转速率控制提供了减少MEI的灵活性。驱动的峰值源电流可达1A,驱动电压为6-95V,控制方式为SPI通信。
在硬件设计中,电源输入为12-63V可以直接给芯片供电。本设计为节省主控引脚,采用PWM控制模式3x,在该模式下,INHx 引脚控制每个半桥并支持两种输出状态:低电平或高电平。INLx 引脚用于将半桥更改为高阻抗。因此只需要输出3路PMW即可。真值表如表3。
表3 模式3x真值表
|
INLx |
INHx |
GLx |
GHx |
SHx |
|
0 |
X |
L |
L |
高阻态 |
|
1 |
0 |
H |
L |
L |
|
1 |
1 |
L |
H |
H |
在CPH和CPL为电荷泵的开关节点,需要在两个引脚之间连接47nF电容,并且电容的耐压值一定为大于供电电压的1.5-3倍, SNA、SNB、SNC为分流放大器的输入端,连接到电流分流电阻的低侧。SOA、SOB、SOC为分流放大器的输出端,由于是低端采样,在大功率运行时GND的波动较大,因此需要将分流放大器的输出端进行低通滤波后再接入MCU的ADC引脚。SDO为串行数据输出以及nFAULT故障指示灯输出的引脚均为开漏输出需要在外部上拉电阻。低通滤波电路图12所示,DRV8353设计电路如图13所示。

图12 滤波电路 图13 栅极驱动器
3.1.4 逆变电路
逆变电路是将直流电转化为交流电,其电路是由3个半桥MOS电路组成,通过PWM技术将MOS管的开关转换为连续的正弦波,从而驱动电机转动。MOS管分为PMOS管和NMOS管,相比于PMOS管而言,NMOS是电子移动,PMOS是空穴移动,电子的迁移率要比空穴的迁移率要高,在同等尺寸和电压下,更容易形成电子沟道,因此NMOS具有阈值电压低、放电时间短、导通内阻小的优点。
本设计采用MOSFET型号为BSC028N06NS,VDS为60V、导通内阻RDS为2.8mΩ,峰值电流可达100A,VGS(th)为2.8V。满足系统设定的63V、100A的性能要求。由于应用于大功率场景,会出现电机急停和快速启动得到情况,因此本文设计了RC电路用于吸收电机急停出现的反向电动势;以及在母线电压上并联多个大容值的DC-link电容,能够为电机快速启动提供支撑的电压电流,电路图14所示。

图14 DC-link电容
MOSFET由于制造工艺的原因,会出现CGD、CGS、CDS寄生电容,当开关频率达到10KHZ以上,便显的尤为明显。输入输出之间的分布电容在反向放大的作用下,使得等效的输入电容值放大的效应成为米勒效应。由于米勒效应的影响,MOSFET栅极驱动过程中,会形成平台电压,引起开关时间变长,开关损耗增加。当导通时受到CGS的影响,会有瞬时的大电流,因此会出现振铃的现象,所以需要在栅极串联电阻。为了让MOSFET快速关断需要在栅极反向连接快恢复二极管。逆变电路如15图所示

图15 逆变电路
3.1.5 采样电路
本设计的采样电路包括母线电压、功率电路温度、相电流采集。由于母线电压较高,MCU的ADC采集范围为0-3.3V,所以需要通过电阻分压的方法,将母线的电压降低到0-3.3V的区间范围,电路图如图16所示。功率电路温度采用热敏电阻与电阻分压的方案,热敏电阻采用负温度系数电阻,通过ADC获取电压值并转化为热敏电阻的阻值,测温电路如图17所示。相电流的电流采样方法为I-V法,将电流转化为电压,再通过MCU的ADC进行采集,因为电流较大,所以需要的才采样电阻需要很小。本设计采用的电阻为0.5mΩ,电路如图18所示。

图16 母线电压采样 图17 测温电路 图18 电流采样电路
3.2 PCB设计
在PCB设计中,首先考虑元器件的布局,在传统布局为从电源输入到电压转化模块、MCU、栅极驱动器、逆变电路的顺序结构构成,具体如图19所示。

图19 传统元件布局
其缺点是逆变电路距离电源输入较远,这样会导致中间能量的损耗;由于功率变化较大,容易出现电磁干扰,影响到MCU信号部分。因此本设计提出了一种新的结构布局,将逆变电路靠近电源的输入端,将栅极驱动电路放置在MCU和逆变电路中间可以起到信号部分与功率部分的隔离,并且大大的缩减了电源距离逆变电路的长度。如图20所示。

图20 本设计元件布局
在系统中由逆变电路的功率部分和MCU控制信号部分组成,因此在PCB设计中需要将功率和信号进行分割,即将功率地和信号地通过0Ω电阻连接,减少功率对信号的影响,如图21为原理图设计。如图22所示,蓝色为铺铜的地,其中上面为逆变电路的功率地、下面为MCU以及栅极驱动的信号地,两者通过0Ω电阻连接。

图21 功率与信号隔离的原理图

图22 功率与信号隔离的PCB图
本设计为大功率,虽然MOSFET内阻很小,但是在电流的情况下依然会较大功耗,所以需要良好的散热条件。本设计采用的MOSFET的封装焊盘较大,所以在焊盘上打多个过孔,将热量从芯片的底部散热。并且本设计采用开窗的设计,有效的散热以及承受大电流的能力。
最终PCB设计如下图23和图24所示。

图23 PCB正面 图24 PCB反面
第四章 软件设计
4.1系统开发环境介绍
本设计的主控使用STM32G474RBT6,通过CubeMX和keil5开发。通过Cube MX配置主控的基本外设,生成Keil5的外设代码,最终通过Keil5来编辑、调试代码。
STM32 CubeMX是ST公司为了便于开发STM32MCU而推出的一款图形化开发工具,通过直观的图形界面为STM32的外设进行配置包括主频时钟、TIM、ADC等。并且通过创建、打开、保存项目,便于对项目的管理以及后期的维护。图25为CubeMX的界面。

图25 CubeMX界面
Keil5为嵌入式开发软件开发工具,提供了集成开发环境,包括编译器、调试器、仿真器等,用于开发基于ARM架构的嵌入式系统。因此不仅可以开发STM32还可以开发各类ARM架构的微控制器。Keil5支持多种编程语言,有C语言、C++以及汇编语言等;具有较强的调试(Debug)能力,有单步执行、断点调试、变量检测等,能够快速定位程序职位和问题所在。
本设计通过CubeMX创建项目、配置主频时钟、ADC和TIM等MCU外设。生成Keil5的C语言代码框架。使用Keil5开发芯片的底层驱动、FOC算法、整体功能逻辑。图26为Keil5界面。

图26 Keil5界面
4.2底层驱动程序
4.2.1栅极驱动配置
主控与DRV8353FS通过SPI协议进行通信,完成对DRV8353FS的器件配置、运行参数、读取诊断信息等。DRV8353FS对SPI输入数据中包括5为指令、11为数据。SPI输出数据由11位寄存器组成,前5为不用考虑位。
SPI的格式由1个读取或写入位(W0、B15)、4个地址位、11个数据位组成。如果写入命令需要将读取/写入位置0,读取指令则需要置1。本设计的主控与DRV8353芯片的通信速率为1.328Mbits/s、CPOL=0、CPHA=1。如表XXX和表XXX所示。SPI从器件时序图如图27所示。
表4 输入数据字格式
|
读/写 |
地址 |
数据 |
|||||||||||||
|
B15 |
B14 |
B13 |
B12 |
B11 |
B10 |
B9 |
B8 |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
|
W0 |
A3 |
A2 |
A1 |
A0 |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
表5 输出数据格
|
不用考虑位 |
数据 |
||||||||||||||
|
B15 |
B14 |
B13 |
B12 |
B11 |
B10 |
B9 |
B8 |
B7 |
B6 |
B5 |
B4 |
B3 |
B2 |
B1 |
B0 |
|
X |
X |
X |
X |
X |
D10 |
D9 |
D8 |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |

图27 DRV8353从机时序图
DRV8353的寄存器有:故障状态1、Vgs状态2、驱动器控制、栅极驱动HS、栅极驱动LS、OCP和CSA控制。故障状态1用于检测芯片的过流、欠压、过热等故障;故障状态2用于检测相电流的过流、MOSFET的驱动故障。驱动器还能配置PWM模式、栅极驱动电流、死区时间、电流检测的参数配置等。
对DRV8353的配置流程为首先对微控制器的SPI外设进行初始化,对DRV8353寄存器配置,读取DRV8353寄存器判断是否有故障报错,如果报错将会打印故障信息,否则将继续执行程序。图28为DRV8353配置流程图

图28 DRV8353配置流程图
4.2.2编码器配置
AS5047P编码器为14位绝对角度位置传感器,最高可测28Krpm转速并且动态误差为±0.2°,支持SPI通信。AS5047P有错误信息寄存器、对OTP存储器编程的寄存器、动态角度误差补偿的角度信息。
AS5047P支持SPI通信,采用CPOL=0、CPHA=1的模式,即在CSn的下降沿开始通信,在CSn的上升沿结束通信。在SCL的下降沿采样MOSI数据。数据格式为16位的命令帧和16位的数据帧组成。本设计的通信频率为5.3125Mbits/s。如图29为AS5047P的时序图。

图29 AS5047P时序图
SPI读取AS5047P角度数据的流程为,AS5047P上电后需要等待100ms之后发送有效指令和数据,通过定时器循环读取ANGLECOM寄存器的数据,经过PARD位的校验正确后转化为实际的转子角度,如果不正确则重新读取角度寄存器数据并校验。图30所示为AS5047P流程图。

图30 AS5047P流程图
通过编码器得到转子位置后,还需要对转子进行速度检测。其原理为对转子的位置进行关于时间的求导[10]。具体为公式28所示。
(28)
其中V为转子的转速、为上1ms时刻转子位置与当前时刻转子位置的差值,本设计为1ms计时。
4.2.3母线电压检测
STM32G474RBT6的ADC为逐次逼近型,分辨率为12位,最高的ADC时钟频率为36MHz,采样幅值为0-3.3V。本设计在母线电压以及温度检测中采用规则组的方式进行获取电压。
本设计母线电压采用电阻分压的方式,通过ADC读取两电阻之间的电压,通过基尔霍夫电压定律可知母线电压的数据。如公式29所示为ADC读取数据与母线电压的关系。
(29)
其中为母线电压,data为ADC读取的数据,为图17所示的两个分压电阻。
4.2.4温度检测
本设计热敏电阻采用25℃下47K的负温度系数电阻,精度公差为±5%,电阻的封装为0402。由于热敏电阻的变化不是呈线性变化,所以本设计在读取到ADC并且转化为电阻阻值后采用查找表的方法进行温度的转化。热敏电阻的阻值与ADC采集的数据之间的关系如公式30所示。
(30)
其中data1为ADC读取到的数据,、为图XXX所示的两个电阻。
查表法是用预存储数据代替实时计算的优化方案,将预存储的数据通过映射关系直接通过索引和插值的方法找的结果。本设计的温度表为每一度对应一个阻值,中间插值采用线性拟合进行温度。
4.2.5低通滤波算法
由于编码器受到电机机械抖动以及传输过程中的干扰影响,会出现高频波动的情况;关于相电流的干扰主要来自PWM开关噪声以及ADC采样的量化误差以及电源纹波。因此本设计采样软件低通滤波算法,滤除编码器以及相电流的高频干扰。
低通滤波是允许低频信号通过,衰减高频信号的处理方法。其基本原理公式为如公31所示。
(31)
其中a位于0-1之间系数,决定滤波器的截止频率以及滤波效果。当a较小的时候,上一时刻的权重较大,使得输出的更加平滑,但同时也会产生较大的相位延迟a的计算下公式所示:
(32)
其中为截止频率,为采样周期。如图为转子速度滤波前与滤波后的对比。


图35 转子速度滤波后
4.3FOC控制
4.3.1FOC控制框架

图36 FOC控制框图
通过上图36可以看出FOC的控制流程为采集Ia、Ib、Ic的电机三相电流,将三相电流通过Clark变换转化为Iapher和Ibeta,再将Iapher和Ibeta通过Park变化转换为Iq和Id,将Iq和Id与设定的参考Iq_ref和Id_re作差得到误差值,通过PI控制器,输出控制的电压Uq和Ud经过反Park变化得到Uapher和Ubeta,再将Uapher和Uβ合成电压的空间矢量,输入到SPWM进行调制,最后通过编码值控制MOSFET开关驱动电机[12]。
4.3.2PID控制
PID控制是通过比例、积分、微分三种控制的组合,有效的纠正被控对象的偏差,使其至稳定状态。比例部分能够快速响应误差减小静态偏差,积分用于消除稳态误差,微分能够预测误差趋势抑制超调和震荡。
离散化PID包括位置式PID和增量式PID。位置式的积分项需要累加所有历史误差,会引起积分饱和,微分项直接计算当前误差与上一时刻误差的差值,主要用于直接输出绝对控制量。增量式PID积分项仅依赖于当前误差,不易产生积分饱和,微分项需存储前两个时刻的误差,输出为增量需要累加上一个时刻的误差。位置式PID如公式XXX所示,增量式PID如公式XXX所示。
(33)
其中为第K次控制输出的,为第K次误差,为采样周期。
(34)
4.3.2电机闭环控制
在电机闭环控制中,主要是对电机的力矩、速度、位置进行控制。采用串级PID闭环控制,其中力矩为内环、速度为中间环、位置为外环。通过采集相电流通过Park和Clark变化得到Iq和Id,与预设Iq_ref和Id_re作差后通过PI控制器输出Ud和Uq控制实现力矩的闭环控制。速度控制是通过读取编码器,将转子位置信息转化为速度信息,经过低通滤波后与预设速度作差,通过PI控制输出Iq_ref变量,再经过力矩环的PI后进一步控制电机。位置环是通过获取编码器位置与预设位置作差后通过PI控制输出速度指令,经过速度PI控制后输Iq_ref再经过力矩的PI控制后控制电机。如下图为整体的闭环FOC框图。

图37 完整FOC闭环框图
本设计采用串级PID的控制方法,PI参数设置是通过试凑法,遵守先调内环、
再调中间环、最后调位置环的顺序;先调比例P,将I和D设置为0,将比例逐渐增大到系统震荡,记录临界震荡的比例增益Kcr,P则取0.5-0.8Kcr,然后在P的基础上调I,增大至消除静态误差,同时注意避免比分保护产生超调过大。
除此之外,本设计还将力矩、速度、位置的PI参数通过USART和FD-CAN的通过开放出来,通过这两种通信协议可以方便修改参数,用来适配各种不同种类电机在不同场景下的应用。
4.4整体功能逻辑
本设计的性能追求响应速度快、参数修改灵活、控制精准。所以本设计从底层驱动到FOC算法再到逻辑框架,均手写代码没有调用已有的库函数,以保证参数修改灵活、响应速度快,避免了库函数过度包装嵌套的情况。
本设计以串口和FD-CAN通信为框架,不同的指令对应不同功能标志位,当接受的对应指令后,便会使对应的标志位置一,执行对应的功能。指令包括:故障打印、电机参数打印、力矩控制、位置控制、速度控制、系统参数更改等功能[13]。
故障打印将通过串口和FD-CAN主动上报信息,当电机出现过压、欠压、过流、过温、驱动器故障等问题时,电机将会停止工作并上报信息。故障解除后便停止故障打印,软件自动将故障打印标志位清零。如下图38所示为故障打印流程图。

图38 故障打印流程图
当接收到通信协议发送的电机参数打印指令后,便将当前的母线电压、相电流、驱动板温度、工作模式、设定参数等信息上传至上位机。每接收到一次指令发送一次电机参数,避免连续发送使上位机出现数据接收压力。
将力矩、速度、位置的预设参数设置为全局变量,在通信协议接收函数中直接更改参数,这样极大的提高的响应速度。由于本设计采用串级PID的控制方法,所以在对速度预设参数时,也会提供对力矩最大值的预设;对位置预设参数时,也会提供对速度、力矩最大值的预设。因为电机只能运行一种模式,所以当选中其中一个模式的标志位置一时,其他模式将自动清零,防止发生冲突。
为了更加适配不同电机、适应不同场景,本设计为用户提供尽可能多的参数更改,包括过压、过流、过温的阈值修改、三个串级PID参数修改、电机的极对数等。当系统接收到修改指令时,会将电机的功能均置零,再将参数修改,避免修改时电机的突然变化,参数更新成功后会向上位机发送修改的指令,表示修改 成功。
第五章工艺流程与功能测试
5.1工艺流程
工艺流程主要是PCB制造、元器件选型、焊接调试。本设计驱动板将集成在关节电机内,所以PCB采用四层板设计尺寸小、集成度高,采用元器件封装极小。对于单板焊接难度较高。将在下文会详细介绍PCB焊接和测试。
在首次单板焊接时,采用“逐级焊测PDCA微循环”,其中Plan为模块化规划:按照从输入到输出、从电源到信号再到功率的顺序焊接,制定每个模块的焊接顺序和模块功能的测试;Do为顺序焊接,从12-63V转5V、5V转3.3V、主控最小系统核心板、栅极驱动器、MOSFET以及外围电路。电阻电容封装有0402、0603、2512;芯片有QFN、LQPF等均为贴片封装。本设计采用热风枪吹焊的方式进行贴片,首先将焊盘涂一层助焊剂,再涂一层锡,再涂一层助焊剂,将元器件贴在焊盘上,热风枪温度设置340℃、风速适中,将焊盘上的锡吹化,元器件便可以直接吸附在焊盘上了。Check焊完每个模块就立即测试,具体测试方法为12-63V转5V模块,在为电路板接入12-63V电压后通过万用表测量输出电压,检查是否为5V;5V转3.3V模块同样测量该模块的输出端是否为3.3V。主控最小核心系统的测试为利用DAP-link连接电脑,通过Keil5是否能够检测到单片机并是否能下载程序。栅极驱动为QFN封装焊接难度较高,测试时通过主控配置栅极驱动的参数,检测是否能够读取到返回数据。逆变电路的测试需要通过主控发出PWM通过示波器来检测逆变电路的U、V、W是否都有同样占空比的PWM波形。Act是当模块测试有异常时需要查找故障、重新补焊。容易出现的问题主要是主控芯片引脚是否有连锡,是否正确放置;栅极驱动器封装焊接难度高,当出现发热或者读取不到数据时需要重新焊接并补焊。

图39 PCB正面 图40 PCB背面
本设计经过4次PCB打板后,最终电源模块输出电压正常;主控核心系统烧录正常;栅极驱动器通信正常、输出波形正常;逆变电路的U、V、W波形正常。
5.2功能测试
功能测试与程序编写顺序一致,顺序依次是开环下的三相电压、电角度闭环的三相电流;力矩控制模式;速度控制模式;位置控制模式。通过调整合适的PID使得在干扰情况下能够及时达到预设值。
本设计的测试环境:
1、电机的参数:最大转速7800RPM、极对数10、最大电流17A、相电阻0.1R、KV值为650。
2、稳压电源参数:型号为MN-3010C、电压00.0-32.0V、电流0.00-10.20A、额定功率300W。
3、数据观测:VOFA-Plus上位机。
5.2.1三相电压电流测试
输出的三相电压为将占空比按照正弦规律调制,也称为马鞍形波形。下图的波形测试条件为开环SVPWM以40kHZ频率更新数据。

图41 三相电压波形
通过读取的编码器角度转化为电角度,实现SVPWM的控制。设置i_q=0.5、i_d=0;更新频率为40kHZ。电机旋转顺滑、通过图42可以看到三相电流为正弦波,达到预期值。

图42 三相电流波形
5.2.2力矩控制
力矩控制实际是对i_q和i_d的控制,通过获取到三相电流后经过Clark 和Park变化后得到实际的i_q通过PID控制达到预设的I_q。由于电流采样波动有一定噪声,所以在PID控制输出的实际电流会有一定波动。图43空载力矩环、图44在-238ms到-230ms为堵转时的电流、-203ms到-192ms为加入扰动后的电流变化。

图43 力矩控制

图44 扰动下的力矩控制
5.2.3速度控制
预设速度为50RPS,通过图45可以看出经过80ms左右调整达到目标值,然后在目标值附近不断稳定调整,误差为±2RPS。图46中-1328ms到-1260ms为电机堵转干扰,经过70ms左右的调整重新达到目标位置。

图45 速度控制

图46 干扰下的速度控制
5.2.4位置控制
预设位置为90°,换算弧度为1.57。一般位置控制的应用场景要求运动的流畅性,如果调节时间过快可能会出现机械振动的情况。因此本设计的位置控制通过PID调整为延长调节时间,无超调。图47为空载位置控制,调节时间在500ms左右,无超调。图48中-4000ms到-3600ms为扰动,经过400ms的调时间之后达到目标位置,并没有出现超调。

图47 位置控制

图48 扰动下的位置环
第六章 总结与展望
6.1总结
大功率人形机器人关节FOC的设计,完成了对硬件的原理图、PCB设计和软件的驱动、FOC算法、整体逻辑框架的设计。通过对工艺流程的不断优化,总结出一套“逐级焊测PDCA微循环”硬件焊接调试方案。现在对本设计的工作内容进行以下总结:
⑴参考了国内外不同的研究内容和参考文献,阐述了大功率关节电机的研究背景和目前国内外研究现状。阐述了研究大功率人形机器人关节电机驱动的重要意义。
⑵介绍了关节电机的结构组成,对关节电机的本体选型进行了分析。对PMSM数学建模以及控制方法的介绍,包括Park、Clarke变化、SVPWM的介绍。
⑶硬件设计主要是对元器件选型、原理图的设计、PCB的绘制。电机驱动的主要模块包括电源模块、主控、栅极驱动器、逆变电路、测量电路。PCB采用四层板设计,芯片封装小,集成度高。
⑷软件设计首先是对底层驱动的开发包括SPI通信的栅极驱动器DRV8353、编码器AS5047;微控制器的ADC、TIM、PWM等外设的设置。然后是对FOC算法的编写,包括Park变化、Clarke变化、SVPWM、PID算法等。最后是整体逻辑框架的编写。
⑸工艺流程主要是对元器件焊接、模块功能的调试流程和方法。功能验证包括力矩控制、速度控制、位置控制,母线电压、板载温度的检测、通信方式控制等功能。
6.2展望
6.2.1本设计的优化
本设计的硬件方面在元器件选型方面可以考虑微控制器、栅极驱动器、MOSFET的国产化以确保货源稳定和降低成本。电路的优化有吸收电机反向电动势的制动电阻等,如考虑成本可采用单电阻采样,如考虑电路的采样精度可采用高端采样,直接采集三相的电流采用高共模抑制比的运放放大。
本文的软件设计可以在电流环使用自适应PID以及限制积分项积累,防止积分饱和。速度和位置通过引入滑膜观测器、龙伯格观测器、高频注入等观测器优化电机控制。增加无传感器FOC功能,采用高频脉冲注入、磁链积分法检测初始位置。
6.2.2新系统的设计
在当前市场主流的FOC方案的普遍局限性有算法闭源、代码移植复杂、动态调整性差。因此在本设计的基础上提出了一套全软件的BS_FOC方案,即基于STM32的通用型FOC软件系统。该系统将会全面开源。
这是一套完全不依赖于硬件的全软件系统,该系统通过USART或FD-CAN的通信方式对该系统进行参数配置。并且提供的非常多的参数进行设置包括:
⑴硬件参数的配置:ADC引脚、PWM引脚、SPI通信引脚、PWM频率、死区时间、采样电阻阻值、温度采集和母线电压采集的电阻阻值、ADC采样偏移量、母线电压。
⑵电机参数的配置:极对数、相电阻、相电感、反电动势系数、最大转速等
控制算法的配置:电流、速度、力矩三个PID闭环参数的调节、低通滤波的截止频率设置。
⑶保护功能参数:相电流的阈值、母线电压阈值包括过压和欠压、板载温度阈值、芯片故障提醒。
⑷通信与调试接口:USART/FD-CAN波特率、上报频率、SPI通信速率等。
通过这套FOC全软件系统来适配自身设计的硬件方案,以达到快速搭建出完整的电机驱动。从而降低开发门槛,避免重复“造轮子”的情况,更加专注电机使用场景,拓宽产品差异化。
设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。


评论