デジタル電源プロジェクト - PIDコードについての疑問

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

(BUCKおよびBOOSTモードのコード。コメント「// 历史数据幅值」(過去データの保持)の部分にIErr1 = IErr0;がありません)

MIXモードのコード。コメント「// 历史数据幅值」の部分にIErr1 = IErr0;があります。

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

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

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