打印
[XMC™]

XMC4100的无感FOC方案

[复制链接]
4678|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
XMC4100的无感FOC方案


本书的目标是带领读者使用英飞凌XMC4100 单片机,以硬件浮点计算的方式实现高速无感FOC 驱动,基于Ed = 0(d 轴反电动势为0)的锁相环控制,最终让7 对极、KV 值为1000 的新西达航模无刷电机在12V 电源电压下达到10000r/min 以上的转速——这比那些芯片厂商提供的应用笔记支持的转速高得多。

使用特权

评论回复
沙发
東南博士|  楼主 | 2024-3-1 15:44 | 只看该作者
新书:无感FOC入门指南

本书着眼于实践入门,通过遍历项目开发从0到1的过程,带领读者快速理解、快速实现无感FOC(field oriented control,磁场定向控制),以较短的时间、较低的代价初步掌握无感FOC的基本原理和运行特性,最终实现10000r/min以上的高速驱动。

全书共5章,主要内容包括无感FOC概述、开发环境准备、无感FOC算法原理和编程实践等。行文尽可能秉持工程师口吻,少堆砌复杂的数学公式,多举例子、摆事实,以降低初学者入门难度。

本书作者阳波,是电机驱动领域的知名爱好者。本书由科学出版社出版。

前 言

阅读本书时,笔者希望读者怀着读历险记的心态,保持窃读的好奇,感悟技术。也可以从自己感兴趣的地方开始读,等到读得有感觉了,对无感FOC 控制有所理解了再加以实践,在反复实践的过程中自然会有更深的理解。整个的控制流程务必能够用白纸自行画出,所有的波形都要了然于心,不同的电机、不同的负载特性、不同的应用场合都要多多见识。技术经验是需要时间积累的,无法取巧。到了最后,就是工程师凭借丰富的解决问题的经验和积累的知识、技能快速对项目有个深度的认知,能够因应具体的问题给出最合适的工程解决方案,以量产的形式实现商业目的——这是优秀工程师的核心竞争力。

本书的目标是带领读者使用英飞凌XMC4100 单片机,以硬件浮点计算的方式实现高速无感FOC 驱动,基于Ed = 0(d 轴反电动势为0)的锁相环控制,最终让7 对极、KV 值为1000 的新西达航模无刷电机在12V 电源电压下达到10000r/min 以上的转速——这比那些芯片厂商提供的应用笔记支持的转速高得多。

对初学者而言,仅靠读代码是吃不透电机控制算法的,最好在电机运行时观察各种变量波形来加深认识。在这方面,有必要准备一套经过验证的驱动器硬件。为此,笔者专门设计了一款电机控制板,并免费提供PCB Gerber文件,读者可以自行打样,然后购买元器件、焊接。焊接是门技术活,万不可轻视!为了方便读者熟悉电路,PCB 布局特意做了功能分区。所有关键测试点都已引出,插上示波器探头就能观测波形。这款控制板具备单电阻、双电阻、三电阻的低边采样功能,同时配备了SPI 引脚,可以使用磁编码器实现微型交流伺服控制。单片机引脚没有全部使用,一方面是为了兼容英飞凌XMC1300 系列M0 单片机,以便将来使用整数运算实现更多的控制算法,这是提高性价比的有效手段;另一方面是为了简化电路,只专注实现基本功能,不搞复杂功能堆积,用心一处,其效百倍。掌握了核心,自然可以灵活变化。

尽管在一年前就接受科学出版社喻永光先生的邀约,计划写作一本无感FOC 入门书,无奈笔者苦拖久矣,时至今日才草草完笔,自知理亏。感谢他的支持、鼓励、包容和理解。

值此之际,笔者终于有机会感谢那些提点、襄助过自己的良师益友。

深圳万威电子的邬文俊先生给了我在深圳工作的第一次机会,他的关照和指点,犹在耳畔。

深圳德昌电机APG 的王晓明博导为笔者的技术生涯打开了新的大门,昔日种种,感念在心。笔者至今仍怀念在德昌电机和同事们奋斗的日子,友谊长存!

