Инструкция по выполнению работы
Лабораторная работа № 3
Моделирование систем управления в пакете Simulink
Цели работы
· освоение методов моделирования линейных систем в пакете Simulink
Задачи работы
· научиться строить и редактировать модели систем управления в пакете Simulink
· научиться изменять параметры блоков
· научиться строить переходные процессы
· научиться оформлять результаты моделирования
· изучить метод компенсации постоянных возмущений с помощью ПИД-регулятора
Оформление отчета
Отчет по лабораторной работе выполняется в виде связного (читаемого) текста в файле формата Microsoft Word (шрифт основного текста Times New Roman, 12 пунктов, через 1,5 интервала, выравнивание по ширине). Он должен включать
· название предмета, номер и название лабораторной работы
· фамилию и инициалы авторов, номер группы
· фамилию и инициалы преподавателя
· номер варианта
· краткое описание исследуемой системы
· результаты выполнения всех пунктов инструкции, которые выделены серым фоном (см. ниже): результаты вычислений, графики, ответы на вопросы.
При составлении отчета рекомендуется копировать необходимую информацию через буфер обмена из рабочего окна среды Matlab. Для этих данных используйте шрифт Courier New, в котором ширина всех символов одинакова.
Описание системы
В работе рассматривается система управления судном по курсу. Ее структурная схема показана на рисунке.

Структурная схема системы стабилизации судна на курсе
Линейная математическая модель, описывающая рыскание судна, имеет вид

