Multiple MPC Controllers: How to set the initial values of the manipulated variables?

5 次查看(过去 30 天)
Hello,
i have 12 MPC-Controllers, each one with manipulated variables:
u1: pump speed
u2 valve opening
The output variable of the system is temperature.
I am switching between the MPCs using the Multiple MPC Controllers block (https://www.mathworks.com/help/mpc/ref/multiplempccontrollers.html)
The manipulated variables should start with inital values of u1 = 2500 RPM and u2 = 0.5 mm, but both start with 0.
Any idea how to do change the initial values of the manipulated variables?
Thanks!
Martin

回答(1 个)

Kothuri
Kothuri 2024-4-25
The “Multiple MPC Controller” block manages different MPC Controller objects, each of which have their own initial Manipulated Variable (MV) setting.
To set the initial values for the manipulated variables for different MPC controllers in the “Multiple MPC Controller” block, you can use the MV.Startproperty for each MPC controller object.
This can be done as follows:
% Example for two MPC controllers
mpc1 = mpc(plant1, Ts);
mpc2 = mpc(plant2, Ts);
% Set initial MVs for each controller
mpc1.MV.Start = [0.5]; % Assuming single MV
mpc2.MV.Start = [0.7]; % Adjust these values as per your requirements
% Save the MPC objects in the base workspace or a MAT-file if needed
assignin('base', 'mpc1', mpc1);
assignin('base', 'mpc2', mpc2);
Now add the names of the MPC Objects (mpc1, mpc2, etc.) in the Multiple MPC Controllers Block Parameters named - Cell Array of MPC Controllers.

类别

Help CenterFile Exchange 中查找有关 Controller Creation 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by