Материал: Методические указания к выполнению и оформлению лабораторной работы № 4 по дисциплине Системы автоматического регулирования и управления. Королев К.Г

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Продолжение табл. 1

  1. Обведите мышью (при нажатой ЛКМ) все блоки, кроме источников сигналов и осциллографов. Создайте подсистему Линейная система с входами r (заданный курс) и f (возмущение) и выходами phi и delta.

Edit – Create subsystem

  1. Скопируйте блок Линейная система и измените его имя на Нелинейная система. Подключите к входам нового блока те же сигналы (заданный курс и возмущение), что и для первого блока. Установите для блока линейной системы желтый фоновый цвет, а для нелинейной – фиолетовый.

Перетащить с помощью ПКМ

Format – Background color

  1. Откройте подсистему Привод в нелинейной системе. Мы построим нелинейную модель привода, учитывая ограничения на угол перекладки руля и скорость его изменения.

Двойной щелчок на блоке

  1. Удалите соединительные линии.

ЛКМ на элементе, нажать Delete.

  1. Измените передаточную функцию на .

Двойной щелчок на блоке

  • Denominator

Продолжение табл. 1

  1. Откройте окно Library Browser.

View – Library Browser

  1. Перетащите в окно модели блок Sum из группы Math Operations. Измените его так, чтобы организовать отрицательную обратную связь.

Двойной щелчок на блоке

|+- в поле List of signs

  1. Перетащите в окно модели два блока Saturation (насыщение) из группы Discontinuities. Расположите один блок перед интегратором (ограничение на скорость перекладки), второй – после (ограничение на угол перекладки).

  1. Введите нужные пределы допустимых значений, так чтобы скорость перекладки руля была не более 3 градусов в секунду, а угол перекладки – не более 30 градусов. В отчете укажите все установленные значения.

Двойной щелчок на блоке

  • Upper limit

  • Lower limit

  1. Соедините блоки нужным способом. Сохраните модель. Скопируйте схему нелинейной подсистемы Привод в отчет.

  1. Закройте лишние окна и перейдите в главное окно модели. Освободите оба осциллографа от связей, перетащив их вправо при нажатой клавише Shift.

  1. Перетащите в окно модели два блока Mux (мультиплексор) из группы Signal Routing. Эти блоки служат для объединения сигналов в «жгут» (многожильный кабель).

  1. Соедините входы первого блока с сигналами управления (delta) линейной и нелинейной систем, а выход – с входом осциллографа Руль.

Продолжение табл. 1

  1. Аналогично соедините входы второго мультиплексора с сигналами выхода (phi) линейной и нелинейной систем, а выход – с входом осциллографа Курс.

  1. Сохраните модель и скопируйте ее через буфер обмена в отчет.

  1. Установите заданный курс 10 градусов и возмущение 0. Выполните моделирование и посмотрите результаты. Жёлтый график показывает изменение первого входа осциллографов ­– (линейная система), фиолетовый – второго (нелинейная система).

  1. Объясните расхождение между результатами моделирования линейной и нелинейной системы. Какое нелинейное звено существенно влияет на результат?

  1. Создайте новый M-файл.

File – New – M-file

  1. В окне редактора введите команды для вывода графиков переходных процессов по курсу. Теперь массив phi содержит 3 столбца: время и сигналы с двух входов осциллографа (выходы линейной и нелинейной системы). Весь текст справа от знака % считается комментарием. Третий параметр команды plot означает цвет: b – синий, ‘g’ – зеленый, ‘r’ – красный и т.д. (см. справку по этой команде). Команда hold on означает, что не надо стирать старый график, hold off – надо.

figure(1); % открыть рис. 1

subplot(2,1,1);

plot(phi(:,1),phi(:,2),'b');

hold on;

plot(phi(:,1),phi(:,3),'g');

hold off;

legend('Линейная система', ..

'Нелинейная система')

Продолжение табл. 1

  1. Сохраните файл под именем lab4graph.m.

File - Save

  1. Запустите файл (скрипт3) на выполнение. Если график не появился на экране, смотрите сообщения об ошибках в командном окне Matlab.

клавиша F5

  1. Увеличьте размер шрифта, вставив эту команду сразу после вызова subplot. Здесь gca означает текущие оси координат (get current axis). Еще раз запустите скрипт.

set(gca,'FontSize',16);

  1. Добавьте в скрипт название графика и осей координат, так же, как и в работе № 3.

title('Поворот на 10 градусов')

xlabel('Время, сек');

