Введение в системы управления: проектирование ПИД-регулятора с помощью инструмента SISO MATLAB
Введение
Для разработки систем управления требуется знание как минимум двух базовых компонентов системы: завод, в котором описывается математически смоделированное поведение вашей системы и результат, который является целью, которую вы пытаетесь достичь. Система управления, которая стала обычным явлением в автомобильной промышленности, - это система круиз-контроля: выход запрограммирован водителем, а система управления должна управлять всеми показаниями автомобиля, чтобы поддерживать скорость.
Поскольку дорога, на которой мы ездим, имеет недостатки, иногда система должна автоматически или автоматически замедляться. Если вы когда-либо использовали эту функцию на автомобиле, вы, возможно, заметили, что автомобиль имеет тенденцию поддерживать очень плавный темп по выбранной вами скорости - он не ускоряется и не замедляется. Это означает, что система управления транспортным средством сначала получает желаемый выход, а затем управляет ошибками фактического выхода за счет компенсации входа (например, от того, сколько топлива подается на двигатель).
Прежде чем решить проблему для системы, мы вкратце проанализируем компоненты и поведение системы (некомпенсированной), а затем отдельные компоненты ПИД-регулятора (пропорционального интеграла-производного). Последним шагом было бы свести эти два вместе и разработать ПИД-регулятор, который будет компенсировать первоначально наблюдаемую систему. Важно знать, что ПИД-контроллеры - это не единственный тип компенсации, которую дизайнер может применить к системе, но это отличное место для начала и изучения некоторых универсальных характеристик, которые останутся верными в других методах.
Примечание. В этом уроке мы будем анализировать аналоговые системы в идеальных условиях (без шума или помех), и все или большинство математического анализа будет выполнено через MATLAB.
Наблюдение за системой
Система может состоять из различных компонентов, расположенных одинаково различными способами; но мы начнем с анализа компонентов и функциональных возможностей классической замкнутой системы (рис. 1).
Image
Рисунок 1 - Примерная блок-схема системы с замкнутым контуром с одним входом с одним выходом
Вход: r - вход является некоторым опорным значением, которое должно иметь прямую корреляцию с выходом системы. Это не нужно переводить непосредственно на источник напряжения / источника питания, а скорее на настройку или переключатель, которые будут подключать источник питания / источник питания к системе. В примере системы, который мы проанализируем позже, наш входной сигнал будет унитарным шагом.
Контроллер: C - В нашем случае это ПИД-регулятор, который мы разработаем. Он позиционируется перед установкой, которую мы компенсируем и сразу после соединения входного сигнала и обратной связи.
Plant: G - это все ваши подсистемы, математически выраженные как передаточная функция. Если то, что вы пытаетесь контролировать, это двигатель постоянного тока, то завод фактически является вашим двигателем постоянного тока. Вы вводите устройство, чтобы реагировать на реакцию таким образом, чтобы обеспечить выходное значение, которое идеально близко к вашему входу.
Выход: y - Это показание является действительной реакцией системы на наш желаемый ответ (вход), который прошел через нашу собранную систему (завод). Производительность системы оценивается путем сравнения выхода с входом, учитывая, что некоторые ошибки будут иметь место и были приняты во внимание как приемлемые.
Обратная связь: H - В эквивалентной блок-схеме системы (см. Рис. 1) линия обратной связи вводит вывод системы во вход. Это означает, что любые несоответствия между выходом (фактическим ответом) и входом (желаемым ответом) могут быть измерены - другими словами, ошибка между входом и выходом - это то, что вводится контроллеру. Ошибка нашей системы равна: input - output x H; если система имеет унитарную обратную связь (что означает, что H = 1), то наша ошибка просто вводится за вычетом вывода. Это будет важной идеей для запоминания, когда мы перейдем к описанию того, как работает каждый аспект ПИД-регулятора.
Важно отметить, что передаточная функция для полного цикла на рисунке 1 может быть дополнительно упрощена только в одном блоке с одним входным и одиночным выходом с использованием функции передачи замкнутого контура:
(Замкнутая петля (ы) = \ frac {C (s) cdot G (s)} {1 + C (s) cdot G (s) cdot H (s)} )
Определение ПИД-регулирования
ПИД-регулятор фактически представляет собой систему из трех частей:
Пропорциональная компенсация: основная функция пропорционального компенсатора заключается в том, чтобы ввести коэффициент усиления, который пропорционален показателю ошибки, который получается путем сравнения выхода и входа системы.
Производная компенсация: в унитарной системе обратной связи производный компенсатор вводит производную от сигнала ошибки, умноженную на коэффициент усиления (K_ {D} ). Другими словами, наклон формы сигнала ошибки является тем, что будет введено на выходе. Его основная цель - улучшить переходный отклик всей замкнутой системы.
Интегральная компенсация: в единую систему обратной связи интегральный компенсатор вводит интеграл сигнала ошибки, умноженный на коэффициент усиления (K_ {I} ). Это означает, что область под кривой сигнала ошибки будет влиять на выходной сигнал. Мы докажем это позже, но важно отметить, что эта грань контроллера улучшит стационарную ошибку всей замкнутой системы.
компенсация
Область времени
S-домен
пропорциональный
(K_ {P} e (t) )
(К_ {р} )
производный
(К_ {D} гидроразрыва {d} {дт} е (т) )
(К_ {D} s )
интеграл
(К_ {Я} int_ {0} ^ {т} е (х) д (х) )
( Гидроразрыва {К_ {Я}} {s} )
Следовательно, ПИД-регулятор может быть математически описан как:
компенсация
Область времени
S-домен
ПИД-регулятор
(K_ {P} e (t) + K_ {D} frac {d} {dt} e (t) + K_ {I} int_ {0} ^ {t} e (x) d (x) )
(K_ {P} + K_ {D} s + \ frac {K_ {I}} {s} = \ frac {K_ {P} s + K_ {D} s ^ 2 + K_ {I}} {s} )
По какой-то причине, кроме простоты, можно понять, почему s-домен используется исключительно при анализе или разработке аналогичных систем - работа с фракциями всегда проще, чем интеграция и / или производные. Если теперь мы возьмем то, что мы описали как ПИД-регулятор, и применим его к рис. 1, наша блок-диаграмма теперь будет похожа на то, что вы видите на рисунке 1.1 ниже.
Image
Рисунок 1.1. Наш блок «C» - это, по сути, все, что содержится в красной рамке: суммирование пропорциональных, производных и интегральных компенсаций системе
Выходные характеристики
Теперь, когда мы знаем, из какой системы и как мы будем применять наш ПИД-регулятор, мы можем начать говорить о характеристиках нашего выходного сигнала (после этого мы отслеживаем и пытаемся изменить)
Это общее уравнение поможет описать поведение типичной функции второго порядка без нулей. Однако не все функции передачи являются или будут второго порядка, и многие из них будут содержать нули. В этих случаях требуется провести частичный анализ фракций, чтобы определить ошибку между использованием уравнений второго порядка в системе более высокого порядка. (Примечание: мы предположим, что ошибка приемлема для примера, используемого далее в этой статье).
Перегрузка (в процентах)
(pOS = e ^ {- ( zeta \ pi / \ sqrt {1- \ zeta ^ {2}})} ast 100 )
Это значение будет описывать процент, при котором форма волны выхода превышает (или превосходит) ее окончательное / установившееся значение. Он выражается в процентах от конечного значения.
Важно отметить, что уравнение для коэффициента затухания зависит исключительно от перерегулирования. Соотношение будет описывать, если система незатухает (равна 0), занижена (от 0 до 1), критически затухает (равна 1) или завышена (больше 1).
Это время (в секундах), когда сигнал достигает максимального или максимального значения.
Расселение времени
(T_ {s} = \ frac {4} { zeta \ omega _ {n}} )
Время, необходимое для того, чтобы волна колебалась в пределах +/- 2% от конечного / установившегося значения. Поскольку колебания могут продолжаться бесконечно (хотя и незначительно), это не требует полной корреляции осциллограммы.
Устойчивая ошибка состояния:
(e ( infty) = e_ {step} ( infty) = \ frac {1} {1 + K_ {p}} ) где (K_ {p} = \ lim_ {s \ to 0} G (s) )
(e ( infty) = e_ {ramp} ( infty) = \ frac {1} {K_ {v}} ), где (K_ {v} = \ lim_ {s \ to 0} s \ cdot G (s) )
(e ( infty) = e_ {parabola} ( infty) = \ frac {1} {K_ {a}} ), где (K_ {a} = \ lim_ {s \ to 0} s ^ {2 } cdot G (s) )
Графические представления:
Image
Рисунок 1.2 - График обеспечивает визуализацию влияния различных коэффициентов демпфирования на выход системы (в ответ на шаг). Это также показывает прямую корреляцию между коэффициентом демпфирования системы и процентом перерегулирования (чем меньше коэффициент демпфирования, тем больше превышение)
Image
Рисунок 1.3 - Пример реакции системы на ввод шага. Использование анализа MATLAB SISO Tool позволяет пользователю отображать характеристики ответа - в этом случае: пиковое время, перерегулирование и время установления
Дизайн контроллера в Matlab
Есть несколько улучшений, которые нам нужно сделать, когда у нас есть наша передаточная функция компонента (или установки), ответ которого нуждается в улучшении. MATLAB включает множество «технических инструментов», которые позволяют инженерам создавать, анализировать и моделировать различные проекты. В нашем случае MATLAB включил Control Systems Toolbox, который включает в себя несколько функций, предназначенных для проектирования систем управления. Они также включили инструмент SISO (single-input single-output), графический интерфейс, который позволяет осуществлять интерактивный анализ системы и управления. Двумя из лучших аспектов инструмента SISO являются:
Как изменения в полюсах и нулях передающей функции изменяют корень локуса и определяют графики в реальном времени. Изменения в коэффициенте усиления также могут быть мгновенно отражены в отклике системы.
Указание требований к дизайну создаст визуальные ограничения на графиках, чтобы помочь пользователю установить и найти соответствующие выгоды. Это делается щелчком правой кнопкой мыши по сюжету корневого ловуса инструмента SISO и выбора «Требования к дизайну». Затем вы выбираете тип характеристики, которую вы хотите установить, и определяете ее пределы. Это предоставит вам определенный граничный предел и затененную область «недопустимый» (оранжевый оттенок). Важно, чтобы в качестве дизайнера вы сохранили список своих приоритетов и отметили спецификации, которые имеют наибольшее значение.
Пример Функция передачи в системе:
(G (s) = \ гидроразрыва {К (з + 8)} {(s + 3) (S + 6) (S + 10)} )
Требования к дизайну:
Пробег не более 20%
Пиковое время (Tp), которое составляет не более двух третей от суммы нескомпенсированной системы. (см. уравнения)
Нулевая установившаяся ошибка для ступенчатого ввода (см. Уравнения)
Секционный скрипт MATLAB
%% Define our Plant n=poly((-8)); %defining our numerator d=poly((-3 -6 -10)); %defining our denominator Ps=tf(n, d) %tf is a function that calls for a predefined numerator and %denominator value to create a transfer function Ts=feedback(Ps, 1) %the feedback function will automatically provide you %with the closed loop transfer function while defining %your plant as the first variable, and your feedback as %your second variable % Once you click on "Run Section" you will note that values have appeared % in your Workspace and a transfer function as been printed in your % Command Window. %% Run SISO tool to analyze Plant transfer function sisotool(Ps) %Note that we are running sisotool on the open-loop TF %% Apply gain & analyze system response % At this point you can either export your gain (K) value or you can % manually enter and save the value in your workspace. K=116.5; %K as given through siso analysis Ps1=K*Ps %Muliplying K with plant Ts1=feedback(Ps1, 1) %This will provide the closed loop transfer function %where the feedback line has a value of just 1 %(nothing contained in feedback - unitary feedback) stepinfo(Ts1) %stepinfo will print detailed step response data step(Ts, Ts1); %will provide a graph of the step response for visual analysis %% Calculate Goal Peak-Time Tp=0.2978; %value of Tp that I found in previous section from stepinfo Tp_goal=Tp*(2/3) %printing my goal peak time in command window pOS = 20; dr=-log(pOS/100)/sqrt(pi^2+(log(pOS/100))^2); % OS to Damping Ratio eq. w=pi/(Tp_goal*sqrt(1-(dr^2))) % Peak Time and DR to find freq. %% Apply PD compensation % Here we run sisotool again, this time on Ps1 instead of Ps. % We will now add an additional design characteristic - our goal peak-time % Refer to peak-time equation to find settling-time equivalent sisotool(Ps1) %% Export the PD compensator for analysis PD=C %Only run this section once to ensure that PD is not overwritten with %another C value from SISO tool Ps2=Ps1*PD Ts2=feedback(Ps2, 1) stepinfo(Ts2) step(Ts, Ts1, Ts2) %% Apply PID compensation % As before, we will run sisotool, this time on Ps2 and finalize our PID sisotool(Ps2) %% Export the PID compensator value for analysis PID=C % This will carry the value of our new C and attach it to PID Ps3=Ps2*PID % muliply the integrator to the PD Ts3=feedback(Ps3, 1) stepinfo(Ts3) step(Ts, Ts1, Ts2, Ts3) %% Finally we will calculate our steady-state error (refer to equations) kp=dcgain(Ps3); % dcgain is a function that will carry out our limit s->0 ess=1/(1+kp) % this is the equation for the steady state error for a step
Рисунок 2 - Безкомпенсированная система должна будет достичь усиления около 116, 5 для достижения 20% перерегулирования (единственная проектная характеристика на данный момент)
Image
Рисунок 3 - Обратите внимание, что границы двух требований дизайна встречаются в определенный момент. Изменение коэффициента усиления приведет к тому, что точка будет позиционировать полюсы. Установка нуля на -56 обеспечит пересечение графика по точке соединения, а затем отрегулирует ее коэффициент усиления.
Image
Рисунок 4 - Цель состоит в том, чтобы создать идеальный интегратор, который приведет к установившемуся обнулению ошибки. Это достигается размещением полюса в начале координат и нулем, близким к началу координат (правило больше чем или равно 0, 8); в этом случае выберите нуль при -0.1. Не стесняйтесь корректировать эти цифры и посмотреть, как изменяется реакция системы.
Image
Рисунок 5 - Здесь показан отклик шага данной системы с нулевым коэффициентом усиления (для справки), нескомпенсированный (с усилением), с контроллером PD и, наконец, с ПИД-регулятором
Image
Рисунок 6 - Лучшее представление о наших пиковых ответах
Вывод
Как упоминалось ранее, в этой статье была предпринята попытка заменить математическое моделирование и анализ, используя визуальные манипуляции с поведением и требованиями системы. Как показывает наш конечный результат, мы смогли удовлетворить наши требования к дизайну и реализовать математическую модель нашего компенсатора. Важно отметить, что для реализации дизайна нашего ПИД-регулятора потребуется активная схема, и есть несколько жизнеспособных решений нашей проблемы. Если вы решите создать свой собственный контроллер для той же системы, рекомендуется выбрать разные значения для полюсов и нулей.
Вероятно, вы можете создать контроллер, который все еще отвечает требованиям и не имеет точных значений, как показано выше. При анализе рисунка 5 становится ясно, как каждый шаг повлиял на наш конечный результат. Просто определяя область перерегулирования и корректируя наш выигрыш, мы смогли достичь результата, который напоминал наш вход (хотя и с очевидной ошибкой). Посмотрев на рисунок 6, мы можем сразу сказать, что наша следующая попытка (контроллер PD) смогла значительно улучшить наше пиковое время и установившуюся ошибку. Наконец, наш ПИД был в состоянии принять то, что мы уже определили в нашем ПД, и улучшить нашу установившуюся ошибку в нашей цели - нулю. Получение опыта с помощью инструмента SISO не только помогает улучшить время, затрачиваемое на разработку функционального контроллера, но и помогает связать отношения каждого аспекта / компонента с нашим конечным результатом.