МОДЕЛИРОВАНИЕ НЕЛИНЕЙНЫХ СИСТЕМ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ




ЛАБОРАТОРНАЯ РАБОТА №6

Цель работы: освоение методов моделирования нелинейных систем автоматического управления.

 

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

 

Необходимо:

1. Построить и отредактировать модель системы с подсистемами;

2. Добавить в схему нелинейное звено типа «насыщение» и определить, как изменятся характеристики системы.

 

Теоретические сведения

 

Основные виды нелинейных звеньев:

1. звено релейного типа;

2. звено с кусочно-релейной характеристикой;

3. звено с криволинейной характеристикой любого очертания;

4. звено, уравнение которого содержит произведение переменных или их производных и другие их комбинации;

5. нелинейный импульсный элемент;

6. логическое звено;

7. звенья переменной структуры.

 

В пакете Simulink модели нелинейных звеньев представлены в группе Discontinuities:

Saturation – насыщение, в параметрах задаются верхний и нижний пределы (Upper limit и Lower limit).
Dead zone –нечувствительность, «мертвая зона». В параметрах задаются пределы нечувствительности (Start of dead zone и End of dead zone).
Rate Limiter –ограничитель скорости изменения сигнала, в параметрах задаются пределы на скорость увеличения (Rising slew rate) и на скорость уменьшения (Falling slew rate).
Relay –реле, в параметрах задаются точки переключения (Switch on point и Switch off point), в также величины сигналов в режимах «включено» (Output when on) и «выключено» (Output when off).
Backlash –люфт, «мертвый ход». В параметрах задаются величина мертвого хода (Deadband width) и начальное значение выхода (Initial output).
Coulomb and Viscous Friction –кулоновское и вязкое трение.

 

Добавляя блок с нелинейной функцией в исходную линейную систему стабилизации можно получить громоздкую схему, работать с которой неудобно. Чтобы не перегружать схемы, можно объединять блоки в подсистемы. Проще всего выделить нужные блоки мышкой и нажать клавиши Ctrl+G (или выбрать пункт меню Edit – Create subsystem). На основной схеме подсистема изображается как блок типа Subsystem. Входы подсистемы обозначаются блоками In, а выходы – блоками Out.

Для сравнения линейной и нелинейной систем желательно отобразить графики переходных процессов на одном осциллографе. В этом случае используют блок Mux (мультиплексор) из группы Signal Routing.

При работе в Matlab часто для получения нужного результата надо ввести последовательно несколько команд. Если выяснится, что в какой-то команде была сделана ошибка или нужно изменить исходные данные, все команды придется вводить снова. Чтобы не набирать их вручную, можно записать всю последовательность команд на диск в виде текстового файла (М-файла с расширением .m), а затем выполнять его, вызывая по имени. Такой файл называется скриптом.

Скрипт – это программа, которая представляет собой список команд на языке системы Matlab. Скрипты можно создавать и редактировать в любом простейшем текстовом редакторе (например, в Блокноте), однако удобнее всего использовать встроенный редактор Matlab, в котором есть подсветка синтаксиса (команды, символьные строки, комментарии и другие элементы программы выделяются разными цветами).

В М-файле перечисляются последовательно все необходимые команды. Точка с запятой в конце команды подавляет вывод результата на экран. Можно располагать в одной строке несколько команд, разделяя их запятой (если нужен вывод результата на экран) или точкой с запятой. Если надо перенести длинную команду на следующую строчку, в конце строки ставится троеточие.

Комментарием считается все, что расположено справа от знака % до конца строки. Его можно ставить в любом месте строки, например, справа от команды Matlab.

Для вызова скрипта надо набрать его имя в командном окне Matlab и нажать клавишу Enter. Запустить скрипт можно непосредственно из окна редактора Matlab, нажав на клавишу F5. Можно выполнить не весь скрипт, а только некоторые строки – их нужно выделить и нажать клавишу F9. Можно расположить два окна (редактор и командное окно Matlab) рядом так, чтобы они не перекрывали друг друга. Тогда при выполнении скрипта (или отдельных команд) сразу будет виден результат.

Если в командах скрипта есть ошибки (или они возникли при выполнении), соответствующие сообщения выводятся в командное окно Matlab.

 

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

 

Структурная схема системы стабилизации с нелинейным элементом представлена на рис. 1

Рис. 1. Система стабилизации с нелинейным элементом.

Последовательность выполнения работы

 

1. Откройте модель, построенную в лабораторной работе №5. Выделите регулятор и преобразуйте его в подсистему (Edit – Create subsystem). Дайте подсистеме имя «регулятор » и выберите для нее фоновый цвет. Определите для входа и выхода этого блока названия ε и u.

2. Аналогично постройте подсистему «привод» с входом u и выходом delta и подсистему «объект» с входами f и delta и выходом phi. Сохраните модель.

3. Выделите все блоки, кроме источников сигналов и осциллографов. Создайте подсистему Линейная система с входами y0 (задание) и f (возмущение) и выходами phi и delta.

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

5. Откройте подсистему «привод » в нелинейной системе. Удалите соединительные линии. Измените передаточную функцию на . Перетащите в окно модели блок Sum из группы Math Operations. Измените его так, чтобы организовать отрицательную обратную связь. Перетащите в окно модели два блока Saturation (насыщение) из группы Discontinuities. Расположите один блок перед интегратором (ограничение по скорости), второй – после (ограничение по степени открытия).

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

7. Закройте лишние окна и перейдите в главное окно модели. Освободите оба осциллографа от связей, перетащив их вправо при нажатой клавише Shift. Перетащите в окно модели два блока Mux (мультиплексор) из группы Signal Routing. Эти блоки служат для объединения сигналов. Подайте на один из осциллографов оба управляющих сигналов (от линейной и нелинейной системы), а на другой – оба управляющих сигнала. Сохраните модель.

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

9. Создайте новый М – файл (File – New – M – file).

10. В окне редактора введите команды для вывода графиков переходных процессов по курсу. Теперь массив 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('Линейная система',...

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

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

12. Измените величину задания на 90 и снова проведите моделирование.

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

 

Методический пример

 

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

Передаточная функция объекта:

, где

– постоянная времени, – коэффициент усиления объекта.

Привод приближенно моделируется как интегрирующее звено

,

охваченное единичной отрицательной обратной связью.

Для измерения регулируемой координаты используется измерительная система, математическая модель которой записывается в виде апериодического звена первого порядка с передаточной функцией:

.

Исследуются переходные процессы в системе при использовании ПД-регулятора

,

и ПИД-регулятора

.

 

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

Нелинейная модель привода:

Нижний и верхний пределы насыщения

блок Saturation: от до

блок Saturation1: от до

Структурная схема системы для сравнения линейной и нелинейной моделей:

Скрипт для построения и оформления графиков

close(1);

figure(1);

subplot(2,1,1);

...

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

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

 

Контрольные вопросы

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

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

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

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

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

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

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

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

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

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

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

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

 

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

Вариант , сек Вариант , сек
1. 0.06 16.0 2. 0.06 17.6
3. 0.07 16.2 4. 0.07 17.8
5. 0.08 16.4 6. 0.08 18.0
7. 0.07 16.6 8. 0.09 18.2
9. 0.06 16.8 10. 0.10 18.4
11. 0.07 17.0 12. 0.09 18.6
13. 0.08 17.2 14. 0.08 18.8
15. 0.07 17.4 16. 0.07 19.0

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-02-16 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: