基于CW32单片机的无刷电机控制器(旋转变压器位置反馈)
简介
简易助力转向旋变无刷电机驱动器
简介:简易助力转向旋变无刷电机驱动器开源协议
:Public Domain
描述
用CW32单片机制作了一个简易无刷电机控制器,电源电压12V到14V,电机采用转向助力电机,带旋转变压器位置反馈。控制方法采用最简单的开环电流控制,SVPWM电角度提前转子90度,适合带动不需要精确控制的负载,无电流检测只有最大电流保护。
接线柱采用M6螺丝,直接用4平方铜先焊接到铝基板两个MOS之间。 功率板采用铝基板,用M3螺丝和电路GND连接,MOS管的GND也需要用M3螺丝连接到铝板上,整个铝板就是GND
调速电位器最好选择小于10K的三脚电位器,中间接电位器输入ADC口,两端接GND和3.3V
电流限制电路R45未焊接,铝基板和控制板连接排针上焊接一个排母正好高度合适。
电机需要买6线旋转变压器的汽车转向助力电机,可以自己找找更便宜的,这种电机很多,我看还有60多元的,但是记住一定要6线旋转变压器的,买的时候要问明白。 刚焊好板子需要两个按键一块按进行旋变调零,电位器开的要小一些或者限制电流,条零成功电机会旋转,不成功多按几次,调零程序写的比较差经常调零失败,不过只要成功一次就可以了,会把参数保存到FLASH。
旋转变压器采用单片机软件解算角度,专用解码芯片比较贵,要求不高的地方自己用单片机代替也可以,外围电路比较简单
单片机输出一路20KHZ的SPWM,经过RC滤波后变成正弦波,经过100NF电容后电压抬高5V的一半。
然后进入U3.1放大,C24提供一个直流参考点,C22 C23限制带宽同时衰减信号,R18防止高频振荡,C6隔离前后电路增加后面电路稳定性。U3.2反相输出
旋转变压器是电机自带的,用LCR表测出电抗同时换算出20KHZ时候的电抗,电感的电抗是正,而电容是负,选择同样大小电抗的电容(符号相反),这里我用了四个10NF电容并联,可以让信号更加平滑过滤干扰,电机外壳一定要接GND!
旋转变压器出来的COS和SIN,抬高到3.3V的一半,然后进入两个差分放大器,放大后进入两个ADC口
电源电路,电源需要有大电流输出能力,电流超100A,于是采用摩托车启动用12V9A蓄电池,进入LM2596降压到5V,MC34063升压到15V给MOS管驱动芯片EG2131供电。
R19是电流采样电阻,实际焊接的是两个3毫欧并联,一个3毫欧堵转会触发保护,保护后需要重新开关电源才能解除。
MOS管H桥,驱动芯片采用EG2131,MOS管采用IRF2804
单片机采用CW32F030C8T6,一片实现旋变解码和电机驱动,两个按键一块按进入旋变调零程序,PA2 ADC2的电位器开小一点,如果调零成功电机会旋转,失败就再两个按键一块按进入调零程序,两个按键单独按分别是正转和反转。
电流保护电路
3.3V供电电路
旋转变压器软解码算法:
单片机每个口对应采样率是1MHZ,采集100点后中断,用DFT算出采集的COS和SIN序列的实部和虚部,旋转相位到0度,用实部进ATAN2算出角度,当前角度保存到寄存器,等测出下次角度后相减算出角度差,再算出角度差的COS和SIN,反馈回ATAN2前,旋转进ATAN2的角度实现锁相,这样得到的角度就和转速没关系了,抵消了系统延迟。
10KHZ采样速度,每秒更新1万次角度信息,95500转速时候相移计算,其实不用计算,计算结果就是两次采样数据之间的角度差。
zhuansu = 95500
shijian = 100
xiangyi =90-atan2(159155 / (zhuansu / 60), shijian)*180/3.1415927
SVPWM算法(注意这是我个人理解不能保证正确)
H桥一共有8种开关状态,000和111是空矢量
分割成6个区域,每个60度
驱动H桥的定时器用中央对齐模式,111和000是空矢量,同一个时间只有一路开关动作
我驱动频率是10KHZ,定时器ARR里面放置的是2399,下面是我理解的上图ta、tb、t0计算方法
我理解的,40度计算方法,不知道对不对
ta = 1.154700538*1200*sind(60-40)
tb = 1.154700538*1200*sind(40)
t0 = 2399-ta-tb
上图例子,计算u1和u3百分比
u1 = 1.154700538*0.86*2399*sind(60-40)/4799
u3 = 1.154700538*0.86*2399*sind(40)/4799
定时器比较寄存器数据实际计算方法
生成一个0-60度查找表,2000点,Q15定点数
0-60度查表取出对应角度的X和Y
x*2399= u1
y*2399= u3
2399-u1-u3 = 零矢量
实际程序2399我是改成2048来计算的,好让PWM占空比不到最大
0到60度定时器比较寄存器数值计算
60到120度
SVPWM电角度提前旋转变压器测到的转子90度,这样就只需要控制调制比就可以调速了。想要精确控制位置和速度需要控制调制比。
控制器组装用的铜柱
所用电机
改装的电链锯,用来验证控制器能不能用
改装电据用套件
电机连接轴套,要买10毫米的,这个电机的轴是10.8毫米,可以用10.5毫米钻头扩下孔。
控制器实物图
评论