ylabel('\phi, град');

  1. Увеличьте толщину линий. С помощью функции get мы сначала получаем массив указателей (хэндлов, handle) на все объекты-линии. Затем с помощью функции set устанавливаем для каждой линии свойство LineWidth (толщина линии), равное 1,5 пункта. Сохраните файл и запустите его на выполнение.

h = get(gca, 'Children')

set(h(1),'LineWidth',1.5)

set(h(2),'LineWidth',1.5)

Продолжение табл. 1

  1. Добавьте в скрипт команды, с помощью которых в нижней половине окна на одном графике строятся кривые изменения сигнала управления в линейной и нелинейной системах. Не добавляйте заголовок для этого графика (он будет мешать верхнему графику).

  1. Добейтесь, чтобы скрипт работал правильно. Скопируйте текст скрипта в отчет.

  1. Запустите скрипт на выполнение. Скопируйте полученный график в отчет.

  1. Измените величину заданного курса на 90 градусов и снова проведите моделирование.

Двойной щелчок на блоке Заданный курс

ввести 90 в поле Final value

  1. Перейдите в окно редактора и измените название графика на «Поворот на 90 градусов». Снова запустите скрипт и скопируйте построенный график в отчет.

title('Поворот на 90 градусов')

клавиша F5

print -dmeta

  1. Объясните, почему расхождение получилось такое существенное расхождение между линейной и нелинейной моделями? Как теперь нелинейности влияют на результат?

Таблица 2

Таблица коэффициентов

Вариант

, сек

, рад/сек

, сек

, сек

16.0

0.06

1

1

16.2

0.07

2

2

16.4

0.08

1

3

16.6

0.07

2

4

16.8

0.06

1

5

17.0

0.07

2

6

17.2

0.08

1

1

17.4

0.07

2

2

17.6

0.06

1

3

Продолжение табл. 2

17.8

0.07

2

4

18.0

0.08

1

5

18.2

0.09

2

6

18.4

0.10

1

1

18.6

0.09

2

2

18.8

0.08

1

3

19.0

0.07

2

4

19.2

0.08

1

5

19.4

0.09

2

6

19.6

0.10

1

1

18.2

0.0694

2

6

Контрольные вопросы к защите

  1. См. все вопросы к работам № 1, № 2 и № 3.

  2. Как построить подсистему из нескольких существующих блоков модели?

  3. Сколько входов и выходов может иметь подсистема?

  4. Как редактировать подсистему?

  5. Как изменить названия входов и выходов подсистемы?

  6. Как скопировать существующий блок или подсистему?

  7. Как удалить блок или соединительную линию?

  8. Объясните структуру нелинейной модели привода.

  9. Почему в нелинейной модели нельзя использовать общую передаточную функцию линейной модели привода ?

  10. Как выбираются пределы насыщения для блока, расположенного на входе интегратора?

  11. Как освободить блок от связей с другими блоками?

  12. Объясните назначение блока Mux.

  13. Как разобраться, какой сигнал поступает на первый вход осциллографа (через мультиплексор), какой – на второй?

  14. Что такое скрипт в среде Matlab?

  15. Что означает знак % внутри скрипта?

  16. Как вводить несколько команд в одной строке?

  17. Как правильно перенести длинную команду на следующую строку?

  18. Что означает третий параметр при вызове функции plot?

  19. Что означают команды hold on и hold off?

  20. Как запустить скрипт на выполнение?

  21. Как выполнить только некоторые команды из скрипта?

  22. Что означает gca?

  23. Для чего служат функции set и get?

  24. Как узнать и изменить размер шрифта на графике?

  25. Зачем нужен хэндл (handle) графического объекта?

  26. Как изменить толщину линии на графике?

  27. Где выводятся сообщения об ошибках в скрипте?

Системы автоматического регулирования и управления

Отчет по лабораторной работе № 4

Моделирование нелинейных систем управления

Выполнили:

студенты гр. НТ-001 Иванов И.И., Петров П.П.

Проверил:

к.ф.-м.н., доцент Королев К.Г.

Вариант

20

Описание системы

Исследуется нелинейная система управления судном по курсу, структурная схема которой показана на рисунке.

Движение судна описывается линейной математической моделью в виде передаточной функции

, где рад/сек, сек,

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

, сек,

охваченное единичной отрицательной обратной связью. На угол перекладки руля и скорость перекладки накладываются нелинейные ограничения

, .

Измерительное устройство (гирокомпас) моделируется как апериодическое звено с передаточной функцией

, сек,

В качестве управляющего устройства используется ПИД-регулятор с передаточной функцией

,

где , сек, сек, сек,

Источник: https://studfile.net/preview/16567418/