深圳英浩科技的林思和先生,许多年来从不附带任何量产条件地无偿提供英飞凌产品样片和技术支持,是笔者研发工作的强有力支撑。

最后,笔者要向自己的爱人致以深深的感激和歉意,没有她的支持、理解和忍耐,笔者是不可能一直坚持技术开发工作的。

诚然,笔者的经验和水平有限,加之时间仓促,若有错误和不妥之处,还恳请广大读者批评指正。

阳 波,2023年1月1日

使用特权

评论回复
板凳
東南博士|  楼主 | 2024-3-1 15:44 | 只看该作者
目录

第1 章 概 述

1 . 1 从哪里学起… …………… 1

1.1.1 无感方波控制…………… 1

1.1.2 无感FOC…………………… 1

1 . 2 无感控制算法……………… 3

1.2.1 无感方波控制算法………… 3

1.2.2 无感FOC 算法… …………… 4

1 . 3 电机控制面面观……………… 6

1 . 4 本书的写作安排……………… 8

第2 章 硬件准备

2 . 1 器材和工具…………………… 10

2.1.1 常用器材… …………………… 10

2.1.2 实验必备工具………………… 17

2 . 2 控制板电路详解……………… 20

2.2.1 单片机最小系统板… ………… 20

2.2.2 驱动器母板………………… 24

第3 章 软件准备

3 . 1 KE I L 开发环境的准备…………… 35

3.1.1 支持包下载……………………… 35

3.1.2 支持包安装……………………… 37

3.1.3 新建工程… ……………………… 38

3.1.4 添加函数… ………………… 42

3.1.5 编写测试代码…………………… 43

3.1.6 开发环境设置………………… 47

3.1.7 下载程序到XMC4100 中………… 51

3 . 2 J - S c o p e 软件的使用………… 52

3.2.1 软件配置… ……………………… 52

3.2.2 测试效果… …………… 57

3 . 3 各功能模块的编程及测试………… 60

3.3.1 PWM 波形生成………… 60

3.3.2 多通道ADC 采样(CCU8 同步触发)… 67

3.3.3 按键状态的读取………………… 74

3.3.4 外设功能小结…………………… 75

第4 章 无感FOC 的基本原理

4 . 1 如何让电机旋转…………………… 77

4.1.1 方波驱动… ………………………… 79

4.1.2 正弦波驱动………………………… 81

4 . 2 无感FOC 算法……………………… 82

4.2.1 Clarke 变换………………………… 84

4.2.2 Park 变换…………………………… 85

4.2.3 PI 调节… …………………………… 86

4.2.4 Park 反变换………………………… 88

4.2.5 Clarke 反变换………………………… 88

4.2.6 SVPWM… ……………………… 90

4.2.7 启动算法… ………………… 106

4.2.8 无感位置估计算法(Ed = 0,PLL 控制)…… 107

第5 章 无感FOC 编程实践

5 . 1 读取三相电流的ADC 转换结果…… 112

5 . 2 计算三相电流实际值……………… 115

5 . 3 C l a r k e 变换……………………… 117

5 . 4 Pa r k 变换… ……………………… 119

5 . 5 Pa r k 反变换……………………… 120

5 . 6 SVPWM 调制… ……………………… 120

5 . 7 PI 调节… ……………………………… 124

5 . 8 无感位置估计算法(PLL,Ed = 0)… 127

5 . 9 状态机控制…………………………… 129

5.9.1 启停控制……………………………… 129

5.9.2 待 机…………………………………… 130

5.9.3 斜坡电流对齐………………………… 131

5.9.4 强拖加速… …………………… 133

5.9.5 无感运行… ……………………… 135

后 记… ……………………………… 139

使用特权

评论回复
地板
東南博士|  楼主 | 2024-3-1 15:45 | 只看该作者
第1 章 概 述

1 . 1 从哪里学起

1.1.1 无感方波控制

虽然本书的主题是无感FOC,但出于讨论的完整性考虑,还是有必要加入无感方波控制的内容。

