FOC的双电阻采样电流对应的stm32中的硬件配置(有图有真相)

一、双电阻采样电流法

 采样时机

原理说明



在U相和V相的下桥分别串联一个功率电阻,通过一个运放电路连接至A/D。

采样时机放在PWM的下溢中断进行,U V两相电阻上的电流即为电机U V相的线电流。

在软件设计的时候,采用下溢中断(处于第7段和第1段零矢量区域中),将电流采样的任务安排在一个PWM周期的开始处,在比较匹配到来之前的期间,U、V两相的上桥臂都是关断的,也就是说下桥臂是导通的,这样就可以在每个PWM周期顺利采样一次两个相电流值。

关于电流采样请参考: https://wenku.baidu.com/view/cc3f81fa10a6f524cdbf85bd.html

二、FOC的软件架构

 用定时器产生PWM波形,在计数器的下溢事件时触发AD转换,当AD转化完成时产生EOS中断,在这个中断中放入FOC的算法。

运行FOC开环程序发现JSCOPE采集的电流如下,正弦度很差。

 用示波器观察GPIO口和控制器输出的U相和W相波形,得到的如下图

图中黄色的线表示TIMx中断程序中的GPIO反转输出的波形。

图中蓝色的线表示U相输出的驱动波形

图中紫色的线表示V相输出的驱动波形

将反转的拐点用红线连接,它代表的就是TIMx定时器的计数值。从图上可以看到一个周期中产生了两个拐点,进行了两次AD转换,运行了两次FOC算法。所以构建出来的电流不是在开关管为000的状态下采集的,所以正弦度不好,此时不能用作FOC的计算。

三、问题出在哪里呢 

查找TIM的手册:

In center-aligned mode, the counter counts from 0 to the auto-reload value (content of the TIMx_ARR register) – 1, generates a counter overflow event, then counts from the autoreload value down to 1 and generates a counter underflow event. Then it restarts counting from 0.

在中心对齐模式下,计数器从0计数到自动重新加载值(TIMx_ARR寄存器的内容)–1,生成计数器溢出事件,然后从自动加载值计数到1,并生成计数器下溢事件。然后从0开始重新开始计数.

就是说:定时器每个周期都会生成一次上溢中断和一次下溢中断。哪如何正确得到采样的时间点呢

用cubeMX生成的TIMx的初始化函数中(下图)

图中画圈的位置表示:当上溢和下溢次数的和等于该值时才产生中断。等于0表示每次都产生中断。将该值设置成( htim1.Init.RepetitionCounter = 1;)表示为当溢出事件计数为1的时候产生一次中断。重复以上实验:得到的电流波形如下

 得到的反转GPIO和U/W相的时序如下图

 将反转的拐点用红线连接,它代表的就是TIMx定时器的计数值。从图上可以看到一个周期中产生了一个拐点,并且拐点的位置都出现在下桥关闭的点。此时采样的电流重建出一个正弦的电流图。

 

版权声明:本文为CSDN博主「郭石头的学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35597202/article/details/120160474

一、双电阻采样电流法

 采样时机

原理说明



在U相和V相的下桥分别串联一个功率电阻,通过一个运放电路连接至A/D。

采样时机放在PWM的下溢中断进行,U V两相电阻上的电流即为电机U V相的线电流。

在软件设计的时候,采用下溢中断(处于第7段和第1段零矢量区域中),将电流采样的任务安排在一个PWM周期的开始处,在比较匹配到来之前的期间,U、V两相的上桥臂都是关断的,也就是说下桥臂是导通的,这样就可以在每个PWM周期顺利采样一次两个相电流值。

关于电流采样请参考: https://wenku.baidu.com/view/cc3f81fa10a6f524cdbf85bd.html

二、FOC的软件架构

 用定时器产生PWM波形,在计数器的下溢事件时触发AD转换,当AD转化完成时产生EOS中断,在这个中断中放入FOC的算法。

运行FOC开环程序发现JSCOPE采集的电流如下,正弦度很差。

 用示波器观察GPIO口和控制器输出的U相和W相波形,得到的如下图

图中黄色的线表示TIMx中断程序中的GPIO反转输出的波形。

图中蓝色的线表示U相输出的驱动波形

图中紫色的线表示V相输出的驱动波形

将反转的拐点用红线连接,它代表的就是TIMx定时器的计数值。从图上可以看到一个周期中产生了两个拐点,进行了两次AD转换,运行了两次FOC算法。所以构建出来的电流不是在开关管为000的状态下采集的,所以正弦度不好,此时不能用作FOC的计算。

三、问题出在哪里呢 

查找TIM的手册:

In center-aligned mode, the counter counts from 0 to the auto-reload value (content of the TIMx_ARR register) – 1, generates a counter overflow event, then counts from the autoreload value down to 1 and generates a counter underflow event. Then it restarts counting from 0.

在中心对齐模式下,计数器从0计数到自动重新加载值(TIMx_ARR寄存器的内容)–1,生成计数器溢出事件,然后从自动加载值计数到1,并生成计数器下溢事件。然后从0开始重新开始计数.

就是说:定时器每个周期都会生成一次上溢中断和一次下溢中断。哪如何正确得到采样的时间点呢

用cubeMX生成的TIMx的初始化函数中(下图)

图中画圈的位置表示:当上溢和下溢次数的和等于该值时才产生中断。等于0表示每次都产生中断。将该值设置成( htim1.Init.RepetitionCounter = 1;)表示为当溢出事件计数为1的时候产生一次中断。重复以上实验:得到的电流波形如下

 得到的反转GPIO和U/W相的时序如下图

 将反转的拐点用红线连接,它代表的就是TIMx定时器的计数值。从图上可以看到一个周期中产生了一个拐点,并且拐点的位置都出现在下桥关闭的点。此时采样的电流重建出一个正弦的电流图。

 

版权声明:本文为CSDN博主「郭石头的学习」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_35597202/article/details/120160474

生成海报
点赞 0

郭石头的学习

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

智能车浅谈——抗干扰技术软件篇

软件抗干扰技术 前面介绍了一些硬件抗干扰技术,不难发现,要做好一个完美的硬件系统是需要花大心思的,而且很多硬件抗扰方案都需要借助一些元器件来实现,这在一定程度上增加了费用,

STM32 4*4矩阵键盘实现原理(附程序)

STM32 4*4矩阵键盘实现原理(附程序) : 理解矩阵键盘之前,先要了解一下独立按键的触发原理。下图是普通独立 按键的接线图。 : 按键的一端接地,一端接MCU的GPIO。当按键