В системе парных резервуаров, какова стратегия управления для одновременного контроля уровня в нескольких резервуарах. В этом случае приводы влияют на несколько переменных управления. Система, как показано на этой диаграмме
Переменными, которые необходимо контролировать, являются уровни жидкости в каждом из резервуаров. Приводы - это клапаны на трубопроводах, а также входной поток q0. Проблема в том, что один и тот же привод, например V1, влияет как на h1, так и на h2. Я пытался 3 разных PID для каждого танка. Каждый контроллер получает высоту в соответствующем резервуаре и отправляет управляющий сигнал в соответствующий выход. Итак, PID1 получает вход h1 и управляет только V1; ПИД2 получает вход h2 и управляет только V2 ...
Ответы:
Вы имеете дело с системой с несколькими входами и несколькими выходами (MIMO), и в этом случае вы вообще не можете применять те же методы, что и для систем с одним входом и одним выходом (SISO). Если вы имеете дело с MIMO-системой с линейным постоянным временем, то вы можете использовать нечто, называемое массивом относительного усиления, чтобы увидеть, насколько хорошо будет работать подход управления SISO. Однако в этом случае я полагаю, что вы имеете дело с нелинейной системой, но возможно было бы сделать разъединение ввода-вывода, а именно, контролируя приток нетто в каждый резервуар. Для этого я пока предполагаю, что вы можете выбрать скорости потока , , и и что динамику можно записать какq0 q1 q2 q3
поэтому динамика комбината может быть записана как
где и . Теперь, определив виртуальный вход , что , тогда каждая пара входов и выходов будет разделена. Для этого нам нужноh⃗ =[h1h2h3]⊤ q⃗ =[q0q1q2q3]⊤ v⃗ h⃗ ˙=v⃗
которая может быть решена для с использованием псевдообратной матрицы в левой части. Это можно сделать несколькими способами, но решение, которое минимизируетдоходностьq⃗ ∥q⃗ ∥
Так что теперь вы можете использовать обычные методы управления SISO, такие как PID, для каждой пары - которые приводят к желаемому значению.hi vi h⃗
Однако между и , вероятно, нет линейной зависимости , а скорее что-то вроде или какой-либо другой нелинейной функции, зависящей от состояния. Если вы знаете это соотношение более точно, вы можете придумать нелинейный контроллер, в противном случае вы можете выполнить последовательное закрытие цикла. Для последовательного закрытия цикла вы используете для управления до его желаемого значения, определенного из уравнения .qi Vi qi∝Vi(hi−hi+1)−−−−−−−−−−√ Vi qi v⃗ (4)
Если у вас есть более сложный опорный сигнал для высот, то вам, возможно, придется прибегнуть к еще более продвинутым методам, таким как прогнозное управление моделью. Например, когда контрольные высоты таковы, что и но ваша система начинает с , тогда изначально будет невозможно иметь положительный приток во второй танк, и для достижения желаемой высоты должен быть на некоторое время больше, чем чтобы достиг своей цели.hr,1<hr,2 hr,2>hr,3 h1=h2=h3<hr,2 h1 h2 h2
источник
Я не специалист по системам управления, так что простите мой не очень системный подход.
Первое, что вы должны сделать, это попытаться вручную отрегулировать клапаны на постоянное значение q, чтобы достичь желаемых уровней.
Я бы контролировал q из среднего отклонения высоты от требуемой высоты в каждом резервуаре. Если общий уровень воды ниже требуемого, увеличьте q и наоборот.
Управляющая переменная для клапанов должна быть разностью высот между двумя последовательными резервуарами: V1 контролируется для h1-h2, эти разности высот вы вычисляете из требуемой высоты во всех резервуарах. Только клапан 3 контролируется для h3 напрямую.
Также сделайте так, чтобы первый клапан был быстрее второго, а второй - быстрее третьего. Это должно помочь вам избежать колебаний.
Несмотря на то, что я обещал несистемный подход, расскажу немного: для заданного q существует зависимость между перепадом высот и тем, насколько открыт или закрыт клапан. Вероятно, поэтому ваша стратегия не сработала.
источник