我有一个带有模型预测控制器和 PID 控制器的系统。假设我有每个控制器的模型并且可以在离散时间内表达它们,请问如何将它们集成在一起以在 matlab 中模拟系统的属性?
谢谢
...继续评论。这就是 Simulink 的用途。当然,有很多方法可以在没有 Simulink 的情况下做到这一点,但通常您仍然在没有图形界面的情况下使用 Simulink 工具和功能。
我假设您的传输函数“在纸上”。所以你需要这个tf
函数来定义你的系统模型。
G = tf(num,den)
num
并且den
是分子和分母的传递函数的系数向量。在 Simulink 中,您使用Transfer Fcn
模块并使用
G.num{1} %Numerator coefficients
G.den{1} %Denumerator coefficients
无法使用此模块定义您的 PID 控制器,因为 Simulink 需要更高或等于分母的顺序。而是使用PID controller
块。您需要先计算比例增益、积分增益和微分增益。
然后阅读有关 MPC 工具箱的文档——我不熟悉它,无法帮助你——它解释了如何创建一个mpc object
关于所有约束的文档(请参阅你的其他问题)。
然后,您有多种选择可以将您的 mpc 对象转换为 Simulink 可以处理的对象。我推荐ss
- 状态空间模型 - 可以使用state space
块来实现。还有一个MPC Controller
块,我没有工具箱 - 但您将能够了解如何使用它。
最后你会找到源块,比如step
生成一个测试信号。还有Sinks
,在最简单的情况下scope
显示您的结果。您还可以将它们保存到工作区或其他任何...