考虑到技术实现的细节,一般论文对工程应用的直接帮助不大,不如芯片厂商提供的应用笔记和开源项目实用。工程师大都比较务实,需要的是即学即用,至少是有借鉴意义的技术知识和经验。

无感方波控制的参考资料,首推开源项目BLHeli。它起先是基于8 位单片机C8051F330 的汇编语言程序,最初用于微型直升机定速控制,改善效果非常明显。作为过来人,笔者认为BLHeli 是难得的汇编语言程序范例,值得好好学习和吸收。另外,无论是编写汇编程序,还是进行程序分析,有了扎实的汇编语言基础,你会感到有如神助。这里推荐读者先学习王爽老师的《汇编语言》,之后再吃透BLHeli 程序,打下良好的汇编语言基础,以后一定会受益颇多!只不过,BLHeli 后期改用32 位单片机STM32F051,更名为BLHeli32 之后,代码就不再开源了。虽然功能丰富了许多,但随着无感FOC的流行和单片机的飞速发展,以及功能定制化受到限制,BLHeli32 并未能像BLHeli 当初那样炙手可热。

1.1. 2 无感FOC

无感FOC 的参考资料,现在还是比较丰富的,但商业上有诸多限制。有的厂商提供了完整的程序,但里面是C 语言和汇编语言的混合编程,汇编指令是和该厂商专有的DSP 引擎绑定的,要达到厂商演示性能,只能使用特定芯片。

有的厂商提供了全自动的电机控制代码生成器,看似只要输入各种参数,就能自动生成代码,非常省事,但最大的问题是生成的代码几乎不存在可读性,出现底层Bug 时很难排查问题,而且所生成的代码也无法满足高性能应用的要求。

有的厂商将优秀的控制算法以硬件的形式固化到了单片机内部,用户无法了解其实现细节,只能在程序中调用其功能,输入参数就可以得到满意的性能,但需要购买这种特定的芯片。

有的厂商给出了全部的C 语言代码,但核心算法(如无感FOC 的位置估计部分)是以库的形式存在的,或者关键的核心参数是用另外的程序自动计算后提供的,用户无法得知参数计算的具体过程。

还有厂商使用一颗低阶芯片(如8051)完成接口通信和一些相对低速的处理,同时用协处理器硬件执行快速的算法任务,如FOC 的各种变换、PI 调节、数字滤波、三角函数计算等。

综上来看,各个厂商开放的代码实例和硬件参考,都有着各种各样、有意无意的限制,要么是难懂,要么是不全,要么是硬件非常贵,特别是开发板上的MAXON 电机就价值几百块*币,着实不利于初学者上手。

关于厂商的应用笔记,笔者强烈推荐Microchip 的AN1078 应用笔记。

大家可以下载早期的代码压缩包,因为早期的代码结构清晰、易于理解。而且,最好配合官方的MCLV 控制板学习,使用配套的上位机有利于学习和确认。

虽然里面嵌入了DSP 引擎的汇编语言,但是查阅指令手册、配合PICKIT3 调试器,一步一步理解起来还是非常容易的。这个程序非常经典,而且具备一定的实用价值,务必要吃透。

无感FOC 的开源项目,自然首推VESC 了,其开发者本杰明(BenjaminVedder)也给出了参考的算**文,大家可以看看论文的数学描述是如何转化为代码的。VESC 算法程序的各种“ 魔改” 版本, 以及所谓的去开源化自研项目,基本上撑起了视频网站上无感FOC 视频秀的半边天。它使用STM32F405 作为主控,频率高达168MHz,全部采用硬件浮点运算,配备

USB 接口的上位机显示,电机参数等可以通过程序自动测量和整定,值得深入学习。其不足之处在于,开发平台使用的操作系统不为大家所熟悉,单片机使用的操作系统也比较特殊,初学者不易理解。它最早是为滑板车直驱开发的,电流可以非常大,而车轮直径小,以大电流强拖确实可以满足要求。

