找回密码
 立即注册

QQ登录

只需一步,快速开始

打印 上一主题 下一主题
开启左侧

M05x 弦波电机控制代码 V1.01

  [复制链接]
跳转到指定楼层
楼主
Angus 发表于 2014-1-10 16:07:59 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 Angus 于 2014-7-23 09:38 编辑

A- : PWM0, 输出高时 MOSFET截止 ,  A+ : PWM1 输出高时 MOSFET导通, Hall_A 接 P40
B相  PWM23, Hall_b 接 P41
C相 PWM45, Hall_c 接 P42,    60度 Hall 信号
六路 PWM 同步起动, P1.2_AIN2接电位器调速
M051LDE_Hall_Sin_BLDC_V1.01.zip (23.46 KB, 下载次数: 5727)
V1.01:   由PWMB2精确定位测电流时刻点,增加Hall信号超时功能,堵转会立即把电压降到很低。

这是三相 MOSFET 输出, 未滤波的电压波形



弦波驱动、单极性调制的电机端电压波形图






分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 顶 踩
回复

使用道具 举报

沙发
 楼主| Angus 发表于 2014-2-27 14:17:44 | 显示全部楼层
w70770777 发表于 2014-2-27 09:37
我看了程序,有几个问题想请教下楼主:
1.初始化时PWMA->CMR0 = 0;PWMA->CMR2 = 0;PWMB->CMR0 = 0;那么 ...

弦波控制,没有换相的概念,三路互补 PWM 不停输出不同占空比的 PWM ,形成三相弦波。 三相弦波会形成旋转的磁场,带动转子转动。

进入主循环之前有一句,DutyCMR  = 500 ; 把90度时的占空比设为 50%了, 在 PWM 中断里, 输出峰值为 50% 的三相弦波, 这时电机就会转。 然后由 P40,P41,P42测到的 Hall 的位置,校正弦波角度。达到平稳运转目的。
回复 支持 反对

使用道具 举报

板凳
 楼主| Angus 发表于 2014-2-27 22:36:46 | 显示全部楼层
w70770777 发表于 2014-2-27 19:57
谢谢 解答,进过今天的反复找资料 这两个问题也算解决了,但是又有新的疑问:
1.TabSin[180]这个数组是把 ...

1>,TabSin[180]是0~180度正弦表,每度一个数据。
2>,这里应是80,你再重新下载一下。PWM周期是 80us,PWM频率是 25MHz/1000/2 = 12.5KHz
3>,SPWM和SVPWM都会出现上三路和下三路MOSFET全通的情况,不影响运转特性。
4>,这是SPWM波。M051的性能是可以做 SVPWM 的,目前我没时间做。
5>,芯片可以找芯唐的代理,或直接电话给芯唐的销售。
回复 支持 反对

使用道具 举报

地板
 楼主| Angus 发表于 2014-3-1 12:11:21 | 显示全部楼层
w70770777 发表于 2014-2-28 18:26
能不能详细的和我说说,这个困扰我很久了


除32768没错,DutyCMR 的最大取值为 500。
如果除 65536 ,DutyCMR 的最大取值就变为 1000 了, 这样与 PWM 的周期值 1000 就对应起来了。PWM 的周期CNR=CMR占空比时,l输出电压100%。
这样做,一是从PWM的角度便于理解输出电压占空比,二是除65536,编译器直接取高16位,运算快。
回复 支持 反对

使用道具 举报

5#
 楼主| Angus 发表于 2014-3-11 17:37:29 | 显示全部楼层
w70770777 发表于 2014-3-1 13:25
这么说 如果除 65536 ,DutyCMR 应该赋值为1000吧,这样我就理解了

还有下面两个问题,我是否猜的对呢: ...

You are all right  ^_^
回复 支持 反对

使用道具 举报

6#
 楼主| Angus 发表于 2014-5-9 14:01:43 | 显示全部楼层
换相只要正确,是不会爆管子的, 有Hall 的电机, 只要Hall 不坏, 换相就不会错.
如果抖动厉害, 电流又很大, 可能是 Hall 对应关系不对.  
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

新唐MCU