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.

[参考译文] TMS320F28335:PID while 环路结构(PID 实现)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1269413/tms320f28335-pid-while-loop-structure-pid-implementation

器件型号:TMS320F28335
主题中讨论的其他器件:PMP23069

尊敬的社区成员:

我希望您检查 PID 仿真的 while 环路结构代码。

主要思路是使用 PID while 循环代码构建闭环系统。 (框图如下所示)

我会直接跳转到代码。 我 使用闭环系统、将变量 Duty_cycle 输出用作我的输入(不是连续模拟电压)。 DUTY_CYCLE 是连续脉冲信号。 因此不需要 ADC。  该占空比转换为0-3V 的电压(变量 A1)(请参阅代码)。 现在将基准设置为1V (假设)。 现在、pid while 循环被实现以生成 new_Duty、并以 PWM 脉冲的形式馈入系统。 请记住、通过 eCapture (ECAP 功能)开始接收脉冲信号后、启动 PWM 脉冲将关闭。 我希望您再次检查 while 循环代码以获得 PID 实现。 因为对于开环系统、当没有反馈时。 我可以 在示波器上以脉冲(具有周期/占空比)的形式看到 NEW_DUTY 的结果。 但是、一旦我将它作为反馈与系统相连。 系统停机或关闭、示波器上未显示任何值(零信号、无脉冲)。  我认为它应该像在负载上发生任何变化一样、PWM 信号(意味着 DUTY_CYCLE = PWM_DUTY/PWM_Period..see 图表) 将相应动作、然后反馈(来自 DSP 的 pid while 循环)将在环路闭合时补偿相对于基准的误差。 请记住、 一旦启动 PWM 脉冲开始通过 eCapture 获取脉冲信号、它将关闭。 这里、我只处理比例 部分 KP (初始 设置时、这里不考虑整数(KI = 0)和导数(KD = 0))。

请找到所附的代码。

请根据相关建议

谢谢

此致

阿尔萨兰

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

    您好,Arsalan

    有关 PID 控制器的指导、请 打开我们的一个 PFC 参考设计、例如 pmp23069。 在此项目中搜索 DCL_loadDF22asParallelPID。 您将在文件 DCLF32.h 中找到该函数。 该函数可实现 PID 控制器、并为您提供良好的起点。

    谢谢

    阿米尔

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

    尊敬的 Amir:

    感谢您的回复

    现在已使用 while 循环解决该问题。 感谢您的建议。 我将关闭该主题。

    此致

    阿尔萨兰