但是,用于高压植保机那种大型螺旋桨的快速启动,就会出现来回摆动的问题,必须先将螺旋桨强拖对齐后再行启动。考虑到STM32F405 售价相对较高,在算法公开的情况下,很多人都会想到将其算法移植到更加便宜的ARM-M3,甚至是M0 核单片机上,这就考验工程师的功力了。当然,不用这个算法,也可以在M0 核上实现乃至超过VESC 启动算法的效果。最近,VESC 也展示和开源了基于高频注入以及静音型高频注入的算法,效果相当不错,只是需要测量电机的相电流,而且所需的运放比较贵,以致项目成本较高。

1 . 2 无感控制算法

1. 2.1 无感方波控制算法

无感方波控制,说是没有传感器,实际是使用无刷电机线圈作为传感器。方波控制也称为六步驱动,电机旋转一周要经历6 种驱动状态。它的特点是在电机旋转的任何时刻,三个电机端子的一个接电源正极,一个接电源地,一个浮空。这样,在浮空端子上就能检测到电机线圈的反电动势,当永磁体经过线圈时,反电动势会出现由正转负或由负转正的变化。这个时刻就是所谓的“反电动势过零点”,它刚好与线圈对齐,是一个固定的参考位置。基于三个电机端子接电阻网络形成的虚拟中性点,单片机就可以通过比较器对浮空相电压与虚拟中性点电压进行比较,根据比较器的翻转确定过零点,进而根据先前的换相时刻推算出下一步换相的时刻。如此,不断检测对应的过零点,并据此换相,就实现了电机的连续运转。

考虑到反电动势与电机转速成正比,当电机静止时,反电动势为零,无法检测过零点。而当电机转速过低时,反电动势太小,信噪比过低,无法准确检测过零点。毕竟有PWM 调制的地方,电路噪声都小不了。这就是说,可靠的过零点检测有最低转速要求。

一般来说,无感方波启动算法实质上都是盲启,即启动时根本不知道电机转子的位置,而是直接按默认的换相状态驱动,尝试检测过零点。如果在默认时间内没有检测到对应的过零点,那就按下一个换相状态驱动并检测过零点……直至检测到合适的过零点,电机正常驱动。在此基础上加以改进,也能得到令人满意的启动性能。由此可见,绝大部分论文称“电机静止时反电动势为零,无法检测过零点,所以无法启动”,有人云亦云之嫌,快速启动的实现在于理想条件和现实感知之间的权衡。想要知道一款无感驱动器是不是盲启,可以在保证安全的前提下,以小电流启动电机,用手捏住电机轴或其驱动的桨叶,只要电机连续来回摆动就可以判定为盲启。这样的驱动器无法在静止状态下保持对转子位置的跟踪。电机控制器性能不能仅看空载演示,一定要加负载。大电流锁定后的慢速强拖只能适应小惯量负载或空载,不能算超低速闭环控制,只能算开环强拖,没什么实用价值。电感只有几十微亨的航模电机和几十毫亨电感的工业电机的控制特性大不相同,电感大的

电机往往更好控制。

盲启可以满足大部分应用需求,但存在一些限制。例如,某视频网站上让四旋翼飞行器在水中“飞行”的一个非典型应用,可以明显看到,原本在地面启动非常快速、平滑的螺旋桨,在水中的表现却大相径庭,有来回摆动强行定位的表征,就像动物被电击时四肢肌肉绷紧一样。究其原因,就在于这个电机的驱动采用的仍然是盲启算法。对于螺旋桨负载,刚启动时速度低,空气阻力可忽略不计,螺旋桨惯性力矩占主导地位,只要将启动PWM 的占

空比设为适当的经验值,就可以快速拉动螺旋桨产生足够的反电动势以供检测。期间,检测过零点到连续换相也就几十到几百毫秒的时间,几无感觉,如同有霍尔传感器一样顺畅。但在水中就不一样了,水的密度远大于空气,阻力比惯性力矩还大,只能加大启动PWM 的占空比来加速拖动螺旋桨,这样就可以看到传统无感方波启动算法的慢动作。这种水下应用,要时刻保持对转子位置的跟踪,才能提供快速正反转或极低速旋转来调节机器姿态,解决方案是采用高频注入法或加装磁编码器。

