For a Non linear Model predictive control toolbox, how can I give it a mathematical model, which is a subsystem defined in Simulink?
4 次查看(过去 30 天)
显示 更早的评论
afaq ahmad
2023-10-24
回答: Emmanouil Tzorakoleftherakis
2023-10-27
I am trying to solve a non-linear model predictive control problem using the NMPC block in Simulink. However, the mathematical model of a dynamical system, which is used by MPC for prediction, is a subsystem in Simulink. Moreover, the subsystem further contains some Matlab function blocks and NARX models, as shown in the following figure.
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/1519806/image.png)
I am attempting to design NMPC from the workspace, and the first step is to define the nlobj as follows:
nx = 1; % no of states
ny = 1; % no of outputs
nu = 2; % no of inputs
nlobj = nlmpc(nx, ny, nu);
However, I dont know how to initialise the following commands, which tell the nlobj about the mathematical model, which in my case is a subsytem in Simulink:
nlobj.Model.OutputFcn = ''; % I tried giving the name of Simulink file, but this doesn't workout
nlobj.Model.StateFcn = '';
0 个评论
采纳的回答
Emmanouil Tzorakoleftherakis
2023-10-27
Unfortunately, this is currently not supported but our development team is aware of this request. If you don't have an analytical model of the dynamics, a workaround (although more involved) would be to use a data-driven model to approximate the subsystem of interest. This example shows what this would look like.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Model Predictive Control Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!