主题中讨论的其他器件:C2000WARE、 MOTORWARE
工具与软件:
专家们、您好!
我以前查看过以下位置的实验项目:
C2000 4.12.7CK_SDK_4_00_00_00\solutions\common\sensorless_foc\docs\labs Ware_Motor
在扭矩环路(Project Name:is06_Torque_control_eabi)中、Iq 和 Id 的电流基准在 ISR 中给出

首先、您能否确认这些值位于 APM 中、而不是 PU 中?
我想所有 PI 计算都仅在安培中完成? 只有在 svgen 模块中、才会将伏和安培值转换为 pu? 请您确认一下!
在同一 ISR 中、我看到还会计算 Vq 和 Vd 限值。

在 user.h 文件中、 提到了选择正确的 USER_MAX_VS_MAG_PU 的推荐!
//! 简明定义允许的最大值与幅度(标幺值)
//! 该值设置 Id 和输出的最大幅值
//! Iq PI 电流控制器。 Id 和 Iq 电流控制器输出
//! 为 Vd 和 Vq。 Vs、Vd 与 Vq 之间的关系为:
//! Vs = sqrt (Vd^2 + Vq^2)。 在此 FOC 控制器中、设置了 Vd 值
//! 等于 USER_MAX_VS_MAG*USER_VD_MAG_FACTOR。
//! 因此、将 VQ 值设置为等于 sqrt (USER_MAX_VS_MAG^2 - Vd^2)。
//!
//! 对于峰值为的纯正弦波、设置 USER_MAX_VS_MAG = 0.5
//! SQRT (3)/2 = 86.6%占空比。 无电流重构
//! 栅极驱动器。
//!
//! 对于纯正弦波、设置 USER_MAX_VS_MAG = 1/SQRT (3)= 0.5774
//! 具有100%占空比时的峰值。 相移
//! 需要的上拉电阻器。
//!
//! 设置 USER_MAX_VS_MAG = 2/3 = 0.6666生成梯形
//! 电压波形。 将需要电流重构
//! (实验08)。
//!
//! 对于空间矢量过调制、详情请参见 lab08
//! SVM 生成器可满足的系统要求
//! 更改为梯形。
我想在中实现相同的功能 具有有传感器 foc 的双轴驱动器工程 . 我想修改 ID 引用、而不是将其保持为零。
这将构成在双轴项目中实现 MPTA 和 FWC 逻辑的基础。
TI\c2000\C2000 Ware_Motor SDK_ \solutions\boostxl_3phganinv\f2837x\ccs\sensored_foc "。
由于双轴项目中的最大调制指数固定为、因此不需要过调制功能作为占空比 0.96. .
在这个项目中,我看到限制在函数 initControlVars()内的 dual_axis_servo_drive_user.c 中硬编码。

因此 Vq 的结果是0.8*0.96=0.768、Vd 的结果是0.48
求矢量和、我看到它小于1.0。 ((sqrt (Vd^2 + Vq^2)< 1)
根据实验源、Vs 幅度不允许超过0.5、但在双轴驱动器代码中、是否允许超过0.5? 您能解释一下吗!
我在这里看到的问题是 PI 控制器中的 IQ.out 控制信号(即 VQ)将始终限制在0.5pu、但 正如上面在 initControlVars ()中计算的那样、它可以高达0.76? 请计算!
在快速电流环路 ISR 中、我计划在快速电流环路中的 PI 控制器运行之前添加此函数、您能否确认是否在 sensorless foc 实验项目中完成了相同的操作?
typedef struct _MaxVoltageVectors_Vars_t_
{
float32_t Max_Vs_Mag_pu;
float32_t Max_Vd_v;
float32_t Max_Vd_pu;
float32_t Max_Vq_v;
float32_t Max_Vq_pu;
} MaxVoltageVectors_Vars_t;
extern MaxVoltageVectors_Vars_t VoltageVectors[2];
void dynamicVoltageVectorLimitCalc(MaxVoltageVectors_Vars_t *vector,MOTOR_Vars_t *pMotor)
{
volatile float32 v_to_pu_factor = 0.0037037f;
if(pMotor->Vdcbus > 0)
{
//DC bus will varying from 260 to 310 in real time.
v_to_pu_factor = 1/pMotor->Vdcbus;
}
else
{
//force to 1/270
v_to_pu_factor = 0.0037037f;
}
vector->Max_Vs_Mag_pu = 0.5f;
vector->Max_Vd_v = vector->Max_Vs_Mag_pu * pMotor->Vdcbus;
vector->Max_Vd_pu = vector->Max_Vd_v * v_to_pu_factor;
vector->Max_Vq_v = __sqrt((vector->Max_Vs_Mag_pu * vector->Max_Vs_Mag_pu) - (pMotor->pi_id.fbk * pMotor->pi_id.fbk));
vector->Max_Vq_pu = vector->Max_Vq_v * v_to_pu_factor;
//Assign the calculated limits to the PI controllers limits
pMotor->pi_id.Umax = vector->Max_Vd_pu;
pMotor->pi_id.Umin = -1 * vector->Max_Vd_pu;
pMotor->ptrFCL->pi_iq.Umax = vector->Max_Vq_pu;
pMotor->ptrFCL->pi_iq.Umin = -1 * vector->Max_Vq_pu;
}
我将在双轴项目中运行速度环路构建级别4