无感方波的换相控制,还有一种不使用反电动势信号,而使用磁链信号的方法。这种方法的应用比较少,一般做法是先对浮空相反电动势信号积分得到磁链信号,然后比较磁链信号与设定阈值,决定换相时机。两种方法的区别在于,反电动势过零点信号与换相点信号不一致,对零度进角来说有30°偏移,也就是检查到过零点后,要再过30°电角才能换相;而磁链信号与换相点信号是一致的,可以方便地调节换相进角,比使用反电动势过零信号的方法响应更快、更可靠,穿越机的应用便是实证。考虑到电机是电感元件,其电流滞后于电压,为了实现高效控制以及提高输出功率,我们需要提前施加电压,就好像内燃机的点火进角,点火时刻需要根据转速实时调整。这里可以理解为提前换相,而且所有换相点都相对于过零点一致提前。

1. 2. 2 无感FOC算法

无感FOC 比无感方波更复杂一些,但论其本质也不难。无感FOC 算法基本上包含三部分,一是坐标系变换,二是电流调节,三是位置估计,其中以位置估计最为关键。

接下来,重点探讨无感FOC 的位置估计算法。由无感方波的基本原理可知,在六步驱动中,总有一个电机端子是浮空的,此相半桥的功率开关管皆截止,阻抗无限大,所以可以直接采集这个端子的反电动势过零点作为换相依据。但无感FOC 的情况完全不同,每一相板桥高低边功率开关管都是使用互补PWM 驱动的,端子要么为电源电压,要么接地,没有浮空相,因此无法检测过零点信号。

既然无法直接检测,那就只能研究间接方法,由此产生了两类基本的位置估计算法。要提醒读者的是,前述无感方波控制的过零点位置每60°跳跃一次,6 次换相总计跳跃360°电角,而无感FOC 需要连续的位置信号!

●由反电动势或磁链信号得到位置信息

第一类位置估计算法是由反电动势或磁链信号得到位置信息,是主流方法,性能良好,但很难在极低速或静止状态下持续跟踪信号。优秀的设计可以实现速度过零的连续跟踪,在快速反转的情况下也能正常工作,具体策略有三种。

第一种是间接得到反电动势信号,思路是构建一个电机数学模型,与真实的电机一起运行。对于同样的电压输入,理论上真实电机的电流应该和电机模型一致,但实际中必然有所差别,遂用控制器加以补偿。一旦电机模型和真实电机的电流相同,就认为补偿结束,这时就可以对补偿量滤波,得到反电动势。进而,对两相正交坐标系中的两个反电动势信号做反正切运算,解算出连续的位置信号。具体的讨论和实现,参见Microchip AN1078 应用笔记。

第二种也基于反电动势信号,但与第一种不同,它根据电机稳态运行时,平行于磁体方向(d 轴方向)的反电动势为0 这个事实,通过锁相环控制保持其始终为0。这样就可以通过检测d 轴反电动势是否为0 来调节给定速度,进而对速度积分,即在每个控制周期对速度值进行累加得到位置信息。这个位置信息又决定了d 轴反电动势是否为0,如此构成闭环控制。这是本书所用的策略,后续章节会详细解释。

第三种不使用反电动势信号,而是使用磁链信号。对于磁链信号,共有三种解算方法,一是对两相正交的磁链信号求反正切,直接得出位置。二是利用外差法通过锁相环得到位置。基于锁相环的控制一般都比较稳定,位置信号比较平滑,低速特性比较好,适合转速不高的应用,如滚筒洗衣机的直驱型外转子无刷电机。其最大的问题是,一旦堵转,就会出现失步,不适合高速动态响应的应用。三是直接估算三相静止坐标系中的转子磁链,但考虑到速度变化时很难进行相位误差补偿,用得不多。实际工程应用以前两种方法为主,Infineon 公司最初使用的是反正切法,后期改用了锁相环法,性能都不错,但均不支持零速和极低速时的位置估计。

