您好!
之前、我在上一个线程中从事 ECAP 和 ePWM 模块的工作、然后成功实现了这两个 模块。 此任务从函数发生器获取输入、作为具有来自 ECAP 函数的频率和占空比的数字脉冲信号、然后通过 ePWM 函数复制或生成具有相同频率和占空比的相同脉冲。 代码运行得很好、我可以看到变量值 PWM_PERIOD 和 PWM_DUTY 以 TBPRD 为单位( 分别对于10kHz PWM_PERIOD =15000和 PWM_DUTY = 7500)...(先前的工作)
当我把 PID 代码例程从第44-62行和第293-314行添加到我以前工作的代码中时、问题就出现了。 在这里、我没有将任何 DCL 库用于 PID 仿真。 对于一些背景信息、例如在极食、Matlab 或其他微控制器中、pid 例程代码通常用于 pid 仿真。 因此、我 在代码中分别从第44-62行和第293-314行添加了 pid 例程代码。 添加 pid 例程代码的原因是要根据 new_period/new_Duty 来更新 pid while 循环之后的周期和占空比。
解决编译错误后、我对硬件上的代码进行仿真、再次检查变量 PWM_PERIOD 和 PWM_DUTY 很大的影响。 这些变量未更新、 错误 试验。 我将函数发生器的旋钮从10kHz 更改为20kHz、但 PWM_PERIOD 和 PWM_DUTY 变量不会自行更新。 因此、new_period/new_Duty 也会显示不正确的值。 可能是 pid 例程在代码中的放置位置不在正确的行位置可能是错误的。
请提出相应建议。
此致
阿尔萨兰