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.

关于svgen park ipark的疑问

Other Parts Discussed in Thread: CONTROLSUITE

1.关于SVGEN的疑问

在HVPM_Sensored和HVPM_Sensored_Servo例程中,SVPWM单元的定义如下

// Instance a Space Vector PWM modulator. This modulator generates a, b and c
// phases based on the d and q stationery reference frame inputs
SVGEN svgen1 = SVGEN_DEFAULTS;

但是在DMC MATH_v13.1,并没有SVGEN的定义,这份手册的SVGEN部分定义的结构体名字是SVGENDQ,

而D:\ti\controlSUITE\libs\app_libs\motor_control\math_blocks\v4.3中的svgen.h的例程中定义的SVGEN结构体如下

typedef struct { _iq Ualpha; // Input: reference alpha-axis phase voltage
_iq Ubeta; // Input: reference beta-axis phase voltage
_iq Ta; // Output: reference phase-a switching function
_iq Tb; // Output: reference phase-b switching function
_iq Tc; // Output: reference phase-c switching function
_iq tmp1; // Variable: temp variable
_iq tmp2; // Variable: temp variable
_iq tmp3; // Variable: temp variable
Uint16 VecSector; // Space vector sector
} SVGEN;

看代码中调用的是这个头文件

为什么会出现这样的问题呢,是手册没有及时更新吗?

2.关于park和ipark的疑问

在D:\ti\controlSUITE\libs\app_libs\motor_control\math_blocks\v4.3的park.h和ipark.h中有如下定义:

typedef struct {  _iq  Alpha;   // Input: stationary d-axis stator variable 

 _iq  Beta; // Input: stationary q-axis stator variable 

 _iq  Angle; // Input: rotating angle (pu) 

 _iq  Ds; // Output: rotating d-axis stator variable 

 _iq  Qs; // Output: rotating q-axis stator variable

 _iq  Sine;

 _iq  Cosine;  

} PARK;

 

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; // Input: Sine term _iq Cosine; // Input: Cosine term } IPARK;

 

可以看到,两个结构体中都有Angle的定义,但是在DMC MATH_v13.1手册中定义的park、ipark都没有Angle的定义 这是为什么呢?

typedef struct { _iq  Ualpha; // Input: reference alpha-axis phase voltage   _iq  Ubeta; // Input: reference beta-axis phase voltage   _iq  Ta; // Output: reference phase-a switching function  _iq  Tb; // Output: reference phase-b switching function   _iq  Tc; // Output: reference phase-c switching function  _iq  tmp1; // Variable: temp variable  _iq  tmp2; // Variable: temp variable  _iq  tmp3; // Variable: temp variable  Uint16 VecSector; // Space vector sector } SVGEN;

  • 您好!
    关于您提到的这两个问题请参以下答复:

    1.关于SVGEN的疑问
    在DMC MATH_v13.1第142页有SVGEN定义的详细介绍。

    2.关于park和ipark的疑问
    定义Angle是用来计算Sine和Cosine两个分量的,如下语句:
    park1.Sine = _IQsinPU(park1.Angle);
    park1.Cosine = _IQcosPU(park1.Angle);
  • 您好 感谢帮助
    1.对于SVGEN,再DMC MATH_v13.1第142页中描述的与代码中使用的并不一致,142页中SVGEN引用的头文件是aci_se.h,而在工程中引用的是\ti\controlSUITE\libs\app_libs\motor_control\math_blocks\v4.3中的svgen.h,这两个头文件中定义的SVGEN并不完全一致,我的疑问是作为math_blocks说明文档的DMC MATH_v13.1为什么没有对svgen.h中定义的SVGEN的描述呢?您的回答似乎没有解决我的疑问。
    2.park和ipark也是同样的疑问,DMC MATH_v13.1的先关介绍部分结构体定义并没有angle,而math_blocks\v4.3目录下的头文件中定义的结构体有angle
  • 您好,请问您能解释一下HVPM_Sensorless程序中SVPWM(SVGENDQ_MACRO(v))这一段程序吗?自己看了好久没有看懂,感觉跟理论对不上,跳跃性太强了,麻烦解释一下,谢谢!!