デジタル電源プロジェクト - PIDコードについての質問があります

https://oshwhub.com/zeruns/ji-yu-stm32-de-buck-boost-xing-shu-zi-dian-yuan のプロジェクトを再現・学習中です。コード内のPID部分には、BUCK、BOOST、MIXの3つのモードがありますが、電流制御ループの過去の誤差更新(IErr1 = IErr0)が行われているのはMIXモードだけであることに気づきました。

(BUCKおよびBOOSTモードのコード画像。コメント「// 历史数据幅值」(履歴データの振幅)の箇所にIErr1 = IErr0; がありません)

(MIXモードのコード画像。コメント「// 历史数据幅值」の箇所にIErr1 = IErr0; がある)

なぜ電流ループの過去誤差の更新がMIXモードでのみ行われるのか、理解できません。

初めての投稿でカテゴリ分けを忘れてしまい、すみません。

確かに抜けていましたね。あなたが補って試してみてください。ただ、私の電流制御ループのコードはあまりうまく書けていないように感じるので、参考にしない方がいいです。電圧制御ループのコードの方は他の人のものを参考にしています。