sunwave 发表于 2017-8-11 10:38

PMSM转子初始位置检测问题

下面一段程序的功能是检测同步机转子位置,不知思路是什么?
void SynInitPosDetSetPwm(Uint Section)
{
          EALLOW;
          switch(Section)
          {
                  case 0:                                                                        // A+, B-
                         EPwm1Regs.AQCSFRC.all = 0x08;      
                        EPwm2Regs.AQCSFRC.all = 0x02;
                        EPwm3Regs.AQCSFRC.all = 0x0A;      //1010?
                        break;

                  case 1:                                                                        // A-, B+
                        EPwm1Regs.AQCSFRC.all = 0x02;
                        EPwm2Regs.AQCSFRC.all = 0x08;
                        EPwm3Regs.AQCSFRC.all = 0x0A;
                        break;

                  case 2:                                                                        // B+, C-
                         EPwm1Regs.AQCSFRC.all = 0x0A;
                        EPwm2Regs.AQCSFRC.all = 0x08;
                        EPwm3Regs.AQCSFRC.all = 0x02;
                        break;

                  case 3:                                                                        // B-, C+
                        EPwm1Regs.AQCSFRC.all = 0x0A;
                        EPwm2Regs.AQCSFRC.all = 0x02;
                        EPwm3Regs.AQCSFRC.all = 0x08;
                        break;

                  case 4:                                                                        // A-, C+
                        EPwm1Regs.AQCSFRC.all = 0x02;
                        EPwm2Regs.AQCSFRC.all = 0x0A;
                        EPwm3Regs.AQCSFRC.all = 0x08;
                        break;

                  case 5:                                                                        // A+, C-
                         EPwm1Regs.AQCSFRC.all = 0x08;
                        EPwm2Regs.AQCSFRC.all = 0x0A;
                        EPwm3Regs.AQCSFRC.all = 0x02;
                        break;

                  case 6:                                                                        //恢复PWM模块的寄存器设置
                        EPwm1Regs.DBCTL.all         = 0x0007;//OUT_MODE=11POLSEL=01
                        EPwm1Regs.AQCTLA.all         = 0x0090;//CAD=10 下降计数若比较相等,则Set: force EPWMxA output high;CAU=01 上升计数若比较相等,Clear: force EPWMxA output low
                        EPwm1Regs.AQCTLB.all         = 0x00;
                        EPwm1Regs.AQCSFRC.all      = 0x00;

                        EPwm2Regs.DBCTL.all         = 0x0007;
                        EPwm2Regs.AQCTLA.all         = 0x0090;
                        EPwm2Regs.AQCTLB.all         = 0x00;
                        EPwm2Regs.AQCSFRC.all         = 0x00;

                        EPwm3Regs.DBCTL.all         = 0x0007;
                        EPwm3Regs.AQCTLA.all         = 0x0090;
                        EPwm3Regs.AQCTLB.all         = 0x00;
                        EPwm3Regs.AQCSFRC.all         = 0x00;
                        break;

                  default:                                                                //同步机初始位置角检测初始化寄存器
                        EPwm1Regs.AQCSFRC.all         = 0x0A;                //CSFB=2--EPWM1B=1CSFA=2--EPWM1A=1
                        EPwm1Regs.DBCTL.all         = 0;                        
                        EPwm1Regs.AQCTLA.all         = 0x000C;      //PRD---Toggle EPWM1A
                        EPwm1Regs.AQCTLB.all         = 0x000C;   //PRD---Toggle EPWM1B

                        EPwm2Regs.AQCSFRC.all         = 0x0A;
                        EPwm2Regs.DBCTL.all         = 0;
                        EPwm2Regs.AQCTLA.all         = 0x000C;
                        EPwm2Regs.AQCTLB.all         = 0x000C;

                        EPwm3Regs.AQCSFRC.all         = 0x0A;
                        EPwm3Regs.DBCTL.all         = 0;
                        EPwm3Regs.AQCTLA.all         = 0x000C;
                        EPwm3Regs.AQCTLB.all         = 0x000C;
                        break;
          }
          EDIS;
}