где
– угол рыскания (угол отклонения от заданного курса),
– угловая скорость вращения вокруг вертикальной оси,
– угол поворота вертикального руля относительно положения равновесия,
– постоянная времени,
– постоянный коэффициент, имеющий размерность рад/сек. Передаточная функция от угла поворота руля к углу рыскания запишется в виде
.
Привод (рулевая машина) приближенно моделируется как интегрирующее звено, охваченное единичной отрицательной обратной связью, так что его передаточная функция равна
.
Для измерения угла рыскания используется гирокомпас, математическая модель которого записывается в виде апериодического звена первого порядка с передаточной функцией[1]
.
Исследуются переходные процессы в системе при использовании ПД-регулятора
,
и ПИД-регулятора
.
Инструкция по выполнению работы
| Этап выполнения задания | Команды Matlab |
1. Для запуска пакета Simulink щелкните по кнопке в командном окне Matlab или введите команду simulink в командной строке.
| simulink |
| 2. Создайте новую модель с помощью верхнего меню открывшегося окна Simulink Library Browser. |
File – New – Model
|
| 3. Перетащите блок Transfer Fcn (передаточная функция) из окна Simulink Library Browser (группа Continuous) в окно модели и введите числитель и знаменатель передаточной функции модели судна. | Двойной щелчок на блоке · Numerator [K] · Denominator [Ts 1 0] |
| 4. Дайте блоку название Судно. | ЛКМ на имени блока |
5. Аналогично добавьте еще три блока типа Transfer Fcn, назовите их Привод, Регулятор и Гирокомпас, введите нужные параметры. Заметьте, что передаточная функция привода должна быть с учетом внутренней обратной связи.
| |
| 6. Сохраните модель в своей папке под именем lab3.mdl[2]. | File – Save |
| 7. Выделите блок Гирокомпаси разверните его в другую сторону. | Нажать Ctrl+I или дважды нажать Ctrl+R. |
| 8. Сделайте, чтобы названия блоков Судно, ПриводиРегуляторбыли над блоками. | ПКМ на блоке, Format - Flip name |
| 9. Выберите цвет блоков на свой вкус. | ПКМ на блоке, Format – Background color |
| 10. Перетащите в окно модели блок Sum из группы Math Operations и установите его слева от регулятора. | ЛКМ |
| 11. Сделайте так, чтобы второй вход учитывался в сумме со знаком минус (отрицательная обратная связь). | Двойной щелчок на блоке, ввести |+- в поле List of signs |
| 12. Перетащите в окно модели блок Step из группы Sources и установите его слева от сумматора. Дайте ему имя Заданный курс. | |
| 13. Установите время подачи сигнала 0 и величину сигнала 10 (исследуем поворот на 10 градусов). | Двойной щелчок на блоке, 0 в поле Step time 10 в поле Final value |
| 14. Соедините все блоки нужным способом. | ЛКМ на источнике, удерживать Ctrl и ЛКМ на приемнике, или протащить ЛКМ от выхода одного блока к входу другого |
| 15. Перетащите в окно модели два блока Scope (осциллограф) из группы Sinks и установите их в правой части. Назовите их Руль и Курс. | |
| 16. Сделайте, чтобы на первый блок Scope поступал сигнал управления (угол поворота руля, после блока Привод), а на второй – сигнал выхода (курс судна). Сохраните модель. | Нажать ПКМ на линии в точке отбора сигнала, затем, не отпуская ПКМ, тащить линию к входу блока. |
| 17. Уменьшите окно до минимального размера, при котором видны все элементы, и скопируйте модель в буфер обмена. Затем вставьте ее из буфера обмена в отчет. |
Edit – Copy model to clipboard
|
| 18. Установите время моделирования 100 секунд. |
Simulation – Simulation parameters
100 в поле Stop time
|
| 19. Выполните моделирование. | ЛКМ по кнопке
|
| 20. Посмотрите результаты моделирования, открыв окна для блоков Курс и Руль. |
Двойной щелчок по блоку
|
| 21. Настройте масштаб по осям в окнах обоих блоков, | ЛКМ по кнопке – установить оптимальный масштаб
|
| 22. Сохраните настройки, | ЛКМ по кнопке
|
| 23. Сделайте так, чтобы результаты моделирования передавались с обоих блоков Scope в рабочую область Matlab в виде матриц, в которых первый столбец – время, а второй – сигнал (курс или угол поворота руля). |
ЛКМ по кнопке
вкладка Data history
Variable name:
phi (Курс) или
delta (Руль)
Format: Array
|
| 24. Выполните моделирование еще раз. | ЛКМ по кнопке
|
| 25. Перейдите в командное окно Matlab и создайте новое окно для графика. В одном окне будут построены две кривых на разных осях. | figure(1); |
| 26. Разбейте окно на 2 части по вертикали и сделайте активным первый график. Первое число в команде subplotозначает количество ячеек с графиками по вертикали, второе – по горизонтали, третье – номер ячейки, которую надо сделать активной[3]. | subplot(2, 1, 1); |
| 27. Постройте график изменения курса. В команде plot сначала указывают массив абсцисс, затем – массив ординат. Двоеточие означает, что используются все строки. | plot(phi(:,1),phi(:,2)); |
| 28. Введите заголовок графика. | title('Курс'); |
29. Введите названия осей координат. Внутри апострофов для ввода греческих букв разрешается использовать команды LaTeX, Например, «\phi» означает греческую букву , а «\delta» – букву .
| xlabel('Время, сек'); ylabel('\phi, градусы'); |
| 30. Аналогично постройте во второй ячейке график изменения угла поворота руля, используя данные из массива delta, полученного в результате моделирования. | subplot(2, 1, 2); plot(delta(:,1),delta(:,2)); title('Угол поворота руля'); xlabel('Время, сек'); ylabel('\delta, градусы'); |
| 31. Скопируйте построенный график в отчет. | print -dmeta |
| 32. Удалите в окне модели связь между приводом и объектом. | ЛКМ по линии, нажать Delete.
|
| 33. Добавьте еще один блок Sum из группы Math Operations и установите его на освободившееся место. Настройте расположение входов и выхода так, чтобы первый вход был в верхней части круга.. | Двойной щелчок по блоку
++| в поле List of signs
|
| 34. Исследуем реакцию системы на постоянный сигнал, приложенный непосредственно к входу объекта. Он может моделировать какое-то постоянное возмущающее воздействие, например, влияние ветра. | |
| 35. Скопируйте блок Заданный курс, перетащив его правой кнопкой мыши, и установите для него величину скачка 2 градуса. Дайте ему название Возмущение. Подключите его выход к новому сумматору. Достройте нужные соединительные линии. | Перетаскивание ПКМ.
Двойной щелчок по блоку
2 в поле Final Value
Двойной щелчок по имени
|
36. Скопируйте полученную модель в отчет.
|
Edit – Copy model to clipboard
|
| 37. Увеличьте время моделирования до 500 и выполните моделирование. Проверьте, вышло ли судно на заданный курс 10 градусов. |
Simulation – Simulation parameters - Stop time
ЛКМ по кнопке
|
| 38. Постройте передаточную функцию по возмущению замкнутой системы с ПД-регулятором. С ее помощью объясните результат, полученный на предыдущем шаге. | |
| 39. Для этой передаточной функции вычислите коэффициент усиления в установившемся режиме. С его помощью рассчитайте установившееся значение сигнала выхода при заданном курсе 10 градусов и постоянном возмущении, эквивалентном 2 градусам поворота руля. Совпадает ли это число с результатами моделирования? | |
| 40. Перейдите в командное окно Matlab и запомните результаты моделирования в новых массивах. Они понадобятся для того, чтобы сравнить исходный и скорректированный варианты системы. | phi0 = phi; delta0 = delta; |
41. Чтобы регулятор компенсировал постоянную составляющую возмущения, надо добавить в него интегральный канал. Таким образом, получается ПИД-регулятор. Подключите параллельно регулятору интегрирующее звено с передаточной функцией , сек. Сохраните модель и скопируйте ее в отчет.
|
|
| 42. Выполните моделирование. Проверьте, вышло ли судно на заданный курс 10 градусов. |
ЛКМ по кнопке
|
| 43. Постройте передаточную функцию по возмущению замкнутой системы с ПИД-регулятором. С ее помощью объясните результат, полученный на предыдущем шаге. | |
| 44. Для этой передаточной функции вычислите коэффициент усиления в установившемся режиме. С его помощью рассчитайте установившееся значение сигнала выхода. Совпадает ли это число с результатами моделирования? | |
| 45. Постройте в верхней части графика 2 кривых – переходные процессы по курсу для ПД- и ПИД-регуляторов. В команде plot можно перечислять несколько пар массивов – первая пара соответствует первому графику, вторая – второму и т.д. Три точки в конце строки означают перенос команды на следующую строку. Команда legend служит для вывода легенды – символьных строк, описывающих каждый из построенных графиков. | subplot(2, 1, 1); plot(phi0(:,1), phi0(:,2),... phi (:,1), phi(:,2)); title('Курс'); xlabel('Время, сек'); ylabel('\phi, градусы'); legend('ПД-регулятор', ... 'ПИД-регулятор'); |
| 46. Аналогично постройте в нижней части графика 2 кривых – изменение угла перекладки руля для ПД- и ПИД-регуляторов, используя данные из массивов delta0 и delta. | |
| 47. Скопируйте построенный график в отчет через буфер обмена. Сделайте выводы о влиянии интегрального канала на переходные процессы в системе. | |
| 48. Постройте передаточную функцию разомкнутой системы с ПИД-регулятором. | |
| 49. Определите запасы устойчивости системы с ПИД-регулятором. Являются ли они достаточными? | [gm,phim] = margin(W) gm = 20*log10(gm) |
Таблица коэффициентов
| Вариант | , сек
| ,рад/сек
| , сек
| , сек
|
| | 16.0 | 0.06 | ||
| | 16.2 | 0.07 | ||
| | 16.4 | 0.08 | ||
| | 16.6 | 0.07 | ||
| | 16.8 | 0.06 | ||
| | 17.0 | 0.07 | ||
| | 17.2 | 0.08 | ||
| | 17.4 | 0.07 | ||
| | 17.6 | 0.06 | ||
| | 17.8 | 0.07 | ||
| | 18.0 | 0.08 | ||
| | 18.2 | 0.09 | ||
| | 18.4 | 0.10 | ||
| | 18.6 | 0.09 | ||
| | 18.8 | 0.08 | ||
| | 19.0 | 0.07 | ||
| | 19.2 | 0.08 | ||
| | 19.4 | 0.09 | ||
| | 19.6 | 0.10 | ||
| | 18.2 | 0.0694 |
в командном окне Matlab или введите команду simulink в командной строке.
File – New – Model
с учетом внутренней обратной связи.
Edit – Copy model to clipboard
ЛКМ по кнопке
– установить оптимальный масштаб
вкладка Data history
Variable name:
phi (Курс) или
delta (Руль)
Format: Array
, а «\delta» – букву
.
,
сек. Сохраните модель и скопируйте ее в отчет.
, сек
,рад/сек
, сек
, сек