This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

急。。。。求28343指教

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

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

    相关内容  请参考

    结构:

    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值
  • 您好,我也是像这样调用的,可是发现一直到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就不工作了,也没有错误和警报。不知道这会是哪里的问题