Для чего нужна обратная связь matlab
Перейти к содержимому

Для чего нужна обратная связь matlab

Как использовать функцию обратной связи в Matlab?

Функция обратной связи Matlab используется для получения передаточной функции системы с обратной связью. Пример:

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

sys = feedback(sys1,sys2) возвращает объект модели SYS для отрицательной обратной взаимосвязи модельных объектов sys1 , sys2 . Чтобы вычислить замкнутую систему с положительной обратной связью, используйте знак = +1, для отрицательной обратной связи — -1.

У меня вопрос возникает, когда у нас есть система следующего типа:

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

Согласно этим документам , мы можем использовать обратную связь для создания цикла отрицательной обратной связи с G и C.

Это источник путаницы, разве не должно быть вышесказанного: sys = feedback(G*C,1,-1)? это не одно и то же.

Однако, глядя на эти документы , для коэффициента усиления единичного цикла k вы можете вычислить передаточную функцию замкнутого цикла T, используя:

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

Почему мы используем, 1 а нет -1 ? Это все еще отрицательный отзыв, а не положительный.

Пример моделирования линеаризации по обратной связи в Simulink

Рассмотрим модель перевернутого маятника, взятую из [26]:

где 0 — угол отклонения маятника от вертикали, т — масса маятника, I — длина маятника, х — а — ускорение перемещения платформы.

В аффинной форме динамика объекта

управления может быть представлена в виде:

где

Заметим, что это уравнение моделирует лишь отдельную часть перевернутого маятника как системы — собственно сам подвижный груз, но не рассматривает динамику платформы, на которой находится маятник. Более реалистичная модель должна учитывать массу платформы и маятника, по приложенной к подвижной платформе силе F моделировать изменение ускорения а. Также необходимым является моделирование трения в точке крепления маятника и трения при движении платформы.

Удержание в равновесии системы «перевернутый маятник на тележке» является классической задачей теории управления. К ней сводятся задачи управления разнообразными реальными объектами: ракетой, буксиром, толкающим впереди себя баржи, и даже ядерной реакцией на АЭС.

Для моделирования нелинейных систем вида х = f(x, и) в Simulink необходимо использовать два блока: интегратор, чтобы по значению х получить х и блок вычисления нелинейной функции f(x,u).

Поместим в модель блок Integrator и блок Embedded MATLAB Function из библиотеки Simulink / User-Definded Functions. Дважды щелкнув по блоку Embedded MATLAB Function, открывается текстовый редактор (рисунок 4.27), в котором необходимо ввести текст на скриптовом языке MATLAB, вычисляющий функцию f(x,u).

Редактор кода блока Embedded MATLAB Function

Рисунок 4.27. Редактор кода блока Embedded MATLAB Function.

Введем следующий текст, который вычисляет правые части f(x,u) уравнения модели перевернутого маятника:

dx = [х(2); g*sin(x(l))/l — cos(x(l))*u/l];

После соединения блоков между собой, получаем модель, показанную на рисунке 4.28.

Модель нелинейной системы в Simulink

Рисунок 4.28. Модель нелинейной системы в Simulink.

Откроем свойства блока интегратора и установим начальные значения. Поскольку пространство состояний — плоскость (О, 0) т , то необходимо задать в поле Initial condition вектор двух чисел. Для теста промоделируем поведение системы вокруг положения 0 = 7г, где маятник опущен в нижнее вертикальное положение. Зададим начальные состояния 0(0) = 7г — 7г/4, 0(0) = 0, введя в параметре Initial condition блока Integrator значение [pi-pi/4 0].

В результате моделирования системы получаем гармонические колебания между угловыми положениями показанные на рисунке 4.29.

Возьмем модель маятника в аффинной форме х = f(x) + д(х)и, У = Цх):

Дифференцируя дважды выход объекта управления ?/, получаем

Результат моделирования перевернутого маятника

Рисунок 4.29. Результат моделирования перевернутого маятника.

Колебания малой амплитуды — угловое положение 0(?), другая кривая — скорость 0(?)).

трансформирует исходную нелинейную систему в линейную:

