matlab 模型预测控制

qlvxas9a  于 2023-05-18  发布在  Matlab
关注(0)|答案(1)|浏览(220)

嗨,我试图定义一个模型预测控制器,我不能让它正常工作。我目前正在使用Matlab函数nlmpc,并使用非线性mpc块将其实现到Simulink中。
我从Matlab www.example.com找到了这个文档https://se.mathworks.com/help/mpc/ug/optimization-problem.html#bujxvp9-9
我想在哪里使用替代成本函数,有人能帮助我如何指定吗?我尝试定义自己的自定义函数(没有任何运气)。

nlobj = nlmpc(nx,ny,nu); 
nlobj.Ts                           = Ts_mpc;
nlobj.PredictionHorizon            = N;
nlobj.ControlHorizon               = Nc;
nlobj.Model.IsContinuousTime       = false;
nlobj.Model.StateFcn               = @MPC_state_function;
nlobj.Optimization.CustomCostFcn   = @Cost_function;
nlobj.Optimization.ReplaceStandardCost          = true;

nlobj.Weights.OutputVariables      = [10 8 2 5 1 9 4];
nlobj.Weights.ManipulatedVariables = [.1 .1];

其中,自定义成本函数为J = x_e'*Q*x_e + u_e'*R*u_e;
或者,我想知道如何在Simulink中使用非线性MPC的其他建议(除了ACADO)
最好的问候

62o28rlo

62o28rlo1#

试试这个
nlobj.Optimization.ReplaceStandardCost = true;
nlobj.Optimization.CustomCostFcn = '替代成本函数';

相关问题