Vous avez affaire à un système multi-entrées multi-sorties Système (MIMO), auquel cas vous ne pouvez généralement pas appliquer les mêmes techniques que pour les systèmes à une seule entrée (SISO). Si vous avez affaire à un système MIMO invariant dans le temps linéaire, vous pouvez utiliser ce que l’on appelle le tableau de gain relatif pour voir si une approche de contrôle SISO fonctionnerait bien. Cependant, dans ce cas, je pense que vous avez affaire à un système non linéaire, mais il serait peut-être possible d'effectuer un découplage entrées-sorties, notamment en contrôlant le flux entrant dans chaque réservoir. Pour cela, je suppose pour le moment que vous pouvez choisir les débits $ q_0 $, $ q_1 $, $ q_2 $ et $ q_3 $ et que la dynamique peut être écrite de la manière suivante:
$$
\ begin {align}
\ dot {h} _i = \ alpha_i (q_ {i-1} - q_i) \ tag {1}
\ end {align}
$$
de sorte que la dynamique des combinaisons peut être écrite comme
$$
\ dot {\ vec {h}} =
\ begin {bmatrix}
\ alpha_1 & amp; - \ alpha_1 & amp; 0 & amp; 0 \\
0 & amp; \ alpha_2 & amp; - \ alpha_2 & amp; 0 \\
0 & amp; 0 & amp; \ alpha_3 & amp; - \ alpha_3
\ end {bmatrix} \ vec {q} \ tag {2}
$$
où $ \ vec {h} = \ begin {bmatrix} h_1 & amp; h_2 & amp; h_3 \ end {bmatrix} ^ \ top $ et $ \ vec {q} = \ begin {bmatrix} q_0 & amp; q_1 & amp; q_2 & amp; q_3 \ end {bmatrix} ^ \ top $. Maintenant, en définissant une entrée virtuelle $ \ vec {v} $ telle que $ \ dot {\ vec {h}} = \ vec {v} $, toutes les paires d’entrée et de sortie sont découplées. Pour cela nous avons besoin
$$
\ begin {bmatrix}
\ alpha_1 & amp; - \ alpha_1 & amp; 0 & amp; 0 \\
0 & amp; \ alpha_2 & amp; - \ alpha_2 & amp; 0 \\
0 & amp; 0 & amp; \ alpha_3 & amp; - \ alpha_3
\ end {bmatrix} \ vec {q} = \ vec {v} \ tag {3}
$$
qui peut être résolu pour $ \ vec {q} $ en utilisant un pseudo inverse de la matrice sur le côté gauche. Cela peut être fait de plusieurs manières, mais la solution qui minimise les rendements $ \ | \ \ vec {q} \ | $
$$
\ vec {q} =
\ begin {bmatrix}
\ frac {3} {4 \, \ alpha_1} & amp; \ frac {1} {2 \, \ alpha_2} & amp; \ frac {1} {4 \, \ alpha_3} \\
\ frac {-1} {4 \, \ alpha_1} & amp; \ frac {1} {2 \, \ alpha_2} & amp; \ frac {1} {4 \, \ alpha_3} \\
\ frac {-1} {4 \, \ alpha_1} & amp; \ frac {-1} {2 \, \ alpha_2} & amp; \ frac {1} {4 \, \ alpha_3} \\
\ frac {-1} {4 \, \ alpha_1} & amp; \ frac {-1} {2 \, \ alpha_2} & amp; \ frac {-3} {4 \, \ alpha_3}
\ end {bmatrix} \ vec {v}. \ tag {4}
$$
Vous pouvez donc maintenant utiliser des méthodes de contrôle SISO normales, telles que PID, pour chaque paire $ h_i $ - $ v_i $ qui conduirait $ \ vec {h} $ à la valeur souhaitée.
Cependant, il n'y a probablement pas de relation linéaire entre $ q_i $ et $ V_i $, mais plutôt quelque chose comme $ q_i \ propto \ sqrt {V_i (h_i - h_ {i + 1})} $ ou une autre fonction dépendante de l'état non linéaire. Si vous connaissez cette relation plus précisément, vous pouvez créer un contrôleur non linéaire, sinon vous pouvez effectuer une fermeture de boucle séquentielle. Pour la fermeture de boucle séquentielle, vous utilisez $ V_i $ pour contrôler $ q_i $ à la valeur souhaitée définie par $ \ vec {v} $ à partir de l'équation $ (4) $.
Si vous avez des signaux de référence plus difficiles pour les hauteurs, vous devrez peut-être recourir à des techniques encore plus avancées, telles que le contrôle prédictif du modèle. Par exemple, lorsque les hauteurs de référence sont telles que $ h_ {r, 1} & lt; h_ {r, 2} $ et $ h_ {r, 2} & gt; h_ {r, 3} $ mais votre système démarre à $ h_1 = h_2 = h_3 & lt; h_ {r, 2} $, dans un premier temps, il ne sera pas possible d'avoir un apport positif dans le second réservoir et pour atteindre les hauteurs souhaitées, $ h_1 $ doit être supérieur à $ h_2 $ pendant un certain temps pour $ h_2 $ pour atteindre son objectif.