●高频注入算法

第二类位置估计算法其实就是高频注入算法,它利用电机的d、q 轴电感差异来检测位置,最大的优势是支持零速跟踪位置,结合脉冲定位的方式,可以做到完全无反转、平滑顺畅的快速启动,在M0 核、M3 核上都可以实现。其缺点是有高频噪声,而且响度还比较大,尽管提高PWM 频率、随机抖动占空比、随机改变PWM 频率,或者提高采样激励频率,可将噪声频率提高到听域以外,但难免有谐波成分被人耳感知。当然,实施高频注入的前提是,电机制造上保证d、q 轴电感存在差异,否则也无能为力。

综合来看,TI 公司的FAST 估计器性能占优,足以覆盖绝大多数应用,但由于使用磁链信号的位置估计仍然不能在零速和极低速下保持转子位置跟踪,也就是不能估计转子位置,所以要结合高频注入法进行全速域控制。经过多年的发展,无感控制基本算法已日渐成熟,可能最后的挑战就在于电动自行车、滑板车的表贴式轮毂电机的驱动。这种电机的d、q 轴电感差异极小,很难用高频注入算法来解算位置信号,而且基于反电动势的算法根本不适用。这种电机的产量巨大,如果能够实现重载零速启动,无反转、无抖动、平滑顺畅的启动,那将会产生颠覆性影响。

1 . 3 电机控制面面观

就实际来说,无刷电机控制可以分为有感控制和无感控制,也可以分为旋转控制和定位控制。

常见的有感控制多为使用霍尔传感器的方波六步驱动,早期的电动自行车是典型的应用场景。现在的电动自行车仍旧使用霍尔传感器,只是驱动方式由方波驱动发展到了FOC 驱动。更高端的传感器,光电编码器或磁编码器通常用于工业交流伺服。

一般来说,方波驱动适用于梯形波反电动势的无刷电机(BLDC,无刷直流电机),FOC 驱动适用于正弦波反电动势的无刷电机(PMSM,永磁同步电机),但实际上很多BLDC 的反电动势非常接近正弦波,也可进行无感FOC 控制。无感FOC 控制算法一般是基于正弦波反电动势的,反电动势不够正弦,就无法正常进行FOC 驱动1)。无刷电机的反电动势波形是否正弦,可以通过示波器来直观判断:将无刷电机的一个端子接示波器接地夹,一个端子接示波器探头,剩下的端子悬空,用手转动电机转子,观察示波器的波形是否正弦。此时测量的是电机线电压。

旋转控制类应用随处可见,如风机、水泵、油泵、高速吹风机、滑板车等,FOC 驱动取代方波驱动是大势所趋。FOC 经过多年发展已经相当成熟了,技术难点主要体现在无感启动算法上,零速重载无反转平滑快速启动仍然是行业痛点。这方面德国SMC Technologies 公司做得比较好,在视频网站上能搜到相关展示视频,有兴趣的读者可以看看。

定位类应用常见于工业伺服和模型舵机。工业伺服一般使用PMSM,用光电编码器作位置反馈,进行电流环—速度环—位置环控制,即所谓的“三环控制”,目前已经发展得很成熟了。

模型舵机作为模型界的通用伺服装置,早已从模拟控制进化到了数字控制,电机也由有刷直流电机(包括空心杯有刷直流电机)发展到了无刷直流电机。带霍尔传感器的无刷电机,由方波驱动,经多级齿轮减速后传动输出主轴。同时,输出主轴连接电位器或磁编码器作位置反馈,构成位置闭环控制系统。虽然是模型用的,技术含量却不低,高频静音驱动、高速响应无超调,锁定刚性高、死区小、不发振等,皆是挑战。目前还没有看到FOC 驱动的无刷舵机,一是就算使用工业伺服算法,也很难满足模型舵机的控制要求,特别是舵机齿隙导致的各种问题,非常棘手;二是无法在现有电机轴上安装磁编码器所需的磁体,在这样的条件下,工业FOC 控制算法的效果并不比方波控制好。

