Как контролировать уровень в нескольких подключенных баках одновременно?


0

В системе парных резервуаров, какова стратегия управления для одновременного контроля уровня в нескольких резервуарах. В этом случае приводы влияют на несколько переменных управления. Система, как показано на этой диаграмме

введите описание изображения здесь

Переменными, которые необходимо контролировать, являются уровни жидкости в каждом из резервуаров. Приводы - это клапаны на трубопроводах, а также входной поток q0. Проблема в том, что один и тот же привод, например V1, влияет как на h1, так и на h2. Я пытался 3 разных PID для каждого танка. Каждый контроллер получает высоту в соответствующем резервуаре и отправляет управляющий сигнал в соответствующий выход. Итак, PID1 получает вход h1 и управляет только V1; ПИД2 получает вход h2 и управляет только V2 ...


3
Держите клапаны между резервуарами открытыми.
Солнечный Майк

1
Было бы лучше включить встроенное изображение в ваш вопрос, вместо того, чтобы просить кого-то просмотреть его. Внешние ссылки со временем устаревают, и будущие посетители этого вопроса не смогут увидеть запрашиваемую вами систему.
GlenH7

@SolarMike Это будет работать только в том случае, если уровень во всех трех танках будет одинаковым. Если вам нужны независимые уставки для каждого из 3 резервуаров, это другое дело.
30:30

@ am304, так что, учитывая вопрос, мой комментарий был в порядке ... возможно, попросил ОП прояснить ситуацию, чтобы мы все знали ...
Солнечный Майк

1
Итак, все просто: подключите источник питания (и выход) таким образом, чтобы резервуары были параллельны - это облегчает управление, поскольку каждый резервуар становится индивидуальным ... Вы должны также добавить такую ​​уместную информацию в исходный вопрос - людям не нравится перелистывать комментарии пытаясь собрать воедино вопрос ...
Солнечный Майк

Ответы:


1

Вы имеете дело с системой с несколькими входами и несколькими выходами (MIMO), и в этом случае вы вообще не можете применять те же методы, что и для систем с одним входом и одним выходом (SISO). Если вы имеете дело с MIMO-системой с линейным постоянным временем, то вы можете использовать нечто, называемое массивом относительного усиления, чтобы увидеть, насколько хорошо будет работать подход управления SISO. Однако в этом случае я полагаю, что вы имеете дело с нелинейной системой, но возможно было бы сделать разъединение ввода-вывода, а именно, контролируя приток нетто в каждый резервуар. Для этого я пока предполагаю, что вы можете выбрать скорости потока , , и и что динамику можно записать какq0q1q2q3

(1)h˙i=αi(qi1qi)

поэтому динамика комбината может быть записана как

(2)h˙=[α1α1000α2α2000α3α3]q

где и . Теперь, определив виртуальный вход , что , тогда каждая пара входов и выходов будет разделена. Для этого нам нужноh=[h1h2h3]q=[q0q1q2q3]vh˙=v

(3)[α1α1000α2α2000α3α3]q=v

которая может быть решена для с использованием псевдообратной матрицы в левой части. Это можно сделать несколькими способами, но решение, которое минимизируетдоходностьqq

(4)q=[34α112α214α314α112α214α314α112α214α314α112α234α3]v.

Так что теперь вы можете использовать обычные методы управления SISO, такие как PID, для каждой пары - которые приводят к желаемому значению.hivih

Однако между и , вероятно, нет линейной зависимости , а скорее что-то вроде или какой-либо другой нелинейной функции, зависящей от состояния. Если вы знаете это соотношение более точно, вы можете придумать нелинейный контроллер, в противном случае вы можете выполнить последовательное закрытие цикла. Для последовательного закрытия цикла вы используете для управления до его желаемого значения, определенного из уравнения .qiViqiVi(hihi+1)Viqiv(4)

Если у вас есть более сложный опорный сигнал для высот, то вам, возможно, придется прибегнуть к еще более продвинутым методам, таким как прогнозное управление моделью. Например, когда контрольные высоты таковы, что и но ваша система начинает с , тогда изначально будет невозможно иметь положительный приток во второй танк, и для достижения желаемой высоты должен быть на некоторое время больше, чем чтобы достиг своей цели.hr,1<hr,2hr,2>hr,3h1=h2=h3<hr,2h1h2h2


0

Я не специалист по системам управления, так что простите мой не очень системный подход.

Первое, что вы должны сделать, это попытаться вручную отрегулировать клапаны на постоянное значение q, чтобы достичь желаемых уровней.

Я бы контролировал q из среднего отклонения высоты от требуемой высоты в каждом резервуаре. Если общий уровень воды ниже требуемого, увеличьте q и наоборот.

Управляющая переменная для клапанов должна быть разностью высот между двумя последовательными резервуарами: V1 контролируется для h1-h2, эти разности высот вы вычисляете из требуемой высоты во всех резервуарах. Только клапан 3 контролируется для h3 напрямую.

Также сделайте так, чтобы первый клапан был быстрее второго, а второй - быстрее третьего. Это должно помочь вам избежать колебаний.

Несмотря на то, что я обещал несистемный подход, расскажу немного: для заданного q существует зависимость между перепадом высот и тем, насколько открыт или закрыт клапан. Вероятно, поэтому ваша стратегия не сработала.


Это интересная идея. Я попробую и вернусь к вам
Яска

@Ranade нашел время, чтобы попробовать? Как прошло?
март
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.