我使用的SPWM驱动三相无刷电机的思路,希望帮忙想下速度...
关于正弦曲线的的sin值我用了公式法和采样点的方式,还没弄懂这两种的优劣,希望求解首先我用一个时钟输出三路PWM
然后在时钟中断中改变占空比,因为需要相差120,所以就将三路PWM的起始占空比改变位正选线上相差为120的点,然后通过累加的方式,逐步改变占空比
TIM4->CCR1=((sin(2*3.1415926/NUM*PWMch1)+1)*times);
TIM4->CCR2=((sin(2*3.1415926/NUM*PWMch2)+1)*times);
TIM4->CCR3=((sin(2*3.1415926/NUM*PWMch3)+1)*times);
这是用公式改变的方式,其中NUM为采样点个数,PWMch1表示累加数(需要循环),times是倍数
我改变速度的方式
if(count%T==0&&flag==0) //每T次中断改变一次占空比
count是每次中断+1 在0和采样点数之间循环,T表示T次中断后改变一次占空比,我用这种方式条件速度,自己想的,不知道大家是怎么调节的,因为后面涉及到PID条件,我这种方式总决定有些问题,忘指教
帮顶。。。 之前运算不快的机器是通过算法事先建立一张控制表,将参数算好之后写入表中。控制的时候通过偏移量查表即可。不过F4支持DSP,直接运算更灵活吧。
兴许还有电机控制库,会支持更复杂的算法。 顶一下
页:
[1]