当前位置:首页 > 工业用地 >一个pwm控制周期如何取得两相电流数据(一个pwm控制周期如何取得两相电流数据处理)

一个pwm控制周期如何取得两相电流数据(一个pwm控制周期如何取得两相电流数据处理)

前言

电机控制单电阻采样机制收集PWM 波形内的两相电流ADC 数据。然而,在某些扇区边界条件下,只能获得一个电流ADC数据,并且需要对PWM波形进行变形来构建电流采样区域。

一个pwm控制周期如何取得两相电流数据(一个pwm控制周期如何取得两相电流数据处理)

背景介绍

根据电机控制拓扑,单电阻采样可在一个PWM 控制周期内获得两相电流数据:

在扇区边沿无法获得两相电流信号。

波形产生

ST的专利方法是在波形的中间部分产生变形波形,从变形波形中可以得到两相电流ADC数据;

当然,还有目前流行的波形平移方法也能达到同样的效果。波形如下:

STM32系列单片机Timer有足够的功能来产生上述两种波形。其机制如下:

PWM波中间变形

1、设置CCR4的DMA通道,此时将Timer1的预载设置为禁用状态;

TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Disable);

2、CCR4比较值部分产生DMA事件;

DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t)((TIM1-CCR1));

DMA_InitStructure.DMA_MemoryBaseAddr=(uint32_t)(uint32_t)(hDmaBuff2);

DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralDST;

DMA_InitStructure.DMA_BufferSize=2u;

……

TIM_DMACmd(TIM1,TIM_DMA_CC4,启用);

3、直接修改CCR1数据为1点周期数据+1;

4、将CCR1数据修改为CCR1’2点数据;

5.按照上图设置时间计算。中间凹陷时间是两侧补充波形时间之和。

波形偏移变形

1.设置Timer1的更新事件的DMA通道

DMA_InitStructure.DMA_PeripheralBaseAddr=(uint32_t)((TIM1-CCR1));

DMA_InitStructure.DMA_MemoryBaseAddr=(uint32_t)(uint32_t)(hDmaBuff2);

DMA_InitStructure.DMA_DIR=DMA_DIR_PeripheralDST;

DMA_InitStructure.DMA_BufferSize=2u;

……

TIM_DMACmd(TIM1,TIM_DMA_Update,启用);

2、将CCR1数据更新为1点的CCR1数据;

3、2点将CCR1数据更新为CCR1’数据;

4、保证前后换档时间相同。

最新资讯

推荐资讯