Линеаризация не определена в точках поскольку знаменатель u(v,x) обращается в 0. Исходная система в этих точках неуправляема, поэтому сингулярности линеаризации имеют исключительно физическую природу: чем ближе положение маятника к горизонтали, тем тяжелее им управлять.

С практической точки зрения известно, что система может отрабатывать траектории, переходящие через положения ±7г/2, например 0(?) = ujt (круговое вращение относительно точки закрепления). Кроме того, бесконечность при делении на 0 может пониматься как машинная бесконечность — очень большое число. В данном случае, значение u(v,x) ограничено в объекте управления значением итах в 10 g, поэтому мы можем определить линеаризующее преобразование u(v,x) во всей фазовой плоскости.

Добавим в модель Simulink еще один блок Embedded MATLAB Function для вычисления линеаризующего преобразования координат. В свойствах блока введем текст функции u(v,x):

u = (g*sin(x(l))/l — v) / (cos(x(1))/1);

Подсоединив блоки между собой, получим модель системы, для которой выполнена линеаризация по обратной связи (рисунок 4.30).

Модель системы с линеаризацией по обратной связи. Блок fen вычисляет правые части модели в пространстве состояний, блок fbln - линеаризующее преобразование

Рисунок 4.30. Модель системы с линеаризацией по обратной связи. Блок fen вычисляет правые части модели в пространстве состояний, блок fbln — линеаризующее преобразование.

Промоделировав реакцию системы на ступенчатое воздействие, получаем типичную реакцию линейной системы (двойного интегратора у = v) — линейное и квадратичное нарастание х2 и х (рисунок 4.31).

Реакция линеаризованной модели на единичное

Рисунок 4.31. Реакция линеаризованной модели на единичное

Решим задачу регулирования углового положения маятника. Поскольку система от v до у — линейна, то задача управления может быть решена линейным ПИД-регулятором.

