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.

[参考译文] LAUNCHXL-F280049C:轨迹过冲&放大器;SVPWM

Guru**** 2581345 points
Other Parts Discussed in Thread: CONTROLSUITE, BOOSTXL-DRV8320RS, LAUNCHXL-F280049C, DRV8320, UCC27714, MOTORWARE, INA240

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-svpwm

器件型号:LAUNCHXL-F280049C
主题中讨论的其他器件:controlSUITEBOOSTXL-DRV8320RSDRV8320UCC27714MOTORWAREINA240

直流逆变器通过短跳线连接到 launchXL Booster Pack 接头 J5-J8。 ADC 电压反馈 A、B、C 相由3 x 6"双绞线组成、接地对共用两个电路板。

SDK v2.01 Lab05和 Lab07是否具有控制>1Kg 转子速度轨迹过冲的约束条件? 无论加速度调整为小于10Hz/秒,设置目标>10Hz 的电机在启动时都会停转 然后、轨迹只能增加10Hz 增量<60Hz 或轨迹引擎过冲目标并导致 CMPx 跳闸>18.5A。 典型的20Hz 轨迹目标速度下拉+24V 总线并使电机停转、使转子位于一极至多极点位置。 小于0.05千克转子质量的小型 Nidec 系列25电动机没有轨迹速度问题,通过24VDC 电源快速达到>200Hz。

尝试确定齿接原因的大部分问题时间链接到 J7引脚64、65 (电压反馈)被反转、可能在 J7接头 LaunchXL 上?  

奇怪的是>2kg 转子质量最高300 RPM +24V 直流(通过 PI 速度控制实现的梯形 FOC)、只有168 RPM (通过 FAST)、拒绝>60Hz (除非40Vdc 电源)、反馈电阻分压器的最大值为57.42vdc。

是否应仅为实际直流电源峰值(user.h)设置 USER_ADC_Nominal 总线电压? 电压反馈分压器是否 仅用于 USER_ADC_FULL_SCALE_VOLTGE_V? SIMPY Put 标称总线电压是否为独立参数? 显然、参数有助于确定扇区中点、但它是否直接属于 ADC 满量程电压的一部分或与之相关(5.2.3 SPRUHJ1H–2013年1月–2019年6月修订版)?

总之、标称直流总线电压能否比反馈电阻分压器低50%、而不影响轨迹引擎或速度控制器的操作?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    感谢您的提问。 一位专家将为您解答此问题。

    将来、请提供完整的软件名称("MotorControl SDK v#.##"或"controlSUITE")以及您将其用于"速度控制"等的应用 这将使我们能够提供更快的援助。

    此致、

    Vince

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed~]]是否应仅为实际直流电源峰值(user.h)设置 USER_ADC_Nominal bus_VOLTAGE?
    jiaxin sun 说:
    [quote userid=48581""URL to sum /support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed 标称直流总线电压能否比反馈电阻分压器低50%、而不影响轨迹引擎或速度控制器的操作?[/引述]

    USER_ADC_NOMINAL_BUS_VOLTAGE  不重要、仅用于电机识别、您可以将其值设置为电机的额定电压。 它不会影响运行期间的电机控制功能。

    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed 中的电压反馈分压器是否仅用于 USER_ADC_FULL_SCALE_VOLTGE_V? simpy put 是标称总线电压一个独立参数?

    是的, USER_ADC_FULL_SCALE_VOLTGE_V 取决于电压感测电路....

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yanming、

    关于 J7引脚64、65反转(Vsense - B、Vsense - C)、它们是否在 J7上交叉?

    电机现在启动并运行、但 Labs.h 强制加速度增量轨迹速度10及以上运行 user.h USER_MAX_ACCEL_Hzps ((float32_t)(2.0))会增加加速误差 Lab07。 电机应通过40VDC 总线电源和6-8安培峰值的相电流轻松达到190-200Hz。 与梯形 FOC 190-200Hz 相比、SPV 电流峰值现在出现90Hz。

    相电流波形具有随机奇数正弦形状、电机在没有大电流振荡的情况下不会从40VDC 达到80Hz、触发 CPMSSx @90Hz 16安培。 表3中的电流感测引线 J7引脚45/B 和引脚48/C 是否也可以反转? 在参考 已确定的 J7上的 BoostXL-drv8320rs 快速入门指南表3电压和电流感应输入后、问题开始。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    由于您的电机是低电压电机、我们建议您先使用 DRV8320RS 套件识别并运行电机、然后查看是否存在上述问题。 否则、您必须检查电流和电压感应。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3670563 #3670563"]我们建议您使用 DRV8320RS 套件

    已经完成了所有这些操作、BoostXL 无法处理高于56V 的测试电压、也无法处理高于10A 的 HV 套件电机电流负载。 我不记得 BoostXL 达到>120Hz 的速度、至少可以说、这也是非常令人失望的。  

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3670563 #3670563"]因为您的电机是低电压电机

    36极 SPM 电机电压非常动态、与此 SPV 较慢速度和交叉 J7引脚64/65问题无关。 通过6步 FOC 梯形换向的转子速度与 SPV 换向的性能有奇数下降。 可能是由于 FAST 估算器转子位置检测偏斜?

    电流波形(如下所示)不完全是正弦波形、似乎扇区未对齐。 在这种情况下、扇区未对齐会导致任何电流电平下的峰值速度较差、因此电流振荡开始> 15A 峰值跳闸 CMPSSx > 80Hz 转子速度@40Vdc。 然而、Vsense 输入波形 A、B、C 到 Clarke/Park 是非常对称的。 同样、通过同一直流逆变器电流传感器实现的6步 FOC 可达到>190Hz @40V。  

    如果 LauchXL49c 越过 J7引脚64/65、这是否不是硬件问题? FE 向社区公开是否合适。 如果我们必须挖掘 Clarke/Parke 转换来验证电压感应输入之间的奇次交叉争用、这就会导致 TI LaunchPad 的最终原因失败。 请验证 BoostXL drv8320rs 硬件问题是否存在 SPRUIJ3A–2018年11月–2019年8月修订、因为 Booster 标头 J7的引脚64和65错误识别 VsenseB/C 在某处反转。

    编辑:请注意、只有负半周期中心、两端都是1/2波!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我有一个预先怀疑极对数(user.h)被 Clarke/Park 或其他位置除以。 因此、在每个扇区中、只有6步梯形 FOC 的典型速度赫兹的一半、而不会产生过驱 ID。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3670563 #3670563)]您必须检查电流和电压感应。  [/报价]

    这似乎不是问题、BoostXL-drv8320rs 生成了类似的电流波。 3电流放大器上的1nF LP 滤波器电流减小为200pF。 并注意轻微改善的 A 相电流对称性。 电机换向崩溃98-100Hz (振荡)、无限期平稳95Hz。  

    36极 SPM 电机速度应达到大约190-200Hz、600-666 RPM @40Vdc。  

    速度公式:rpm=120*95Hz/36。 速度激光器还确认转子最大转速316 RPM。  

    USER_MOTOR_NUM_POLE_PAIRS (18)可能已将转子速度减半? 如果 SPV 导致转子速度损失问题、TI 将会放弃梯形换向、这是难以想象的。 我们可以忍受梯形电流噪声、它永远不会损失转子磁通链。  

    我们现在在100% PWM 占空比上累积 EMF、以阻止导致磁链崩溃的电流扰动。 为什么在95Hz 300RPM 时 SPV 占空比看起来是100%是个谜。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    通过 Lab05找到 Boostxl-drv8320rs 确定的 ld/LQ ID 磁通值是非对称正弦波的部分原因、但不是半个周期的原因。

    在 EST_State_RATEDFLUX 的前200-800ms x 20k 捕捉中、似乎更真实的 LED/LQ 磁通值几乎是该值的三倍。 否则、远小于默认值估算的磁通 LS 状态 FluxWaitTimes。  然而 、在此捕获时间内、在电机 ID 电流斜坡期间、motorVars.flux_VpHz 非常高(>3V)、并且在纯正弦波>60Hz 速度的完整周期内。 为什么不在 ID 之后?

    lab05电机 ID 电流斜升是高于/低于过账捕获的纯正弦波>60Hz 仍然缺失、但为什么?    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您有机会查看 instaspin 用户指南、您可能知道开环控制或闭环控制的识别状态不同、因此这些状态下的电流波形将不同。

    本项目中使用的 PWM 和控制 ISR 频率是多少?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3672577 #3672577"]如果您有机会查看 instaspin 用户指南,您可能会知道标识具有不同的状态,包括开环控制或闭环控制,因此这些状态下的电流波形将有所不同。

    用户指南 LAB5正在打开的接头声明 ID 允许闭环控制无传感器电机、从未提及开环控制。 总之、Lab7具有与在线 LAB5类似的速度轨迹处理问题。 LAB5电机 ID 过程中的电流波形端到端具有正确的正弦波、在线模式存在问题。

    现已发现 LAB5 ID 会使重型转子加速几次、如羽毛状质量(10Hz/s 至60Hz)、无磁通碰撞。 然而、LAB5和 Lab7都必须将 USER_MAX_ACCEL_Hzps 设置 为极低、才能缓慢地达到100Hz。 我们没有看到这些小转子质量小于1Kg 的问题。 奇怪的是、测试电机对全正弦波 LAB5 ID 过程反应良好、并会缩短1/2波电流在线运行时间。 其他供应商 SPV 相电流波形未显示类似的1/2波电流、这是奇怪的错误。

    最后一次检查 CCS 寄存器视图 ePWM 模块 Gens 1、2、4 CMPA 有上数/ dn 计数、CMPB 零更新计数。 似乎、如果 CMPB 没有更新、它无法在低侧 MOSFET 上产生功率周期、则永远不会发生饱和开关。 可能是产生1/2波脉冲的合理原因。 其他电流应始终为过零、只有幅度必须变化。 除非 SW 输出到 PGA_of 滤波器引脚、否则您可能无法通过 PGA 电流监控器看到此问题。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     下图显示了全部3个发生器上的 PMW-B 动作信号。 还表示图片中没有 CPMB 加载计数。

    通常、对于 PWMB 切换输出驱动器、CMPB 必须具有初始加载计数、PWMB 应保持低电平状态。 图中的图示似乎不正确、仅显示 CMPA 负载点。 从技术上讲、PWM-B 输出驱动应保持低电平、因为 CMPB 未加载任何比较点值。 也许这就是 LAB5或 Lab7中不会产生更稳健的正弦波的原因?

    死区发生器 A 很可能会反转断开的 PWMB 以生成新的 B 输出。 这可能不会产生由 PI 或其他输入源启用控制的纯正弦波反转 Park 变换。 对于梯形 PWM、我们使用动态死区软件控制周期、仅对 NFET 上的最后一个周期有效。 这允许 PWMB 通过死区并使用 CMPB 更新。   

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    昨天将电流1nF 滤波器更改为200pF、今天将2200pF。 转子速度现在达到110Hz、转子磁通加速到120Hz (0.5Hz/秒)时会崩溃、这种感觉并不好。  

    上面的电流波形似乎启用了快速额定电流控制、有时会自动启用 LAB5 ID 处理 EST_State_IDRATED。 当快速额定自动启用电机时、电机有蜂鸣噪音泽器泽器 Zer 等... 然而、在 J7引脚64/65反转后、ID 过程继续进行、不再触发 CMPSSx 故障、转子再次加速60Hz (10Hz/秒)以完成 ID 过程。  是否可以在不应启用时启用快速额定电流(红线)开关、并在电机 ID 标志变为 false 时使电流波形失真?

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CMPB 是否用于 PWM 输出取决于 ePWM 配置。  

    让我们首先重点讨论 TI EVM 套件的运行问题、以了解问题是来自硬件还是软件。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    奇怪的 LAB5 R/L 欧姆测试正弦电流的两端也有1/2波。 我的直觉告诉我 PI 控制的电流不是很好、因为它似乎截断了 SPV 代码切换表扇区0、7的末端。 整个周期应存在两个连接的象限正弦电流。 快速控制 Inv Park 和稍后启用的 PI 的东西可能是斩波相电流驱动? 电动机>1kg 转子质量仅在应用了全相电流的 LAB5 ID 过程中运行良好,对我来说似乎是很远的。

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3673963 #3673963"> CMPB 是否用于 PWM 输出取决于 EPWM 配置。  [/报价]

    电机 ID 过程 LAB5如何形成完美的正弦波整个周期控制转子10Hz/s 加速度 mystaid 1。 启用 PI 时、转子扭矩的正弦波电流控制在两次捕获中都是分开的。 如果 PI 控制将每个周期结束上的正弦电流失真为1/2波、则 Lab7不关心 motorVars.LS ld/LQ 值的准确性。 我们如何使 LAB5在线和 Lab7产生纯正弦波?

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3673963 #3673963"]让我们首先重点讨论 TI EVM 套件的运行问题,以了解问题是否来自硬件或软件。

    由于 相电流电感器峰值达到 BoostXL 功能的边缘、因此 LAB5 ID 过程看起来都是如此。 也许由于 J7引脚64/65反转、ID 过程的 LS 半部分无法完成、并且布置奇数的 ld/LQ 值甚至会烧毁 B 分流器。 电动机的运行频率大于100Hz,但没有表明运转情况如何,并且在施加总线电压(40V)时速度有所下降。

    在引脚64/65交换 LAB5 LS 过程完成后、通过我们的测试逆变器跳闸 CMPSSx 故障。 在交换 J7引脚64/65之前、如果只移动转子30°增量小于1Hz 的速度、它甚至会加速转子。 否则、慢速估算器绝不会将球形电压传递到 FAST 估算器的高速环路。 该交换似乎是 LaunchXL 的硬件问题、因为它会影响我们的产品、而 TI 套件不会影响?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3674087 #3674087"]我们如何使 LAB5在线且 Lab7产生纯正弦波?

    相电流波形的形状取决于电机的 BEMF 形状。

    观测器(FAST)需要 Rs、Ls、磁通等精确的电机参数来估算实现无传感器 FOC 的转子位置。

    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3674087 #3674087"]交换似乎是 LaunchXL 的硬件问题、因为它影响我们的套件、而 TI 套件不会影响?

    我无法完全理解您对此有什么疑问。 我想 您可以在 launchxl-F280049C + boostxl-drv8320rs 上识别电机、而无需进行任何更改、即使在电机轴上不增加重负载的情况下、也可以高速运行电机。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3675425 #3675425"]相电流波形的形状取决于电机的 BEMF 形状。

    不完全正确、因为5相 SVPWM 具有已知的死区谐波、而7相 SVPWM 没有、 问题是为什么恰好有7个声明没有? 如果两个扇区(000、111)未正确处理、ePWM 模块正弦输出将被截断 SVM 代码表输出的死区时间失真和斩波。

    在递减计数模式下、似乎没有为7相启用 CMPB 动作限定器。 许多人都报告说、这个论坛的当前在一定速度下处于分裂状态、似乎适合这个问题。 Vsense 反馈信号(ABC)没有1/2波 PWM 周期。  

    正如我指出的、LAB5电机 ID 电流斜坡通过 ePWM 模块的 InvParke/SVM 控制产生全波正弦波。 在电机 ID 或运行时 PI 控制之后不会产生相同的正弦波形式。 然而、在上述首次捕获中、带/不带 PI 速度控制的 LAB5/lab7在线运行时间 ePWM 输出被1/2波电流周期失真。 1/2波周期似乎由 ePWM 模块生成、而不是反馈环路生成。

    您的推理似乎是电流上升期间未使用 Vsense 反馈环路? SVM 代码表如何能够通过上面描述的快速模块布局生成纯 DSP 正弦波而不生成反馈环路?

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3675425 #3675425"]我无法完全理解您对此的问题。

    这不是一个问题、而是报告 J7引脚64/65 (VsenseB/C) launchXL49c 也可能会影响 BoostXL。  电机在 ID 过程后不会加速、但通过 BoostXL 进行了加速。 可能是 PGA_of 输入 J7引脚64/65在 Launch Pad 指南或 TRM 表中未被识别。 如果 J7引脚64/65 Vsense 输入未按 BoostXL 快速入门指南所示的正确顺序进行配置、最好了解其中一个的工作原因、另一个不工作。

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3675425 #3675425"]我认为 您可以在 launchxl-F280049C + boostxl-drv8320rs 上识别电机、而无需进行任何更改、如果您不在电机轴上添加重负载、甚至可以高速运行电机。

    与梯形 FOC 换向相比、通过 BoostXL 在相同40VBus 下的电机速度滞后>40%。 最高转子速度仅为150Hz、应轻松达到190Hz。 同样、通过 BoostXL 的电流波 DSP 产生了1/2波电流失真 LAB5 ID 和在线 Lab7 PI 控制。 用于 SVP 电流生成的一个专业技术是减少振动提高效率、这与提高转子速度有关、从而减少能源消耗。 我认为 SDK FOC 中的 ePWM 模块控制配置不正确。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我认为逆变器功率损耗问题与 ePWM 模块类型4配置 hal.c 相关 软件操作限定符(ePWM.h)定义了未完成的操作控制状态,如 TRM 表18-8所示。 针对 SPV 的典型 ePWM 模块控制要求 ePWM-A/B 驱动器为对称互补对。 死区控制状态不正确似乎是导致1/2波脉冲结束正弦电流生成的问题。 否则、重叠波形由图18-34所示的死区发生器生成。

    典型的直流逆变器在快速衰减电流模式下不会产生全功率。 当 LO 驱动 MOSFET 未保持大部分饱和状态以导致 HO 驱动 MOSFET 中的慢速衰减电流周期时、已知会发生功率损耗。 似乎 解释了在通过 BoostXL 和梯形 FOC 与实时动态死区控制状态进行比较的每个调制技术中、对于相同的40V 总线电压、通过 SPV 调制导致转子速度损失40%。

    由于针对目标的10Hz/s 加速度的电流驱动不是100%、因此转子磁链快速丢失时会发生换向崩溃。 为了应对快速衰减电流周期、通过本地发生器更新和全局控制寄存器周期更新直接控制死区非常有效。 或者由软件控制 TRM 动作限定符部分18.6中所述的动作限定符、但无法找到死区部分18.7中所述的参考。   

    死区重叠发生在站点1或站点2上安装的 BoostXL。 然而、hal.c 没有为 ePWM-A/B 驱动器配置死区直通。 这种死区冗余操作控制是不必要的、似乎会导致 BoostXL-drv8320rs 硬件的调制问题。 SDK FOC 具有死区配置问题、无法轻松排除、可能导致任何直流逆变器的 DSP 正弦电流波形生成不良。 放置#ifdef DRV8320SPI 来启用完全死区模式1是一个逻辑补丁。   

    这两个死区控制18.7.14缺失 epwm.h v1.07 driverlib

    –高电平有效互补(AHC)
    –低电平有效互补(ALC)

    •模式2-5:经典死区极性设置:
    这些表示典型的极性配置、应满足可用的工业电源开关栅极驱动器所需的所有高电平/低电平有效模式。 图18-34显示了这些典型情况的波形。 请注意、要生成图18-34所示的等效波形、请配置动作限定符子模块以生成 EPWMxA 所示的信号。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    缺少用于调用 ePWM_setDeadBandDelayMode()的掩码包含以包含 hw_epwm.h (ePWM_DBCTL_OUT_MODE_M 0x3U)死区模式3。 然后、看起来是 ePWM 模块向每个半桥产生一个互补对、非重叠 A/B 信号。

    奇怪的是、两种 DB 模式都是0x3表18-8、但极性是不同的二进制代码和缺失的补码极性定义(ePWM.h)。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    你是对的。 如果使用 DRV8320、则无需启用或配置死区。 死区时间将由 DRV8320设置和生成。 因此、这就是使用 drv8320在项目中在 hal.c 中设置非常小的死区的原因。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    但是、DB 模式应设置为4、而不是2、因为这两种模式都应设置为1。 它需要对称互补对来产生正确的正弦波形。 也许 ePWM 的线索是在末端生成梯形形状、但中心对齐、从而奇怪地产生全正弦波死中心或占空比和周期非常短。 当直流总线电压低于电机额定电压以测试正确的 ePWM 模块配置时、可能会更容易注意到梯形结束问题。

    BTW:SDK 直接对计数器寄存器进行预编译立即更新是一种不明智的做法、会导致逆变器在清除故障状态位时驱动相位。 当输出栅极从高阻抗切换至活动状态时、电机发出响亮的噼啪/喀哒声。 如果1/2电桥没有诸如 ucc27714栅极驱动器或 drv8320rs 的使能控制引脚、则会发生突然的快速电流。  

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3676783 #3676783"]因此,这就是使用 drv8320在 hal.c 项目中设置非常小的死区的原因。[/quot]

    是的、似乎不是很好、报告一些已更改死区配置 、禁用 红色/馈送(模式4?) 与 BoostXL 配合使用。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    PWM 输出取决于 AQCTLA/B 和 DBCTL、并根据栅极驱动器和逆变器选择正确的死区运行模式。 根据您的理解、死区模式与电流波形无关。 在大多数情况下、用户执行软件死区时间补偿来改善电流波形。

    根据 EPWM 控制寄存器、PWM 输出强制所有侧为低电平、或强制高侧为低电平、而强制低侧为高电平。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3678298 #3678298"]根据您的理解,死区模式与当前波形无关。

    然而、周期末尾的1/2波通过模式2 DB 得到了改进、但是1/2波仍然存在。 由于未使用 CMPB、并且无法启用 DB 模式1、因此 SDK 死区处理不如以前、因为它会将互补信号 EPWMA-A/B 传递到 BoostXL-drv8320rs。 然而、在 ePWM_setDeadBandDelayMode (红色/馈入、错误) DB 模式1中、添加了一个简单的 bool 开关来实现这一目的。  

    案例模式2 DB 生成互补的高电平有效 A/B 对(TRM 图18-34)、用于1/2电桥的 SPV 控制。 模式4 DB 产生高电平有效重叠 A/B 对、这不适合用于任何1/2电桥的 SPV 控制。 高电平有效信号对正常工作、但在奇数 DB 时间插入期间、相电流驱动器似乎会中断电源周期。 这就是我们在基于 ARM 的 PWM 模块中使用 DBCTL 寄存器的动态 SW 控制来实现高侧 MOS 的慢速衰减的原因之一。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如您发布的另一个主题中所述。 通常、死区时间值取决于栅极驱动器和功率 FET、这是一个固定值。 当然、如果执行了死区时间补偿、您可以在线更改以下代码中的死区时间值。

    //设置死区上升沿延迟寄存器(DBRED)
    ePWM_setRisingEdgeDelayCount (obj->pwmHandle[cnt]、HAL_PWM_DBRED_CNT);

    //设置死区下降沿延迟寄存器(DBFED)
    ePWM_setFallingEdgeDelayCount (obj->pwmHandle[cnt]、HAL_PWM_DBFED_CNT);

    我不明白您对电机控制意味着什么"SPV"。  是太阳能光伏吗? 我们使用 SVM 或 SVPWM 来计算 电机控制的占空比。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这2个调用再次覆盖 DBCTL S3、S2寄存器极性0x0000、DB 模式4。 一个快速解决方法也许是加载 DBFED=0然后加载 DBRED=1来使 DB 模式2有效。

    SPV =空间矢量相位控制。

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65-reversed/3679661 #3679661"]我们使用 SVM 或 SVPWM 来计算 电机控制的占空比。

    正确、但扇区查找表应位于 SVM 块中、由 SVM 块 RAM/Flash 加载的 CMPA 寄存器值、而不是 ROM! 请在 ePWM 模块正在加载 CMPA 寄存器的位置发布代码 snip、其中包含上面图55所示的任何 SVM 块值。  新的 x49c FAST 估算器拓扑与图55完全不同  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可能会在  svgen.h 中的 SVGEN_RUN ()中找到 SVM 代码并计算 PWM 占空比、在 hal.h 中的 HAL_writePWMData ()中计算并写入 CMPA 这两个函数都是项目中的开源代码。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不关心隐藏的 ROM 对象、这些对象不会通过 SVM 块暴露正在输入 ePWM 模块的寄存器。 我甚至不想仅仅为了确定1/2波电流脉冲的调制位置或原因而使用 CMPB。 由于 ROM 隐藏了 SVM 块扇区查找表、这似乎是 TI 工程要修复的问题。

      

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    BTW:SDK v2.01 kgm^2惯性计算(labs.h)产生了无法使用的高电动机.Vars_KP_SPD 值。 同一问题公式 PG.72 (实验指南) KP 系列 BWC 十进制数右移、L=n.nnn、实际上 L=0.nnnn。  转子质量>1kg PI 速度积分远高于此比例。 下面的修复方法有助于 PI 速度控制器快速稳定、减少过冲目标。 原始公式会导致立即磁通从 KP_SPD 崩溃、超出快速稳定电流所需的值几百。

    (user.c)
       #endif
        }
        else
        {
           	/* Lab7 determined BW required for kp_spd/ki_spd */
            pUserParams->BWc_rps = MATH_TWO_PI * (float32_t)100; //Filter pole: 100 rads/sec
            pUserParams->BWdelta = (float32_t)5.598;
    (user.c)
    #if(!USER_MOTOR_INERTIA_EN)
       	   	/* Motor has not been ID */
        	pUserParams->flag_bypassMotorId = false;
    
            pUserParams->BWc_rps = MATH_TWO_PI * (float32_t)100.0; //20
            pUserParams->BWdelta = (float32_t)8.0;
    
            	/* Is not motor intertia user.h */
            	pUserParams->Kctrl_Wb_p_kgm2 = (float32_t)3.0 *
    										   pUserParams->motor_numPolePairs *
    											(float32_t)(0.001) /
    											(float32_t)(2.0 * 0.000001);
       	#endif
        }
        
    (user.h)
    #define USER_MOTOR_INERTIA_EN             1
    #define USER_MOTOR_INERTIA_Kgm2           (0.352838295721)  
    
    (labs.h)
    #if(!USER_MOTOR_INERTIA_EN)
        //
        // set the speed controller
        //
        PI_setGains(piHandle_spd, motorVars.Kp_spd, motorVars.Ki_spd);
    #else
       
        float32_t Kctrl_Wb_p_kgm2 = (float32_t)3.0 *
                                  userParams.motor_numPolePairs /
                                  userParams.motor_ratedFlux_Wb /
                                  (float32_t) (USER_MOTOR_INERTIA_Kgm2 / 2);
                                  //Kgm2*2, * numPolePairs

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    如果您在   svgen.h 中查看 SVGEN_RUN(),SVM 不需要任何 SVM 块扇区查找表,任何 SVM/SVPWM 算法都不需要查找表,因为只有6个具有2级电机控制的扇区。

    是的、您需要根据  您的电机和系统选择正确的 BWC_rps 和 BWdelta、默认值仅适用于 user.h 中定义的某些电机

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3682492 #3682492"]如果查看   svgen.h 中的 SVGEN_RUN (),则 SVM 不需要任何 SVM 块扇区查找表单

    所有空间矢量运动都需要查找表来通过触发 LED/LQ 阶数的每个1/2桥 NFET 帧来产生正确的相位驱动。 事实上、我们没有看到一个表、因为它存在于 ROM 中。 Code 000 - 111要求在全行业范围内查找所有 ePWM 模块的开关表。

    SDK 或 ePWM 不会产生适当的正弦三相电流。 适当的三相电流驱动没有中的空中断或1/2波。 梯形 PWM 电流2相有源1、共3相具有关断时间。 然而、3相正弦全部3个相位保持有效、在 ePWM 生成过程中无中断。 电机也会停止运转,电流振荡>90Hz 转子甚至不会达到全部3相驱动的轨迹 Hz 速度。

    也许通过向从器件 ePWMx SDK 添加120°相移偏移、可能会产生始终有效的三相电流正弦波?   

    float32_t Kctrl_wb_p_kgm2公式在 BWC_rps、BWdelta 大于0时不正确。 由于 KP_SPD 值增加、电机甚至无法启动、但电流会变得很高。 必须想象奇怪的勘误表 x49c MCU、其中 x79D MCU 可能有所不同?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可通过不同的方法来实现 SVM、MotorWare/MotorControl 中使用的方法无需计算扇区。

    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3683343 #3683343]float32_t Kctrl_wb_p_kgm2公式在 BWC_rps、BWdelta 大于0时不正确。 由于 KP_SPD 值增加、电机甚至无法启动、但电流会变得很高。 必须想象奇怪的勘误表 x49c MCU、其中 x79D MCU 可能有所不同?[/quot]

    我很难跟你走。 您能对此进行详细描述吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3683694 #366894"]实施 SVM 的方法不同,MotorWare/MotorControl 中使用的方法无需计算扇区。[/quot]

    我已有 Motorware TI 文档说明了如何操作、甚至显示了 SVM 需要表格来控制直流逆变器以产生全波正弦电流。 SDK 电流在每个周期中具有梯形属性、相电流生成中存在宽中断。 可能是 SPM 电机在相同的40Vdc 中失去45%的最高速度的原因。 TI SVM 似乎应该通过产生全波正弦电流来超过梯形 FOC 电机速度。  请注意、CMPA 负载值仅在 PI 速度发生变化时更新、而占空比在稳态期间保持50%。 CMPA 负载在电流的每一端的1/2周期脉冲对脉冲的起源/产生方式没有意义。

    下面的第一个图像来自 ACIM/SPM 电机的 Motorware SVM 代码表。 大多数供应商都使用查找表来产生 SVM 正弦波电流、为什么 TI 的矢量偏离了成熟的方法?

    BTW:轨迹加速中断节拍(1)(user.c)的一部分原因是启动崩溃10Hz/s Lab7。 轨迹中断节拍计数缺失(user.h)、可能是飞行开始问题 Lab9的一部分。 我设置5个周期来减慢启动轨迹、类似于 PI 控制器积分的 EMF 跳跃计数来采取措施。   

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3683694 #366894">我很难跟随您。 您能对此有详细的描述吗?

    查看上面的代码剪、与 SDK v2.01或 v3.01进行比较、对 user.c 进行了多处更改 问题是当用户将 kgm2惯性添加到电机参数 user.h 时、kgm2定义会导致 CCS 编译器错误   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3684498 #3684498]\n 下图是来自 ACIM/SPM 电机的 Motorware SVM 代码表。 大多数供应商都使用查找表来生成 SVM 正弦波电流、为什么 TI 与成熟的方法存在矢量?[/quot]

    MotorControl 中实现的方法也是一种经典的 SVM 算法、可在一些教科书和论文中找到。

    在 user.c 中添加电机宏定义 这些计算参数仅用于作为参考的速度和电流控制器。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3686292 #3686292"] MotorControl 中实现的方法也是一种经典的 SVM 算法,可在某些教科书和论文中找到[/引用]

    我没有通过 TI wiki 或其他已发布文章或专利进行过研究。 此 SDK 无传感器 FOC 方法(hal.h)不能在 ADC 感应电压之后很好地向 Clarke 生成合适的相电流和相移。  

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3682492 #3682492"]不需要查找表,因为只有6个具有2级电机控制的扇区。

    请注意上面的 SVM 开关表注释2级逆变器代码。  奇怪的是、我们看到170ms 无电流间隙达到80-100Hz 速度、逆变器不是7相控制的 FOC。 这似乎可能是由于 CMPA 从 x49c 工具链寄存器指令中截断了加载。 加载计数 CMPA 寄存器位32:16和 TBCTR 总线位15:0、计数器通过 CCS 调试具有极高的存储器映射十进制值。 奇怪的是、该周期在占空比为50µs μ s 时仍然保持不变、但在170ms 的空隙期间、FOC 换向丢失了开关脉冲。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    可能是远程可能性 x49c ePWM 模块在未知情况下默认为 HR 模式4、24位 CMPAHR 位(24:0)。  数据表 x49c/TRM 提到 ePWM 模式0 CMPA 缺省值16位对称 PWM。

    如果 ePWM CMPA 寄存器实际上处于模式4、即使 HRPE 位从未启用、CMPA 16位匹配计数会发生什么情况? 看起来 ePWM 仅通过328µs MAIN_ISR 中断加载 CMPA、不影响50µs TBPRD 周期、仍然允许对 TBPRD 进行小的占空比更改、从而仅加载较低的8位 TBCRT 匹配计数位(24:16)。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3686936 #3686936]\n 如果 ePWM CMPA 寄存器实际上处于模式4、即使 HRPE 位从未启用、CMPA 16位匹配计数会发生什么情况? 看起来 ePWM 仅通过328µs MAIN_ISR 中断加载 CMPA、不影响50µs TBPRD 周期、仍然允许对 TBPRD 进行小的占空比更改、从而仅加载较低的8位 TBCRT 匹配计数位(24:12)。   [/报价]

    似乎您正在另一个主题中讨论此主题、请不要在此主题中重复同一个问题。 谢谢!

    [引用 userid="48581" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3686856 #366856">我没有通过 TI 维基网站或其他已发布文章或专利进行过任何研究。 此 SDK 无传感器 FOC 方法(hal.h)不能在 ADC 感应电压之后很好地向 Clarke 生成合适的相电流和相移。  [/报价]

    您可以在 google 中搜索"用于驱动空间矢量 PWM 逆变器的低成本数字信号生成"、并查找有关 SVPWM 的论文、其中介绍了如何在不带扇区识别的情况下实现 SVM。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3687272 #36872"]

    似乎您正在另一个主题中讨论此主题、请不要在此主题中重复同一个问题。 谢谢!

    [/报价]

    因为您不承认该方式 SDK 存在任何类型的 PWM 调制问题。 由于中断时序和其他方面的原因,通过 SDK FOC 运动代码正确运行的硬件平台不仅仅是一个与软件相关的主题。 许多海报都报告了当前和速度问题、这是有充分理由的、SDK 无法在 x49c 硬件平台上正确执行。 高速电流的 IQ 偏斜角似乎是另一个很好的线索 、这是一个可怕的错误。

    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3687272 #36872"]用于驱动空间矢量 PWM 逆变器的低成本数字信号生成"[/quot]

    同样、您甚至不能考虑缺失的 PWM 调制脉冲也会困扰无传感器 FOC BoostXL。 根据几本书的资料、从上面捕获的 CH2中可以看出 PWM 生成的正弦电流波是完全无效的、您也可以进行研究。 我怀疑 Clarke 变换是否会导致缺失的 PWM 脉冲显示首次捕获的 CH2。  

    这些链接是有关 SVM 如何产生正确正弦三相电机电流的知识来源。 第1个链接具有动画 SVM 扇区滚轮、非常酷、因为它显示逆变器开关随着扇区变化而变化。

    https://www.switchcraft.org/learning/2017/3/15/space-vector-pwm-intro

    https://community.nxp.com/thread/466420 

    https://www.researchgate.net/profile/Ayman-Yousef-6/publication/282859193_Space_Vector_Pulse_Width_Modulation_Technique/links/574db33a08ae8bc5d15bf37b/Space-Vector-Pulse-Width-Modulation-Technique.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-j7-pins-64-65/3687272 #3687272"]您可以搜索"用于驱动空间矢量 PWM 逆变器的低成本数字信号生成"[/quot]

    由行业联合开发的 SVM 不会删除扇区查找表、以通过单个 ePWM 比较器驱动三相逆变器。 将 SVM 与单词(修改后)相加是恰当的做法、以将其与过去十年中已知的理论区分开来。

    我严重怀疑 修改后的 SVM 驱动器(SDK MOTION FOC)的作者是否有任何想法 ePWM 模块忽略必要的脉冲周期、从而产生死区时间间隔3相电流驱动。 这似乎与 TI 逆变器功率级产生模拟120 VAC 正弦电压的方式完全相反。   

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您可能会看到下面的两个链接。 CSVPWM 在 motorControlSDK 中实现。 BTW、SVM 是一种计算 ePWM 模块占空比的算法、但它与 ePWM 模块无关。

    http://aboutme.samexent.com/classes/spring09/ee5741/Space_Vector_PWM.pdf

    https://www.ijera.com/papers/Vol3_issue5/S35102109.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Yanming、

    第一个链路讨论空间矢量滚轮、第二个链路通过开始;

    摘要:本文介绍了 VSI 馈送感应电机驱动器的基于空间矢量的通用非连续脉宽调制(GDPWM)算法。  

    x49c 上的 SDK 的问题似乎是 ePWM 在不应产生100%分频占空比的情况下产生 MAIN_ISR Instaspin 382µs 抽取周期。 该问题似乎会导致交流电流驱动中出现空隙并在两侧产生直流脉冲。 GDPWM 链路脉冲序列具有较小的中断、因为 ePWM 会产生中点中心并使感应电流失真。 我认为这个问题与存储器映射地址空间中相对于计数器比较子模块寄存器地址位15:0的 x49工具链和 CMPA 二进制位置有关。  

    我通过0.5V 绑定周期降低了 GDPWM 开关。 然而、在文章示例中、PWM 脉冲会产生100%的交流正弦电流波形。 这与 SPM 电机实际发生的情况相差甚远、因为 Vsense 永远不会发生转差。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Yanming、

    我曾多次询问论坛 Instaspin 是否产生7相或5相 SVM 代码。 答案是、7相 SVM。 GDPWM 不适用于 SPM 电机、而是用于 ACIM 以降低 LD/LQ 转子滑动角的扇区跟踪复杂性。 Motorware SVM 过去使用过的位置传感器集成到 ACIM 电机驱动器的 FOC 中、以及 ACIM 和 SPM 电机的6个扇区代码表。

    为什么 SDK 不包含与 Motorware 无传感器 FOC 相同的扇区代码表? 在我看来、如果 GDPWM 像 CSVM 一样强大、那么 x49c 上的运行不正常。 似乎是 TI 工程在 x79 ePWM 上尝试 SDK 的好理由。  同样、在施加相同电压的6步梯形换向条件下、电机速度会损失45%。 这只能响铃钟、而不能正常工作。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有一个观察结果、GDPWM 具有两个调制方案。 单靠 CMPA 可进行单面全正调制。 GDPWM 类似于快速衰减梯形 PWM、CMPB 生成低侧电桥脉冲、CMPA 生成高侧电桥脉冲。 对于负-Vabc_pu[n]和 CMPA +Vabc_pu[n]值、也许 CMPB 加 ePWM 可以生成如下所示的反相。 也就是说、如果目标是通过生成相同的调制脉冲来模仿 GDPWM。 通过将 HAL_writePWMdata()拆分为两个不同的比较器加载例程,似乎可以改进 SDK 调制。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    CSVPWM 使用具有两个零矢量 V0 (000)和 V7 (111)的7相、DPWM (如 DPWMMAX 或 DPWMMIN)使用仅具有一个零矢量 V0或 V7的5相。

    如上所述、SVM 独立于 ePWM 模块。 如果 EPWM 设置为具有死区的对称输出、则可以使用 CMPA 为 SVPWM 或 DPWM 实现 PWM 输出。 当然、您可以使用 CMPA 和 CMPB 获得更灵活的输出。

    下面的链接是 SVPWM 的简要介绍、可供您参考。

    www.switchcraft.org/.../space-vector-pwm-intro

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-svpwm/3689424 #3689424"]像 DPWMMAX 或 DPWMMIN 这样的 DPWM 使用五相、只有一个零矢量 V0或 V7。[/quot]

    请注意、SDK 信号与5相更密切相关、两个引脚有效、一个引脚无效。 我在 SDK 调制 PWM 输出的上方还指出、GDPWMAX 或 GDPWMIN 都不是这一点、因为它缺少波形的下半部分(-pu)。  似乎可能是由于缺少占空比 CMPB、CMPA 存在高阶匹配计数问题。 PWM 宽信号空隙不属于大质量转子并导致混乱。 请注意、仅特斯拉-S/GM 螺栓转子约为60磅。  

    BTW:在内联声明变量(hal.h)的前面添加 float32会导致较大的相电流瞬变。 THD 降低2%或更高。 这是一个很好的变化、示波器信号捕获的10K 样本深非常干净。 我认为瞬变来自 INA240、 不是 SW。

    HAL_writePWMData(HAL_Handle handle, HAL_PWMData_t *pPWMData)
    {
        HAL_Obj *obj = (HAL_Obj *)handle;
        uint16_t pwmCnt;
        float32_t V_pu;
        float32_t V_sat_dc_pu;
        float32_t V_sat_pu;
        float32_t period;
        
        // Remove inline floats being decalred above

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-svpwm/3689424 #3689424"]以下链接是有关 SVPWM 的简要介绍,供您参考。

    我上面所说的链接是给您的。 我使用了有关 TI 方法的 Wiki PDF 文档来生成 SVM、下面的文档尤其适合阅读。 我在早期了解 SVM 时使用了以下 PDF、并为基于 ARM 的 PWM 创建了扇区查找表。

    /cfs-file/__key/communityserver-discussions-components-files/171/TI_2D00_TMS320F243-SVPWM-spra524.pdf

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-svpwm/3689424 #3689424"]像 DPWMMAX 或 DPWMMIN 这样的 DPWM 使用五相、只有一个零矢量 V0或 V7。[/quot]

    经过一些思考、GDPWM 文本显示2个有效桥臂、2个 NFET 不是5或7。 相桥臂包括一个侧 H/L 共模电桥处于激活状态、两相在任何给定时间处于激活状态。 GDPWM、如上所述、概述了两相有源开关。 开关损耗更小,THD 因为在任何时候只会有2个 NFET (电感)。  5/7相位信号由 SVM 扇区表 U0至 U7专门生成。

    DPWM-MIN/Max 由高电平有效重叠的 ePWM A/B 输出组成、并馈送死区 B 反相。 我们还看到颠倒的原因包括-400V 调制信号、梯形快速衰减换向 。 区别在于、SDK 具有单个 CMPA 占空比、并忽略了 GDPWM 文本中讨论的正确 DPWM-MIN/Max 所需的负调制信号。

    然而、它还显示了 CSVM Vsense 信号(仅作为示例)、而没有扇区查找表、说明了如何生成此类调制。 Point 是 CSVM (示例)只是 GDPWM 的基础。

    典型的0类 PWM 模块可通过 CMPB 占空比变化轻松产生快速衰减±PWM 调制信号。 将 CMPB 添加到 SDK 中会拆分 V_pu 算法、用于在饱和数学运算后产生不稳定电流的±比较器负载事件。 然而、x49c 死区生成输出仍然是互补的、而不是高电平有效、模式2死区可能是原因。   

       

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    上面提到的 PWM 模块不同于 C2000的 ePWM 模块、C2000 ePWM 更灵活。 您可以根据自己的要求设置 ePWM。

    目前、motorControlSDK 只需使用 CMPA 来实现 SVM。 我们可能会使用 CMPA 和 CMPB 来在将来实现您提到的更复杂的输出。 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    BTW HTM 或 PDF 中没有有关 SDK 调制技术的文档。 co/sin maths svgen.h、hal.h 引脚钳位方法与各种来源中显示的数学不同。 下面的文章提到 SVPWM 仅具有出色的低频和 更高的 DPWM 频率、我的书籍50kHz - 100Kh 构成高频。 可以通过 J5-J7上的 BoostXL 实现的最佳 SDK 为150Hz。   

    查看高性能 DPWM 研究论文。 数学公式使用数字60°空间矢量旋转、仅通过最高相位的最大 V 确定。 我注意到 CMPA 加载占空比值的方式与 SDK 方法略有不同。 相电流不均匀 C 相峰值、A/B 落后。 在将 float32_t 定义移动到声明区域后、所有电流在稳定状态下均减小了几安培。 CCS 编译器生成更精细的粒度输出、float 是添加到每个内联代码语句中的 typedef、会减慢 CPU 速度。   

     https://minds.wisconsin.edu/bitstream/handle/1793/9932/file_1.pdf;sequence=1

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只有 CSVPWM 在 motorcontrolSDK 中实现、电机相电流显然不 受 SVPWM/DPWM 模式的影响。

    由于 F28004x 器件支持硬件 FPU32、因此 motorControlSDK 中使用了浮点。

    让我们结束该主题、因为您没有 特定的器件或软件相关问题。 谢谢!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="35051" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-svpwm/3691746 #3691746"]只有 CSVPWM 在 motorcontrolSDK 中实现,[/quot]

    与这些多个文本链接相反、CSVPMW 仅使用查找表来切换 VSC/VSI。 其中 DPWM-x 使用旋转计算、没有用于开关逆变器桥臂的查找表。

    FOC 似乎与 DPWM1匹配、因为它没有切换表、并且旋转计算非常相似、几乎是直接复制。 Motorware 曾经生成7相开关代码000-777、因此任何人都认为 SDK 在开关方案中没有区别。

    奇怪的 launchXL 无法与非供应商的 VSI 硬件正常配合使用、并使 Vsense 引线 B 反向(C 表示 Vsense、C 表示 Vsense)。如果相位驱动顺序和 Vsense 引线是 BoostXL 的典型(A、B、C)连接顺序、则 VSI 将无法正常工作。 当 ABC 订购到 VSI 时、VSI 在电流驱动中产生60°至90°相位角误差、这是低速估算器在没有大电流尖峰瞬态的情况下正常工作的唯一方法。 对于非供应商 VSI、为什么会颠倒相位顺序、从而使电流在1/2波脉冲下非常失真?

    VSI 在 Vsense 和1/2桥接 GPIO 连接方面与 BoostXL 没有区别。 而慢速估算器不会通过 ABC 订单再次启动电机、这对于 SDK 的无传感器 FOC 来说并不是很好的选择。 为什么要将 V_PU 负输入设为 math_sat (V_PU、0.5、-0.5)、然后将周期的+0.5 DC 和相乘? 似乎会冲出刚刚计算出的饱和值。 当计算得出负桥臂 CMPB 负载值时、CMPA 周期加载算法毫无意义。 CMPB 正常工作、但占空比也从 CMPA 上非常小的值开始。

    [引用 userid="35051" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/993094/launchxl-f280049c-trajectory-overshoot-svpwm/3691746 #3691746"]由于 F28004x 器件支持硬件 FPU32、因此在 motorControlSDK 中使用了浮点。[/quot]

    声明的函数变量用于定义函数内的浮点数。 无需对每个变量执行内联浮点运算、因为 FPU 将处理声明中列出的十进制数、从那时起、无需堆栈操作、为每个内联引用的浮点 typedef 调用 float_32t 推送/弹出返回地址。 我们可以在工程中打开详细的汇编器输出、以查看如何汇编浮点以进行 FPU 处理。 THD 瞬变降低2%、值得一看。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    根据文本、VSI 必须具有较高的 MI=0.7才能产生 GDSVM - DPWM0、1或 DPWMMin、最大结果。 相移旋转方法(π/6、π/3)消除了 CSVM 旋转计算的典型开销。 再次从 CMPA 占空比中删除内联 float32_t 更新了被调用函数时间的 CPU 中断处理。 然而、许多论坛海报仍然抱怨定制 PCB 上的当前驱动问题与我发布的内容类似、但电流要大得多。 我的观点是、如果 SDK 代码无法在低电压下吸收热量、低电流是驱动上述效应的原因。  

    我再次尝试将 EPW1、2、4与 ABC 订单对齐、但 Vsense ABC 和电机拒绝启动。 甚至尝试更改 INA240的输入顺序 A、B、C、B、C 和其他几种组合。 如果 EPWM1、2、4完全同步1主器件/2从器件(Synci/SyncO)。 为什么在 Vsense 阶数相同但电机无法启动(EPWM1、2、4)阶数时更改 EPWM1、4、2的阶数甚至有效?  

                    // setup the Time-Base Control Register (TBCTL)
            EPWM_setTimeBaseCounterMode(obj->pwmHandle[cnt],
                                        EPWM_COUNTER_MODE_UP_DOWN);
            // disable PHSEN bit in TB submodule
            EPWM_disablePhaseShiftLoad(obj->pwmHandle[0]);
            // enable PHSEN bit TBRD phase shifted load by TBPHS counts
            EPWM_enablePhaseShiftLoad(obj->pwmHandle[1]);
            // enable PHSEN bit TBRD phase shifted load by TBPHS counts
            EPWM_enablePhaseShiftLoad(obj->pwmHandle[2]);
    
            // set the period load mode quiet shadow loading /
            EPWM_setPeriodLoadMode(obj->pwmHandle[cnt], EPWM_PERIOD_SHADOW_LOAD); //EPWM_PERIOD_DIRECT_LOAD
            // Set EPWM1 Master Sync Out pulse, on count zero.
            // Default: set Master sync pulse SW generated by EPWM_forceSyncPulse()
            // function is called or by EPWMxSYNCI signal.
            EPWM_setSyncOutPulseMode(obj->pwmHandle[0], EPWM_SYNC_OUT_PULSE_ON_COUNTER_ZERO);
            //EPWM_SYNC_OUT_PULSE_ON_COUNTER_COMPARE_D //EPWM_SYNC_OUT_PULSE_ON_SOFTWARE
            // set EPWM4, EPWM2 Slaves Sync pulse In/Out PWMxSYNCI/O.
            EPWM_setSyncOutPulseMode(obj->pwmHandle[1], EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN); //EPWM_SYNC_OUT_PULSE_ON_SOFTWARE
            EPWM_setSyncOutPulseMode(obj->pwmHandle[2], EPWM_SYNC_OUT_PULSE_ON_EPWMxSYNCIN);//EPWM_SYNC_OUT_PULSE_ON_SOFTWARE
            
            // setup the Time-Based Phase Register (TBPHS)=Zero
            EPWM_setPhaseShift(obj->pwmHandle[1], 0);//832
            // setup the Time-Based Phase Register (TBPHS)=Zero
            EPWM_setPhaseShift(obj->pwmHandle[2], 0);//415    

    INA240传感器输出是不连续正弦(CH2)、看起来与 ePWM 调制不同步。 即使相电流通过电流钳位(第一次捕捉)看起来是连续的、但这并不表示扇区旋转通过(MAIN_ISR) 384µs Instaspin ePWM 抽取计时与 CMPA 负载事件保持同步。

    为什么 INA240在 ePWM 占空比中具有1/2波脉冲、并将 Vsense 输入旁路到 Clarke 变换中、如单独的 Block Labs 指南所示? 当 IA、IB、IC 为外部输入模拟子模块时、通过 ePWM SOC 针对(IA、IB、IC、VA、Vb、VC)输入触发中断的 FOC 电流感应似乎与 FAST 不同步。