cnhzjwq 发表于 2010-4-6 12:01:04

关于TI例程的疑惑 PMSM3_2

最近在拜读PMSM3_2的例程,里面有好几个疑惑请大家解决,先谢谢了
(1):SpeedRef=0.2,我知道这是个标幺值 ,但是基值选取的是多少,在程序中有体现吗?同样的还有IdRef,我看了好几遍,没找到头绪
(2):Uint16 SpeedLoopPrescaler = 10;      // Speed loop prescaler
         Uint16 SpeedLoopCount = 1;         // Speed loop counter
      这两个变量具体是什么用处啊,弄不懂
(3):程序中很多参数用的都是标幺值,最后怎么还原他们呢?乘以一个基值吗?但感觉是参与了不同基值标幺值的计算了,最后乘以原来的基值后,就变成原值了吗

自己看了好久,还是悟不出来,是个新手,问得比较菜,望高手不吝赐教啊?谢谢了!!!

zhengrob 发表于 2010-4-6 16:20:35

1.SpeedRef,IdRef以及IqRef等标幺值的范围应该是-1-+1。

2.SpeedLoopPrescaler和SpeedLoopCount应该是速度测量过程中用到的。应该是MainISR运行SpeedLoopPrescaler次测量一次速度,SpeedLoopCount放在MainISR中作计数用的。

3. 哪些值需要还原呢?整个程序的计算都是基于标幺值进行的,应该不需要。

cnhzjwq 发表于 2010-4-9 09:58:00

谢谢啦

zhengrob 发表于 2010-4-9 10:19:24

更正一下,SpeedLoopPrescaler和SpeedLoopCount 是Speed PID控制过程中用到的。MainISR运行SpeedLoopPrescaler次做一次PID运算。SpeedLoopCount作计数用。

cnhzjwq 发表于 2010-4-10 15:50:25

恩,谢谢你的解答,对了PMSM3_2中的level1,能直接启动电机吗开环的,
    rc1.TargetValue = _IQ(SpeedRef);
    rc1.calc(&rc1);
这两条语句是不是就是产生一个频率?
    rg1.Freq = rc1.SetpointValue;
    rg1.calc(&rg1);
那我直接改成:
    rg1.Freq = _IQ(50)>>7;
    rg1.calc(&rg1);
不知道这样可不可以?

cnhzjwq 发表于 2010-4-10 16:28:46

我认为只要把PWM波形调制出来后,去控制IGBT了,然后直流侧有电压了,那么电机的三相也肯定是测得到电压的是不是?可是我现在测不到U,V,W相的电压,真是郁闷了,请大家帮我,下面是我的T1定时器的下溢中断函数:
我使用的程序是PMSM3_2例程level1,想开环启动电机,
我修改了,下溢中断函数如下:

rampgen.Freq=_IQ(50)>>7;
rampgen.calc(&rampgen);
ipark.Ds=_IQ(VdTesting);
ipark.Qs=_IQ(VqTesting);
ipark.Angle=rampgen.Out;
ipark.calc(&ipark);
svgendq.Ualpha=ipark.Alpha;
svgendq.Ubeta=ipark.Beta;
svgendq.calc(&svgendq);
eva.Ta = svgendq.Ta;
eva.Tb = svgendq.Tb;
eva.Tc = svgendq.Tc;
eva.SetPwm(&eva);
eva.Open(&eva);
大家帮我看看吧,我想了很久都没有调试出来!!!

Eastnorth 发表于 2010-4-10 18:46:33

PMSM3_x中应该到Leve2才能使电机转动。Level
中你应该先监测PWM波形。

cnhzjwq 发表于 2010-4-10 20:40:56

PWM波形我用示波器显示出来看了一下,没有问题的,到level2才能使电机开环启动啊??我一直以为是1啊,我试试看

cnhzjwq 发表于 2010-4-11 12:36:58

level 2 的程序中没有涉及到检验转子的初始位置,也能让电机转起来吗?

Eastnorth 发表于 2010-4-11 13:26:22

cnhzjwq 发表于 2010-5-17 20:52:12

恩,发现知道level2-5都能开环启动PMSM,不知道有没有人调试过level7,我现在调试电机转不起来,有经验的高手指点一下吧!!

zhengrob 发表于 2010-5-20 09:14:17

你现在在level几能让马达转?

cnhzjwq 发表于 2010-5-25 21:35:31

2

zhengrob 发表于 2010-5-26 15:29:04

Level7应该是双闭环都加上那个了。如果前面几个Level都做下来的话,证明AD,SVPWM,位置检测和速度计算都正常工作了。马达到Level7肯定转的,因为这布上只是加上了PID,这是调伺服性能的步骤,而不是能不能转的步骤。

cnhzjwq 发表于 2010-6-27 12:57:23

但是level7是涉及到观测器的,一切入双闭环,电机就堵转了

zhang84110 发表于 2011-5-17 17:15:15

回复【14楼】cnhzjwq
-----------------------------------------------------------------------

请问cnhzjwq,您现在调出来了吗?我是用level2让电机先转起来,可是转子位置观测的很不准,速度还可以。我一切入双闭环,电机就堵转,您最后是怎么解决的呢?
页: [1]
查看完整版本: 关于TI例程的疑惑 PMSM3_2