我正在为一个简单的传递函数开发一个迭代学习控制器。
迭代由外部 matlab 循环控制。但是错误e(k)
(k 是试验编号)没有更新......随着试验的增加。请检测我犯的错误。
谢谢并恭祝安康。
你可能已经解决了这个问题。但由于问题仍然悬而未决,我想在这里添加一些内容。
首先,您可能要检查“内存”块的使用情况。“内存块保持并延迟其输入一个主要的积分时间步长。” 错误未更新的原因是您工厂生产的输出在每次迭代中都是相同的(您定义了外部循环)。内存块只延迟了 U(K) 的一步,而不是整个迭代。
您可能希望将每次迭代的错误存储到工作区,并将其用于下一次迭代。
内存应该是一个具有单次迭代长度的向量。不仅仅是单一的价值。延迟块可以存储多个过去的样本。这个人可能做了你想要的:https ://github.com/arthurrichards77/iterative-learning-control