TI中文支持网
TI专业的中文技术问题搜集分享网站

急。。。。求28343指教

新建的电机控制工程用到TMS320C28343.可是在运行到ipark1.Sine=_IQsinPU(rg1.Out);这一步。AD采样就停止工作了。是IQ_MATH的问题吗?换做ipark1.Sine=0;就可以了,编译器冲突,还是不兼容的问题。求指教。

mangui zhang:

应该不是编译器冲突和兼容问题  

相关内容  请参考

结构:

typedef struct {  _iq  Alpha;   // Output: stationary d-axis stator variable
  _iq  Beta; // Output: stationary q-axis stator variable
  _iq  Angle; // Input: rotating angle (pu)
  _iq  Ds; // Input: rotating d-axis stator variable
  _iq  Qs; // Input: rotating q-axis stator variable
  _iq  Sine;
  _iq  Cosine;
    } IPARK;             

使用方法:

ipark1.Ds = VdTesting; //转子在旋转坐标系下d轴的值——直轴(维持励磁的轴),数值上恒定表示旋转向量的模一定
ipark1.Qs = VqTesting; //转子在旋转坐标系下q轴的值——正交轴(出力矩的轴)
ipark1.Sine=_IQsinPU(rg1.Out);   //根据角度求解对应正弦
ipark1.Cosine=_IQcosPU(rg1.Out);//根据角度求解对应余弦
IPARK_MACRO(ipark1)  //调用PARK逆变换宏模块

实际效果:
通过已知的转子角度,和旋转向量的大小,求解得到静态坐标系下alpha和beta值

新建的电机控制工程用到TMS320C28343.可是在运行到ipark1.Sine=_IQsinPU(rg1.Out);这一步。AD采样就停止工作了。是IQ_MATH的问题吗?换做ipark1.Sine=0;就可以了,编译器冲突,还是不兼容的问题。求指教。

zhiyun pan:

回复 mangui zhang:


您好,我也是像这样调用的,可是发现一直到rg1.Freq = rc1.SetpointValue; RG_MACRO(rg1)这句时候AD都工作,可是加上后面的

 ipark1.Ds = VdTesting;   ipark1.Qs = VqTesting;

 ipark1.Sine=_IQsinPU(rg1.Out);//sin((rg1.Out)*6.283185307);//_IQsinPU(rg1.Out);    ipark1.Cosine=_IQcosPU(rg1.Out);//cos((rg1.Out)*6.283185307);//_IQcosPU(rg1.Out); IPARK_MACRO(ipark1)

这些语句,AD就不工作了,也没有错误和警报。不知道这会是哪里的问题

赞(0)
未经允许不得转载:TI中文支持网 » 急。。。。求28343指教
分享到: 更多 (0)