Is it possible to switch between multiple adaptive MPC controller?
4 ビュー (過去 30 日間)
Artem Wendler 2022 年 8 月 8 日
コメント済み: Walter Roberson 2022 年 8 月 9 日
I have two adaptive MPC controller, which control different manipulated variables (MV) in a plant. I need to switch between these two based on a specific condition. I modelled the controllers in matlab and Im using them in simulink. The plant and the linearized model updater are also coded in matlab and called with a MatlabFunction.
For example: If a certain criteria is given, then the first MPC should be "on" and if not, then the second should be "on".
Is this even possible?
Or should I use only one MPC, which controlls all MVs of the plant? But in that case some of the MVs need to be off or set to 0 if the others being manipulated.
I know you can controll two MPCs with a switch based on their cost function, but in my case I need a different criteria not the cost function. And in that example both MPCs control the same MVs. So I thought there should be a similar solution.
回答 (1 件)
Sam Chak 2022 年 8 月 9 日
I'm not sure how complicated is your problem. If the ON/OFF switching is triggered by a simple event that depends on the state, then you can try this idea, mathematically.
k2 = 1.00; % trigger ON when x <= 0.5
k1 = 0.25; % else
F = @(t, x) [- (k1*(sign(x - 0.5) + 1)/2 + k2*(1 - sign(x - 0.5))/2).*x];
[t, x] = ode45(F, [0 10], 1);
plot(t, x), grid on, xlabel('t')
Else, you can try if you can use the event location approach.
Find more on Controller Creation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!