找回密码
 立即注册

QQ登录

只需一步,快速开始

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

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

  [复制链接]
楼主
w70770777 发表于 2014-2-27 09:37:41 | 显示全部楼层
本帖最后由 w70770777 于 2014-2-27 09:52 编辑

我看了程序,有几个问题想请教下楼主:
1.初始化时PWMA->CMR0 = 0;PWMA->CMR2 = 0;PWMB->CMR0 = 0;那么程序开机上电时 是怎么启动的?开机应该触发不了P40,P41,P42的中断吧

2.在hall中断程序“GPIOP2P3P4_IRQHandler()”中,找不到换相程序,那是怎么做到切换六个MOSFET 的状态的?

本人英文不太行,就着金山词霸翻译MO5xxDN手册看的资料,看着这么辛苦的份上,楼主大大请解答一下吧
回复 支持 反对

使用道具 举报

沙发
w70770777 发表于 2014-2-27 19:57:00 | 显示全部楼层
Angus 发表于 2014-2-27 14:17
弦波控制,没有换相的概念,三路互补 PWM 不停输出不同占空比的 PWM ,形成三相弦波。 三相弦波会形成旋 ...

谢谢 解答,进过今天的反复找资料 这两个问题也算解决了,但是又有新的疑问:
1.TabSin[180]这个数组是把60°分成180份 每份应该1/3°,但是我按sin函数算出来 却对不上表格的数值,请教下数组是怎么的出来的;

2.if(temp32u <= 0xFFFF)AngleStep=Divide((60<<16)*40,temp32u);其中“(60<<16)*40”里面乘以40是因为每个PWM周期中断是40US么?如果是40US一周期,那pwm的频率是25Khz,对不上前面的15.6Khz

3.三路互补 PWM 不停输出不同占空比的 PWM,肯定会出现三路下桥臂同时触通的时候,我知道三路下桥臂同时触通会有刹车的效果,不知道会不会影响电机性能

4.楼主大大给的程序是SPWM波形吧,不知道有没有SVPWM波形的程序。

5.M05xxdn系列网上找不到,不知道哪里可以申请样片,或者可以少量购买,来做试验。
回复 支持 反对

使用道具 举报

板凳
w70770777 发表于 2014-2-28 09:42:17 | 显示全部楼层
Angus 发表于 2014-2-27 22:36
1>,TabSin[180]是0~180度正弦表,每度一个数据。
2>,这里应是80,你再重新下载一下。PWM周期是 80us,P ...

恩 我重新下载了一遍

对于1>,如果是对应0~180度正弦,那“PWMA->CMR0 = 500 + DutyCMR*TabSin[temp32u]/65536 ;”这里面的除数应该是32768吧,疑惑不解;

越是思考越是有些疑问:
1.当“PWMA->CMR0 = 500”时,那在一个PWM周期内,A相的正向电流和负向电流通电时间相同,那是不是宏观来看A相处于正弦波的0电压状态?

2.如果第1点成立,CMR最大值为1000,那是不是意味着正弦波可调的幅值是CMR/2?
回复 支持 反对

使用道具 举报

地板
w70770777 发表于 2014-2-28 14:31:53 | 显示全部楼层
xiaoxiao2013 发表于 2014-2-28 11:33
我来回答
1、“PWMA->CMR0 = 500 + DutyCMR*TabSin[temp32u]/65536 ;”这里面的除数应该是65536,没有错
...

谢谢 回答
但是依旧没有解答我的疑惑,比如TabSin【1】 = 0X23C,那么0X23C/65536=0.008728,而sin1°=0.01745
如果0X23C/32786=0.017446 那就对的上了。

回复 支持 反对

使用道具 举报

5#
w70770777 发表于 2014-3-1 13:25:34 | 显示全部楼层
Angus 发表于 2014-3-1 12:11
除32768没错,DutyCMR 的最大取值为 500。
如果除 65536 ,DutyCMR 的最大取值就变为 1000 了, 这样与 PW ...

这么说 如果除 65536 ,DutyCMR 应该赋值为1000吧,这样我就理解了

还有下面两个问题,我是否猜的对呢:
1.当“AngleNow = 0°”“PWMA->CMR0 = 500”时,那在一个PWM周期内,A相的正向电流和负向电流通电时间相同,那是不是宏观来看A相处于正弦波的0电压状态?

2.如果第1点成立,CMR最大值为1000,那是不是意味着正弦波可调的幅值是CMR/2?
回复 支持 反对

使用道具 举报

6#
w70770777 发表于 2014-3-25 08:47:05 | 显示全部楼层
Angus 发表于 2014-3-11 17:37
You are all right  ^_^

谢谢解惑,实验板终于做好了,开始动手实验了
回复 支持 反对

使用道具 举报

7#
w70770777 发表于 2014-4-22 10:39:14 | 显示全部楼层
楼主 我又来请教了

实验板感觉不是很成功,有几个问题我也很困惑:
1.PWM->CMR0 = 100 - DutyCMR*TabSin[temp32u]/32768 ; 其中DutyCMR赋值为100,我不敢把PWM放的太大,因为没有限流,怕爆管子,这样出来的效果很奇怪。因为死区时间我设为30个周期,那么当PWM->CMR0值小于30的时候,上桥臂会有很长一段时间处于关断状态。
2.正弦怎么测电流?一般方波是在PWM高电平中间来一个中断来测量电流值,但是正弦情况不一样,在PWM高电平中间这点,是A\B\C三相上桥同时开通的点,应该是没有电流,那么怎么测电机的电流呢?
3.我在运转电机是,电机抖动非常厉害,而且电流非常大,一直查不出是什么问题。
回复 支持 反对

使用道具 举报

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

本版积分规则

新唐MCU