Firststep2014 发表于 2017-8-11 11:02

Foc控制还是方波控制?

sunwave 发表于 2017-8-11 11:28

别人的程序,我没读懂。只知道这一段是检测转子初始位置的,通过这样的设置,能看出检测思路吗?

xiaoxiao201005 发表于 2017-8-11 17:22

你说清楚啊,你这是有编码器的还是无编码器的初始位置检测?

sunwave 发表于 2017-8-11 19:28

目前是用在有编码器的场合,但据说无编码器也可以的。

xiaoxiao201005 发表于 2017-8-14 14:49

这一段只是发波代码,具体处理肯定在其他函数里。

sunwave 发表于 2017-8-14 15:40

xiaoxiao201005,只这一句话,就知道你是行家!能具体说说吗?这一段是如何实现发波功能?第一次接触这类程序,有难度啊!

sunwave 发表于 2017-8-14 15:52

xiaoxiao201005你好!关于那个发波程序,是否有什么相关资料可以给我学习一下?我第一次接触这类程序,不太明白。

xiaoxiao201005 发表于 2017-8-15 13:53

单看发波函数,我也看不出来。无编码器的方波BLDC有这种做法,发脉冲,你可以网上搜方波的

sunwave 发表于 2017-8-15 15:21

xiaoxiao201005 发表于 2017-8-15 13:53
单看发波函数,我也看不出来。无编码器的方波BLDC有这种做法,发脉冲,你可以网上搜方波的

多谢xiaoxiao201005,我找找看。

517246585 发表于 2017-8-16 15:20

你是看的国内某款变频器的程序?

xiaoxiao201005 发表于 2017-8-16 16:47

517246585 发表于 2017-8-16 15:20
你是看的国内某款变频器的程序?

他看的是国内某块变频器代码,国内牛逼的一家变频器公司的。

sunwave 发表于 2017-8-16 16:59

xiaoxiao201005 发表于 2017-8-16 16:47
他看的是国内某块变频器代码,国内牛逼的一家变频器公司的。

你怎么知道这个的?

sunwave 发表于 2017-8-16 17:11

xiaoxiao201005 发表于 2017-8-16 16:47
他看的是国内某块变频器代码,国内牛逼的一家变频器公司的。

xiaoxiao201005,关于发波方面的资料,能否给共享一些?

xiaoxiao201005 发表于 2017-8-17 09:03

sunwave 发表于 2017-8-16 17:11
xiaoxiao201005,关于发波方面的资料,能否给共享一些?

我这里没有。也是几年前看的。
我有那个代码,不过没仔细看

xiaoxiao201005 发表于 2017-8-17 09:06

楼主,你的脉振高频注入做的怎么样了?

sunwave 发表于 2017-8-17 09:30

xiaoxiao201005 发表于 2017-8-17 09:06
楼主,你的脉振高频注入做的怎么样了?

那个是成熟代码,只是研究研究而已,没有一持续跟踪,惭愧了。

517246585 发表于 2017-8-21 13:30

xiaoxiao201005 发表于 2017-8-16 16:47
他看的是国内某块变频器代码,国内牛逼的一家变频器公司的。

哈哈,一看就是大神,现在我也在看这块,方便留个联系方式交流一下么?{:1_551:}

xiaoxiao201005 发表于 2017-8-22 17:25

sunwave 发表于 2017-8-17 09:30
那个是成熟代码,只是研究研究而已,没有一持续跟踪,惭愧了。

有现成的代码可以参考,不错了

liaohf521 发表于 2018-5-22 23:06

sunwave 发表于 2017-8-17 09:30
那个是成熟代码,只是研究研究而已,没有一持续跟踪,惭愧了。

阳光哥,您好,

高频注入的算法可以参考下吗?正在做这个算法的研究,目前看了些论文,还没有头绪。不胜感激。邮箱:156710096@qq.com
页: [1] 2
查看完整版本: PMSM转子初始位置检测问题