Компьютерное моделирование САУ
При отсутствии навыков работы в Matlab рекомендуется изучить описание интерфейса программы и принципы работы по [11-15].
Краткие методические указания Командное окно позволяет использовать Matlab как мощный научный калькулятор, который отображает набранные с клавиатуры команды, результаты их выполнения, текст исполняемой программы, а также информацию об ошибках выполнения программы. В командной строке после знака приглашения (> >) можно выполнять любые операции с действительными или комплексными числами (простейшие арифметические действия, элементарные и специальные математические функции). Основные особенности записи текста программ в Matlab: - Каждый оператор записывается в отдельной строке и выполняется при нажатии клавиши Enter. Несколько операторов в одной строке разделяются символами «; » или « , ». Длинный оператор можно записать в несколько строк, используя знак переноса строки – многоточие (…). - Если оператор не заканчивается символом «; », то результат его действия при выполнении будет выведен в командное окно. - Строка программы или её часть, начинающаяся с символа «%» не выполняется, а воспринимается системой как комментарий. - Строки комментария, предшествующие первому выполняемому оператору, воспринимаются как описание программы и выводятся в командное окно при получении справочной информации о созданной программе по команде help (имя файла). - Операторы начала и окончания текста программы отсутствуют, т. е. начало и конец программы никак не маркируются. - Переменные не описываются и не объявляются. Любое новое имя воспринимается системой как имя матрицы, размер которой устанавливается при предварительном вводе значений ее элементов. - Имена переменных могут содержать только буквы латинского алфавита и цифры и должны начинаться с буквы. - В именах переменных могут использоваться как прописные, так и строчные буквы с учетом, что Matlab их различает. - Создание и хранение программы на языке Matlab осуществляется при помощи текстового редактора, который вызывается автоматически при открытии или создании m -файлов командами New, Open из меню File. Запуск m-файлов на выполнение производится после их сохранения в рабочем каталоге путем указания в командной строке имени файла. - Получить информацию о функциях Matlab можно при помощи команды help < имя функции>. Построение частотных характеристик Для построения частотных характеристик необходимо выполнить следующие действия: - Сформировать в командной строке математическую модель системы в zpk – или tf –форме. Модели систем в zpk – форме описываются выражением:
где z1, z2, …, zm - нули системы (корни числителя передаточной функции); Команда в общем виде записывается как
Sys = zpk (z, р, К), где z и р – векторы нулей и полюсов, К – обобщенный коэффициент передачи, Sys – произвольное имя переменной, присваиваемое модели объекта. Также можно использовать модели, представленные в tf -форме. Модели систем в tf -форме описываются отношением полиномов:
,
где - постоянные коэффициенты числителя и знаменателя полинома [11, с. 12, с. 52]. Пример 1. Пусть передаточная функция разомкнутой системы задана в виде тогда в командной строке Matlab записывают
> > Sys1= zpk ([], [0 -1/0, 05 -1], 20),
где [] – пустой вектор, который означает отсутствие корней числителя; После нажатия на клавишу ввода в командном окне получим необходимую модель системы в следующем виде: Zero/pole/gain: 20 ---------------- s (s+20)(s+1) Для записи в tf -форме передаточная функция имеет вид , тогда в командной строке Matlab записывают
> > Sys 1 = tf ([20], [1 21 20 0]),
где [20] – это вектор коэффициентов числителя, а [1 21 20 0] – вектор коэффициентов знаменателя (последний ноль означает, что при свободном члене в полиноме знаменателя нет коэффициента). В командном окне после ввода получим:
Transfer function: 20 ------------------------ s^3 + 21 s^2 + 20 s - Построить АФЧХ разомкнутой системы в виде частотного годографа Найквиста, выполнив команду nyquist (Sys)..[11, с. 126]. Результат для системы из примера 1 приведен на рисунке 5.
> > nyquist (Sys 1)
Рисунок 5
- Построить логарифмические амплитудно- и фазо-частотные характеристики, используя команду bode (Sys) [11, с. 111] или margin (Sys), которые позволяют определять запасы устойчивости [11, с. 118]. Полученный результат сравнивается с асимптотическими ЛАЧХ и ЛФЧХ, построенными вручную. Результат построения для системы из примера 1 приведен на рисунке 6.
> > bode (Sys 1)
Рисунок 6
- Графики АЧХ и ФЧХ можно построить с помощью команды plot, используя аналитические выражения для определения частотных характеристик системы. В качестве примера для построения АЧХ и ФЧХ системы ниже приводится программа. Программа записывается в редакторе Matlab, который вызывается через последовательно открываемые меню File-New-M-file. Имя сохраненного в рабочем каталоге М- файла становится командой. Запуск этой команды на выполнение можно осуществлять в самом редакторе через меню Debug - Run или из командной строки путем указания имени созданного файла и нажатием на Enter. Важным для работы является установка в окне Matlab пути доступа к рабочему каталогу, в котором сохраняется файл. Рабочий каталог может выбираться из выпадающего списка Current Directory на панели инструментов командного окна, а если его нет в этом списке, то он добавляется из диалогового окна Browse for Folder, вызываемого кнопкой, расположенной справа от списка. Пример 2. Построим АЧХ и ФЧХ колебательного звена с передаточной функцией . Запишем выражение для АЧХ и выражение для ФЧХ = -arctg . Так как в Matlab невозможен ввод греческих символов, то в выражениях для АЧХ и ФЧХ производим замену и обозначим:
Построение АЧХ выполняет следующая программа:
k = 12; z = 0, 2; T = 1; w = 0: 0, 01: 50; % задаем численные значения параметров звена или системы; W = k./(T.^2.*(w.*j).^2 + 2.*T.*z.*w.*j +1); % формируем выражение для АФЧХ; %(точка указывает на то, что в вычислениях используются элементы массива - вектора значений частоты); plot(w, abs(W), '*')% строим график со значениями частоты по оси х, значениями модуля АФЧХ по оси y; title('|W(jw)| = k./(T.^2.*(w.*j).^2 + 2.*T.*z.*w.*j + 1); '), % указываем заголовок графика; xlabel('chastota'), ylabel('ACH')% подписываем координатные оси графика; gtext('A(w)')% выводим указанный текст на график в то место, которое будет указано курсором мыши при построении графика; Построение ФЧХ выполняет следующая программа:
z = 0, 3; T = 1; %задаем численные значения параметров звена или системы; w1 = 0, 01: 0, 01: 1; %устанавливаем границы изменения частоты для первого диапазона; ar1 = -(180./pi).*atan(2.*T.*z.*w1./(1-T.^2.*w1.^2)); % формируем выражение для построения ФЧХ в 1 диапазоне; plot(w1, ar1, '-K'); %строим график; hold on % режим добавления последующих графиков в одно окно; grid on % режим сетки; w2 = 1.01: 0.01: 10; % устанавливаем границы изменения частоты для второго диапазона; ar2 = -180-(180./pi).*atan(2.*T.*z.*w2./(1-T.^2.*w2.^2)); % формируем выражение для построения ФЧХ во 2 диапазоне; plot(w2, ar2, '-K')% строим график; xlabel('w-chastota'), ylabel('FCH')% подписываем координатные оси Примечание 1. Функция Matlab – atan (x) = arctg (x) выдает значения только в диапазоне от -π /2 до π /2), поэтому искомая функция ar (w) набирается в виде двух выражений, причем каждая характеристика является отдельным графиком, совмещение которых в одном и том же окне обеспечивает команда hold on. Примечание 2. Приведенные примеры можно скопировать в редактор Matlab и запустить на выполнение, ознакомиться с результатами построения частотных характеристик колебательного звена, а затем написать аналогичные программы для своего варианта. Чтобы получить в Matlab модель замкнутой системы с единичной обратной связью по известной разомкнутой используют оператор feedback. Для передаточной функции из примера 1 запишем: Sys2 = feedback(Sys1, 1), где Sys2 – имя замкнутой модели.[11, с. 77]. Построение АЧХ замкнутой системы может осуществляться также как и для разомкнутой по полученному аналитическому выражению с помощью приведенной выше программы построения АЧХ. Построить переходную функцию замкнутой системы при входном воздействии вида можно при помощи команды step (Sys) [11, с. 153]. Для передаточной функции из примера 1 получим переходной процесс, представленный на рисунке 7.
> > step (Sys 2)
Рисунок 7
По переходной характеристике определяется время регулирования и перерегулирование . Также строят переходный процесс в замкнутой импульсной системе. Для этого необходимо задать передаточную функцию непрерывной части системы в zpk -форме и преобразовать ее в дискретную с помощью оператора c 2 d при заданном времени дискретизации T [11, с. 62], затем построить переходной процесс системы командой step (Sys). Аналогично можно построить и логарифмические частотные характеристики импульсной системы командой bode (Sys). Например, если задана передаточная функция непрерывной части в виде и период дискретизации , то получим
W0 = tf([25], [0, 01 0, 2 1]) ; Ts = 0, 001 WI = c2d(W0, Ts) Step (WI).
Все построенные в Matlab графики должны быть распечатаны и включены в контрольную работу. Литература 1. Теория автоматического управления. Конспект лекций: В 2 ч. Ч.1: 2. Кузнецов, В. П. Линейные непрерывные системы: тексты лекций 3. Электронный учебно-методический комплекс по дисц. «Теория автоматического управления». Ч.1: Линейные непрерывные системы / А. Т. Доманов [и др.]. – Минск: БГУИР, 2006. 4. Электронный учебно-методический комплекс по дисц. «Теория автоматического управления». Ч.2.: Дискретные, нелинейные, оптимальные и адаптивные системы /С. В. Лукьянец [и др.] / − Мн.: БГУИР, 2007. 5. Кузнецов, В. П. Линейные импульсные системы: Математическое описание: тексты лекций по курсу «Теория автоматического управления». / В. П. Кузнецов. – Минск: БГУИР, 1996. – 70 с. 6. Бесекерский, В. А. Теория автоматического управления / В. А. Бесекерский, Е. П. Попов. – СПб.: Профессия, 2004. 7. Теория автоматического управления. В 2 ч. Ч.1 / под ред. А. А. Воронова. – М.: Высш. шк., 1986. 8. Теория автоматического управления. В 2 ч. Ч.2 / Под ред. А. А. Воронова. – М.: Высш. шк., 1986. 9. Востриков, А. С.Теория автоматического управления: учеб. пособие для вузов / А. С. Востриков, Г. А. Французова. − М.: Высш. шк., 2004. 10. Иванов, В. А. Теория дискретных систем автоматического управления. / В. А. Иванов, А. С. Ющенко. – М.: Физматгиз, 1983. 11. Медведев, В. C. Control System Toolbox. Matlab 5 для студентов. / В. C. Медведев, В. Г. Потемкин. - М.: Диалог-МИФИ, 1999. 12. Антипова, М. А. Автоматизированный расчёт систем управления: методическое пособие к лабораторным работам для студентов специальностей 53 01 03 «Автоматическое управление в технических системах» и 53 01 07 «Информационные технологии и управление в технических системах» всех форм обучения / М. А. Антипова, М. К. Хаджинов. – Минск: БГУИР, 2003. – 38с. 13. Лазарев, Ю. Ф. Matlab 5.X. - Киев: Ирина, BHV, 2000. – 382c. 14. Андриевский, Б. Р. Избранные главы теории автоматического управления с примерами в системе MatLab. / Б. Р. Андриевский, А. Л. Фрадков. – СПб.: Наука, 2000. – 475c. 15. Материалы сайта – www.exponenta.ru.
|