Инструкция по выполнению работы

Лабораторная работа № 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

Наши рекомендации