查看: 2737|回复: 7

[其他] 关于Motor Control函数库mcgen3PhWaveSine3rdHIntp-Generate3-Phase Sine问题

[复制链接]

该用户从未签到

1

主题

3

帖子

0

新手上路

Rank: 1

积分
13
最后登录
2016-12-28
发表于 2016-12-22 15:47:28 | 显示全部楼层 |阅读模式
      最近在使用56F8346芯片,使用到Motor Control 函数库中 mcgen3PhWaveSine3rdHIntp - Generate 3-Phase Sine,遇到一些问题,希望能得到工程师的回复,具体问题如下:
关于产生SPWM波的,程序里面使用的是三次谐波注入的方法,涉及到一个相角增量的计算,我不太明白。
     这是我看飞思卡尔电机控制库里面介绍的相角增量的计算,但是那个周期我不太理解是什么意思?它与异步电机的极对数什么关系?   
/*宏定义:定义程序中的常量, */
   #define APP_VOLT_MAX    600.0   /*逆变器直流母线电压,设为600V*/        
   #define APP_OMEGA_MAX   128.0   /*单位:Hz,逆变器可以产生的最大频率,系统允许的最大频率*/
   #define POLE_PAIRS       4      /*极对数,500r/min--->33.3Hz,250r/min--->16.7Hz*/
   #define VOLTAGE_BATTERY 48.0    /*蓄电池电压--需要修改名称*/
   /*PWM重载频率*/
  #define PWM_RELOAD_FREQ 10000   /* frequency of PWMReload */
  #define PHASE_INC_MAX   FRAC16(APP_OMEGA_MAX*POLE_PAIRS/PWM_RELOAD_FREQ)  /*最大相角增量*/
  /* linear interpolated three phase Sine wave generation with 3rd harmonic injection*/
    MC1_mcgen3PhWaveSine3rdHIntp(&pSWGPriv, AmplitudeVoltScale_Generator, mult_r  (Freq_Generator_now_Q7,PHASE_INC_MAX), &pHnd3phSyst);
  /* passing calculated DutyCycle to PWM driver */
    pwmUpdateValueRegistersComplementary((pwm_sComplementaryValues  *)&(pHnd3phSyst.DutyCycle));
我知道答案 目前已有7人回答

相角增量计算

相角增量计算
回复

使用道具 举报

该用户从未签到

0

主题

7

帖子

0

新手上路

Rank: 1

积分
26
最后登录
2017-1-11
发表于 2016-12-22 17:04:44 | 显示全部楼层
你好。不要被Period的字面意思给误导了。由于代码中所有的物理量都要归一化,所以位置也是归一化的。[-1,1)对应于[-180deg, 180deg),所以你只要理解清楚每次执行代码时角度的增量是多少就可以了:DesiredFreq单位是Hz,意味着每秒要转DesiredFreq圈,由于控制频率是FunctionCallFreq(单位是Hz),那么每经过一拍控制,角度的增量就是(360deg * DesiredFreq)/FunctionCallFreq。由于位置是以180°为基底的,那么把这个角度增量归一化就是2*DesiredFreq/FunctionCallFreq。最后要把这个小数化为Q1.15格式,即(2*DesiredFreq/FunctionCallFreq)*0x7fff,这样就得到了你看到的公式。

我推荐你使用RTCESL函数库,这个库比PE中的motor control库丰富,并且经过了全面的测试:www.nxp.com/rtcesl
回复 支持 反对

使用道具 举报

  • TA的每日心情
    擦汗
    2017-10-15 13:16
  • 签到天数: 191 天

    [LV.7]常住居民III

    11

    主题

    664

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1722
    最后登录
    2017-10-15
    发表于 2016-12-22 19:45:42 | 显示全部楼层
    进来学习学习                       
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2021-7-8 09:06
  • 签到天数: 27 天

    [LV.4]偶尔看看III

    18

    主题

    438

    帖子

    26

    金牌会员

    Rank: 6Rank: 6

    积分
    2209
    最后登录
    2024-3-5
    发表于 2016-12-23 09:17:47 | 显示全部楼层
    RTCESL(Real Time Control Embedded Software Motor Control and Power Conversion Libraries)看起来很强大啊!
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    13
    最后登录
    2016-12-28
     楼主| 发表于 2016-12-23 14:39:26 | 显示全部楼层
    Sutter 发表于 2016-12-22 17:04
    你好。不要被Period的字面意思给误导了。由于代码中所有的物理量都要归一化,所以位置也是归一化的。[-1,1) ...

    谢谢您的回答,但是我还是不太明白,其实,我就是想知道这个相角增量怎么去设置才合理,这个周期由什么去决定,是由我的PWM产生方式决定吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    帖子

    0

    新手上路

    Rank: 1

    积分
    26
    最后登录
    2017-1-11
    发表于 2016-12-26 15:40:20 | 显示全部楼层
    举个例子,你的fast loop是8KHz的(PWM频率也许是16KHz,也许是8KHz),然后你希望在此基础上产生一个25Hz的正弦波形,那么这个公式就是告诉你如何产生这个正弦波形。正弦波是靠对位置变量求正弦产生的,8KHz的控制频率意味着每125us要做一次控制,这个公式告诉你每125us中需要将位置增加多少以达到生成25Hz的目的。这样理解就很简单了,一个正弦波形是360度,25Hz的周期是(1/25)s, 那么每125us需要增加的位置就是(125us/((1/25)s))*360° = 1.125° 。 所以只需要理解怎么求这个增量就行了,不要纠结于公式里那个period,看我上次回复中的解释即可,period没有很确切的物理含义,因为这个公式把归一化都放在里面了,你如果硬要理解period,你就把他理解成360°吧。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    1

    主题

    3

    帖子

    0

    新手上路

    Rank: 1

    积分
    13
    最后登录
    2016-12-28
     楼主| 发表于 2016-12-28 08:55:42 | 显示全部楼层
    Sutter 发表于 2016-12-26 15:40
    举个例子,你的fast loop是8KHz的(PWM频率也许是16KHz,也许是8KHz),然后你希望在此基础上产生一个25Hz ...

    谢谢您啦,您第一个回复中的小数化为Q1.15格式是什么意思呀?我没见过这个格式啊
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    555

    帖子

    2

    金牌会员

    Rank: 6Rank: 6

    积分
    1343
    最后登录
    2018-10-23
    发表于 2016-12-28 11:25:54 | 显示全部楼层
    设 为电源频率,则三相电压所合成的电压矢量旋转角速度 ,电机旋转一周所需要的时间 。设PWM控制的周期为T,则在一个控制周期内,电压空间矢量有一个角度增量: 。为了实现电压空间矢量的这个旋转,需要在T时间内施加一个 。利用电压矢量积分值(即磁链矢量的增量)在一个PWM 控制周期等效的原则,可以合成任意电压空间矢量。 越小,电压空间矢量调制的精度就越高,磁链矢量越接近于正圆,但是这要受到功率开关器件的开关频率的限制。
    以上是空间矢量调制的原理,其中用到了增量角的概念,感觉和你的问题有相似处。
    关于Q1.15,由于mc56F8346是16位定点DSC,所以小数的计算要用到定标。
    具体就是先进行标么化(标么值=实际值/基准值),得到的标么值范围为-1~1之间的小数。然后,按照Q15定标(Q15中的15表示小数点后由15位小数,Q值越大,所表示的数值的范围越小,但是分辨率越高。Q15的另一种表示就是S0.15),即可以表示为一个16位的整数了。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-20 16:21 , Processed in 0.135887 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表