FOC及无感控制的算法移植指南.docx

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FOC及无感控制的算法移植指南 1、下载正确的FOC源代码 目前市面上主流的能驱动电机的 MCU。基本上都带有 FOC库。很多公司还提供可以用 于修改的FOC源代码。还有些甚至于提供了无位置算法的源代码。 可以下载到代码的有 ST, TI, MICROCHIP NXP, RENESA潞芯片公司。直接到官网下 载即可。 为保证代码的可行性, 最好从官网下载代码。 不要从第三方下载。 避免产生不必要的调 试过程。 2、找到与芯片的硬件初始化相关的代码。 ADC部分的初始化。 不同的芯片,ADC工作模式不同。ADC的初始化方法以及数据采样方法不同。 ADC的采样,根据电路结构不同。完全不同。 单电阻采样模式。需要在一个三角波内,进行两次 ADC采样。而且软件还要特殊处理。 才能做到采集的数据。这种方式下。 ADC需要有一个专用的定时器配合来实现 ADC采样。 两电阻或电流传感器方式下,ADC有两种模式可以实现。一种是在波峰或波谷的前后一 点位置处,触发 ADC 采样。另一种方式,就是在定时器的波峰或波谷中断进入后,第一时 间进行ADC采样。 ST的ARM芯片 CORTEX-M陈列,由于只有一组 ADC单元,且ADC转换出来的结果只有一个缓冲区保 证。所以,数据采集通常采用 DMA的方式。将多个ADC采样到的数据缓存到一个 ADC数组 中。 如M3或M4等系列。MCU有两组ADC单元。可以一次性采样两个通道。在波峰波谷 中断的模式下,可以设成分时采样不同的通道。也可以用 DMA方式采样(ST的2个ADC 单元,输出结果地址是相连的。且刚好组成了一个 32 位数,用 DMA 方式,可以一次将两 个ADC单元的结果全部采样出来。) TOC \o 1-5 \h \z RENESAS^芯片,ADC的输出结果是根据通道来设定的缓冲。因此,只需要触发 ADC 即可。ADC转换后的数据,分开存放在不同的寄存器当中。 所以,这类芯片,可以省掉DMA 的操作方法。 定时器部分 定时器根据电机的载频来设定。 生成三角波 (递增计数到设定值以后, 开始递减计数) 。 需要处理的内容,分别是互补的死区设定、中断的方式(上溢中断、下溢中断、上 /下 溢中断)。中断的频率(16K的PWM频率,可以设定 8K的电流或4K的电流环。利用中断 次数控制来实现)。 编码器部分 不同的芯片,对于正交编码器的接口不同。接到不同的 IO 引脚上。然后选择正确的定 时器资源来实现自动计数功能。 FO保护(自动刹车控制) FO保护由IPM或IGBT驱动或单独设计的电路产生信号。通过专用的保护引脚来实现 MCU 自动关闭 PWM 输出。 从而实现负载突然短路的情况下, 快速关闭输出。 保护电路不受 影响。 这个引脚,在很多芯片厂家, 是有数字滤波参数可以设定。 用来避免突然出现的小尖 锋干扰。 3、FOC代码部分 一般FOC代码函数分成: ADC采样处理,采样电机的电流,可以采样 IA,IB,ICo也可以采样IA和旧(当然,采样 旧和IC也可以,但需要计算一次得到。根据 IA+IB+IC=0的公式可以根据其中的任意两项电 流,求出第三相的电流。单电阻采样,也会生成 IA和旧两组电流。 Clarke变换,将ADC采样到的三相电流合成两相电流。 生成I_alpha和I_beta两个电流。 Park变换,将alpha和beta两个电流与电相度通过三角函数的方式。 合成ID和IQ电流。 InvPark变换(反 Park变换),将 VD和VQ转换成 Valpha和Vbeta. InvClarke变换(反 Clarke变换),将Valpha和Vbeta转换成三相电压值。 扇区计算,通过三相电压,计算出正确的扇区值。 PWM 数据输出,根据扇区值和三相电压值,计算出三路 PWM 值。 4、调试技巧 1、确认硬件的接入正常 上电后,先对IA, IB, IC的输入AD进行监测。看看零点状态的 AD是否正常。通 常零点的AD都设在1/2的VCC附近。以12位白ADC为例,这个零点的 ADC是2048 正负 100 以内。 然后,对母线电压的 ADC进行监测。特别是用到了无位置或母线电压补偿的算法。 对母线电压的准确性,要求比较高。 母线电压太低或太高,都将导致输出的不正常 (严 重时,电机都无法运转)。 最后, 对于有位置传感器的硬件, 旋转一下电机。 查看一下编码器的 A/B/Z, U/V/W 输入信号是否正常。 2、确认IQ和ID的极性的正确。 注:为防止硬件受损。程序做个最长时间的控制。进入 PWM 输出以后,最长工作时间 设 0.5秒到 1 秒。软件自动关闭输出。 将PID控制部分屏蔽掉。给 VD和VQ设一个固定值。可以试着设定 5V。根据当前的母 线电压。 5/ 母线电压 *VDVQ 的最

文档评论(0)

130****1376 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档