Соберем модель, показанную на рисунке 4.32, в которой имеется источник единичного сигнала и управление осуществляется по сигналу обратной связи (стандартное включение

Модель замкнутой системы управления с линеаризацией по обратной связи

Рисунок 4.32. Модель замкнутой системы управления с линеаризацией по обратной связи.

Далее аналогично определим переменные, являющиеся параметрами ПИД-регулятора, введя в командной строке

и вписав в свойствах ПИД-регулятора в полях Proportional (Р), Integral (I), Derivative (D) соответственно имена переменных Кр, Ki, Kd. Также добавим эти переменные как Tuned parameters в блоке Signal Constraint, ограничив их снизу значением 0. После запуска процесса оптимизации, получаем множество реакций в окне Signal Constraint, среди которых по окончанию поиска будет оптимальная (рисунок 4.33).

Оптимизация параметров ПИД-регулятора для достижения желаемой реакции на единичное воздействие

Рисунок 4.33. Оптимизация параметров ПИД-регулятора для достижения желаемой реакции на единичное воздействие.

Моделирование системы с полученными параметрами регулятора дает искомую реакцию на выходе (рисунок 4.34).

Результат моделирования замкнутой системы управления с линеаризацией по обратной связи

Рисунок 4.34. Результат моделирования замкнутой системы управления с линеаризацией по обратной связи.

Русские Блоги

Matlab feedforward + построение системы обратной связи на основе набора инструментов системы управления MATLAB

MATLAB чаще строит системы управления с обратной связью и разомкнутым контуром.Эта статья в основном знакомит с тем, как построить структуру системы управления с прямой связью и обратной связью в MATLAB, которая отличается от создания системы с прямой связью + обратной связи в Simulink.

В основном используйте две функции sumblk и connect в панели инструментов системы управления MATLAB, чтобы реализовать системное взаимодействие различных функций передачи.

sumblk

Summing junction for name-based interconnections

sumblk может добиться линейной суперпозиции записанных сигналов, подобно модулю ADD в Simulink. Необходимо указать название используемого сигнала.

connect

Block diagram interconnections of dynamic systems

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

1. Используемый здесь sumblk (output, input, input, . input, Signs) отличается от MATLAB (2017b), используемого автором.

2. Используя систему управления для построения передаточной функции, будет создана структура, которая содержит InputName и OutputName сигнала, что означает имя входного и выходного сигналов. Обратите внимание на согласование отношения пар имен.

  1. .Использование функций набора инструментов системы управления Matlab в обучении принципам автоматического управления [J]. Education Teaching Forum, 2017 (03): 204-206.
  2. Справка и документация MALTAB https://ww2.mathworks.cn/help/matlab/learn_matlab/help.html

Интеллектуальная рекомендация

Заметки для изучения регулярных выражений (1) базовые знания

1. Что такое регулярное выражение? Регулярное выражение — это формула, в которой используется определенный шаблон для соответствия типу строки. Во-вторых, состав регулярных выражений В PHP регулярные .

Глава 4 Учебные Примечания

Основной тип и тип ссылки Базовый тип: не определен, нуль, логическое, число, строка. Эти пять основных типов данных являются <цвет шрифта = «красный»> Значение </ FONT> Доступ.

mysql one: базовые знания и простой запрос

оглавление Базовые знания База данных, использованная в этой статье Простой запрос Запрос условий Используйте реляционные и логические операторы Нечеткий запрос Сортировать запрос Базовые знания База .

Моделирование систем управления с помощью MATLAB

Многие программные средства анализа и синтеза систем управления (как классическими, так и современными методами) основаны на использовании математических моделей. При описании систем передаточными функциями для этих целей может быть использован MATLAB[1].

В этом разделе мы сначала покажем, насколько полезным может оказаться MATLAB при анализе математической модели механической системы масса-пружина. Используя нотацию MATLAB, мы создадим программу, позволяющую в интерактивном режиме ис­следовать влияние собственной частоты колебаний и коэффициента затухания на свобод­ное движение массы. При этом мы воспользуемся аналитическим решением, описываю­щим свободное движение массы.

Далее мы рассмотрим, как MATLAB оперирует с передаточными функциями и структурными схемами. В частности, будет показано, как MATLAB работает с алгебраи­ческими полиномами, вычисляет полюсы и нули передаточных функций, определяет пе­редаточные функции замкнутых систем, производит упрощения структурных схем, вы­числяет реакцию систем на единичное ступенчатое воздействие. В заключение мы проил­люстрируем применение MATLAB к синтезу системы управления устройством электри­ческой тяги из примера 2.12.

В этом разделе мы познакомимся с функциями MATLAB roots, tf, series, parallel, feed­back, pole, zero, poly, conv, polyval, minreal, pzmap, step.

Система масса—пружина. На рис. 2.2 изображена механическая система масса-пру­жина с демпфированием. Перемещение массы y

My(t)+ by(t)+ ky(t) = r(t).

Движение системы при отсутствии внешней силы /■(/) описывается выражением

где 0 = arccos С,, а д>(0) — начальное отклонение. При С, < 1 реакция системы является недо — демпфированной, при С, >1 — передемпфированной, а при С,= 1 — критически демпфи­рованной. С помощью MATLAB мы можем пронаблюдать характер изменения положе­ния массы как реакцию на начальное отклонение ^(0). Рассмотрим случай недодемпфиро — ванной системы:

Моделирование систем управления с помощью MATLAB

Программа MATLAB для построения графика свободного движения системы приве­дена на рис. 2.40. Прежде всего, перед запуском программы, в качестве входных данных для основного блока должны быть заданы значения ^(0), ш,„ t и С,. После этого выполняет­ся основная программа unforced. m, которая представляет результат в графической форме. Если возникает необходимость исследовать влияние на свободное движение собственной частоты колебаний и коэффициента затухания, то просто необходимо ввести новые зна­чения ю„ и С, и еще раз выполнить программу. На рис. 2.41 приведен график свободного движения системы. Заметим, что программа автоматически указывает на графике значе­ние коэффициента затухания и собственной частоты колебаний. Это позволяет избежать недоразумений при многократном проведении моделирования.

Скрипт анализа движения системы

%Вычисление реакции на начальное условие %

c=(y0/sqrt(1 — zetaA2)); y=c*exp(-zeta*wn*t).*sin(wn*sqrt(1-zetaA2)*t+acos(zeta));

plot(t, y,t, bu,’—’,t, bl,’—’), grid хІаЬеІ(‘Время (с)’), ylabel(‘y(t) (метры)’) legend([‘omega_n=’,nurri2str(wn)1′ zeta=’,num2str(zeta)]);

01 2345678 9 10

Моделирование систем управления с помощью MATLAB

В рассмотренной выше задаче мы воспользовались известным аналитическим реше­нием однородного дифференциального уравнения. В общем случае, при моделировании замкнутых систем управления, подверженных влиянию различных внешних воздействий, а также при разных начальных условиях, аналитическое решение бывает получить очень трудно. Здесь можно прибегнуть к помощи MATLAB, который численно решит постав­ленную задачу и представит результат в графической форме.

MATLAB позволяет исследовать системы, описываемые передаточными функция­ми. Поскольку передаточная функция имеет вид отношения двух полиномов, мы сначала рассмотрим, как MATLAB оперирует с алгебраическими полиномами. При этом не будем забыват ь, что в передаточной функции должны быть заданы оба полинома— и в числите­ле, и в знаменателе.

Моделирование систем управления с помощью MATLAB

Полиномы в MATLAB представляются в виде векторов-строк, состоящих из коэффи­циентов в убывающем порядке степеней. Например, полином p(s) = s’ + 3s2 + 4 задается так, как показано на рис. 2.42. Обратите внимание, что даже если коэффициент при ка — кой-то степени равен нулю, он все равно включается в представление полинома p(s).

Ввод полинома /0(s) = s3 + 3s2 + 4 и вычисление его корней

Если р есть вектор-строка, состоящая из коэффициентов p(s) в порядке убывания сте­пеней, то функция roots(p) определяет вектор-столбец, содержащий корни этого полино­ма. И наоборот, если г — вектор-столбец, содержащий корни полинома, то функция poly(r) дает вектор-строку из коэффициентов полинома в убывающем порядке степеней. На рис. 2.42 показано, как с помощью функции roots вычисляются корни полинома p(s) = = s3 + Зі2 + 4. На рис. 2.42 показано также, как можно восстановить полином по его кор­ням с помощью функции poly.

Умножение полиномов производится с помощью функции conv. Предположим, что мы хотим получить полином n(s) в развернутой форме, где n(s) = (Зі2 + 2s + 1 )(.s + 4). Эта процедура выполняется так, как показано на рис. 2.43. В результате умножения получаем полином n(s) = 3s3 + 14s2 + 9s + 4. Для вычисления значения полинома при заданном зна­чении переменной используется функция polyval. Как показано на рис. 2.43, полином n(s) имеет значение п(-5) = -66.

В пособиях по применению MATLAB модели линейных стационарных систем рас­сматриваются в качестве объектов, позволяя манипулировать ими как единым целым. При использовании аппарата передаточных функций модели систем создаются с помо­щью функции tf; если модель должна быть представлена в переменных состояния, то при­меняется функция ss (см. главу 3). Применение функции tf проиллюстрировано на рис. 2.44(a). Благодаря возможностям объектно-ориентированного программирования, присущим MATLAB, модели систем обладают свойствами объектов, которые легко можно изменять; аналогично, функции, применяемые для работы с объектами, принято называть методами. Например, если вы имеете две модели систем,

то вы можете сложить их с помощью оператора «+»:

G(s) = С, (s)+G2 (s) = f tgl+15 .

Соответствующая программа MATLAB приведена на рис. 2.44(6), где sysl представ­ляет передаточную функцию G[(.v), a sys2 — G2(s). Вычисление полюсов и нулей переда­точной функции производится при работе с ней как с объектом путем применения функ­ций pole и zero. Это проиллюстрировано на рис. 2.45.

В следующем примере мы покажем, как с помощью функции pzmap (рис. 2.46) мож­но указать расположение на комплексной плоскости полюсов и нулей передаточной фун­кции. Нули на диаграмме обозначаются кружочками, а полюсы — крестиками. Если фун­кция pzmap вызывается без аргументов, то диаграмма строится автоматически.

Моделирование систем управления с помощью MATLAB

Использование функций conv и polyval для

умножения полиномов (3s2 + 2s + 1 )(s + 4) и вычисления значения произведения

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *