主题中讨论的其他器件:TMDSCNCD28335、
大家好、我遇到了一个奇怪的问题。 我使用 MATLAB Simulink 2018a 创建和加载应用程序代码。 应用代码包括 ADC 块、正弦基准、控制、PWM 基准和 PWM 块(标准三相逆变器闭环控制)
有四种不同的情况、每种情况都有不同的结果、我难以解释。 在每种情况下、我都会监控 DAC 上的两个信号(DACOUTA 和 DACOUTB):CH1是正弦基准、而 CH4是空间矢量 PWM 基准。
- 我加载应用程序代码(Build、Load、Run 和 Boot from Flash (stand-alone))。 CH1是正弦基准(50Hz)、而 CH4是空间矢量 PWM 基准(50Hz)->扩展结果
- 相同的应用代码、但现在处于外部模式:CH1是正弦基准(50Hz)、而 CH4也是正弦基准(50Hz)。
- 我删除了大部分代码、仅保留正弦基准和 PWM 基准计算(开环控制)。 我加载应用程序代码(Build、Load、Run 和 Boot from Flash (stand-alone))。 CH1是正弦基准(100Hz)、而 CH4是空间矢量 PWM 基准(100Hz)。
- 相同的简化应用代码、但现在处于外部模式:CH1是正弦基准(100Hz)、CH4也是正弦基准(100Hz)
情况1 (构建、加载、运行)和2 (外部模式):
案例3 (构建、加载、运行)和4 (外部模式):
不确定为什么 DACOUTB (CH4)在情况1和2中显示不同的结果;这是否意味着空间矢量引用的代码未执行?
此外、当波形频率从50Hz 增加到100Hz 时、为什么情况1和3之间存在差异? 这是否意味着在前一种情况下(案例1和2)所有代码的执行速度都较慢。 如果我知道"较大"代码的基波和任何其他采样时间都高2倍、我可以使用哪种方法?
我对 TMDSCNCD28335也有类似的问题、 并在 MATLAB 论坛中提出了一个问题 、他们在该论坛中建议该问题可能是由溢出引起的、我应该优化正弦基准块的生成。 因此、我转到 TMDSCNCD28379D、在两个 CPU 之间拆分代码、并实现了一个新的正弦基准计算: 现在、我正在代码中使用优化的 C28x DMC 和 IQmath 块、并仅生成斜坡(0 - 2pi、20ms)、通过使用 Park 逆变换(Vd 设置为1、VQ 和 V0设置为0)、我计算三相正弦基准。
更新:
不同的波形问题已解决。
在空间矢量波形计算块中 、代码中有几个 Simulink 开关、因此与标准构建、加载和运行选项相比、当外部模式运行时、它们似乎保持在不同的位置。 零序列波形未注入正弦基准、因此波形相同。 现在、我移除了开关、波形符合预期... 开关块似乎有问题!
频率差异仍然存在。