近几年非常热门的开源伺服项目ODrive 和前面提到的VESC 算师出同门,只不过一个是无感FOC,一个是有感FOC。ODrive 先前使用光电编码器,后来也使用磁编码器。它采用的也是三环控制,基于编码器位置的锁相环进行位置和速度估计。在伺服控制中,速度环是关键一环,高性能控制的速度信号一般通过观测器得到,位置差分提取速度信息通常不能满足要求,因为信号噪声大、分辨率低。如果采用数字滤波器滤波,尽管信号会平滑许多,但不可避免带来延时,导致性能下降。遗憾的是,和BLHeli 一样,ODrive目前也不开放源代码了。

1 . 4 本书的写作安排

通常来说,从小爱好电子制作、科技活动的工程师对技术更敏感,学得更快。主要原因在于他们发自内心地爱好,对技术研究有着天然的好奇心,且总有一股“玩”的劲头。玩多了就熟,玩久了就精。要想玩得好,关键是“开悟”。没有经历从0 到1 的技术研究过程,通过移植、“魔改”开源项目或者利用工作关系套取的技术只能在短时间内起作用,必定会在往后的技术竞争中疲态尽显、后劲不足。

为此,笔者尝试带领读者以遍历一个实际项目的方式逐步讲解,方便读者理解。项目的主要任务是用无感FOC 算法对模型无刷电机实施高速驱动,并用电位器调节转速。为了让读者能够像学习物理那样直接理解和实现功能,全面理解无感FOC 控制的过程,项目全部使用硬件浮点计算。这样可以免受非必要信息的干扰,也可以为定点数运算打下良好的基础。结合当前市场的供货和价格情况,笔者选用英飞凌公司基于CORTEX M4 核的XMC4100 单

片机,使用库函数编程。大致流程如下。

(1)设计驱动器电路并焊接一个硬件原型,讲解电路各部分的组成和原理。

(2)使用KEIL 平台构建软件开发环境,加入J-Scope 波形显示,通过LED 闪烁状态和J-Scope 波形来验证开发平台的功能。

(3)编写各个软件模块,同时利用硬件原型进行功能确认。

(4) 探讨无感FOC 的原理、各种坐标系的变换、PI 电流调节、SVPWM 调制原理,每个部分都会展示实际编程和测试。本书不打算加入速度环控制,而是用电位器调节Vq 实现电机速度控制,目的是让读者尽快看见效果。理由是,到了这一步加入速度环是顺水推舟的事;另外,四旋翼飞行器也是通过调节Vq 来调节转速的。

(5)完成无感算法的整合,实现按下按钮时电机启动,通过电位器调节电机转速,再按下另一个按钮时电机停止。

这一遭走下来,读者若能仔细焊接电路板、亲手敲入代码,认真观察波形,反复回顾算法的各部分及其相互关系,到最后即使合上书本也能在脑海中有条理地自我解说,那就算掌握无感FOC 的基本原理了。掌握无感FOC 基础后,可以进一步学习死区电压补偿、高性能启动算法、初始角度脉冲定位、高频注入、快速整数计算、数字滤波器,以及使用磁编码器的微型交流伺服控制等。实践得来的知识最靠得住,仿真一万次都比不上让真实的电机成功旋转一次!

使用特权

评论回复
5
liubinghui| | 2024-6-26 15:05 | 只看该作者
           学习了

使用特权

评论回复
6
中国龙芯CDX| | 2024-6-26 16:54 | 只看该作者
快速实现无感FOC(field oriented control,磁场定向控制),以较短的时间、较低的代价初步掌握无感FOC的基本原理和运行特性,最终实现10000r/min以上的高速驱动。

使用特权

评论回复
7
地瓜patch| | 2024-6-27 22:46 | 只看该作者
看到第三楼就感觉这个帖子会很长

使用特权

评论回复
8
空间规划科| | 2024-6-30 16:56 | 只看该作者
确保你有一个详细的电机数学模型,包括反电动势常数、电阻和电感值

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

382

主题

6081

帖子

34

粉丝