# Is it possible to switch between multiple adaptive MPC controller?

4 ビュー (過去 30 日間)
Artem Wendler 2022 年 8 月 8 日
コメント済み: Walter Roberson 2022 年 8 月 9 日
Hello,
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.
Thanks

サインインしてコメントする。

### 回答 (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.
where
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

R2022a

### Community Treasure Hunt

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

Start Hunting!

Translated by