主题中讨论的其他器件: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))。
请找到所附的代码。
请根据相关建议
谢谢
此致
阿尔萨兰