Лабораторная работа № 2 - Институт цветных металлов и

advertisement
Институт цветных металлов и материаловедения СФУ
Кафедра автоматизации производственных процессов
ЦМ
Дисциплина “Интегрированные
системы
проектирования и управления ”
Красноярск 2009 г.
Лабораторная работа № 2
“Изучение пакета Simulink системы MATLAB 7 для
моделирования, имитирования и анализа систем управления“
ЦЕЛЬ РАБОТЫ
1. Ознакомиться с составом и назначением программного пакета Simulink.
2. Ознакомиться с основными методами и примерами использования
программного пакета Simulink для моделирования и анализа систем управления.
3. Освоить расчет, настройку и анализ одноконтурных САР в среде Simulink
системы MATLAB.
МЕТОДИКА ВЫПОЛНЕНИЯ РАБОТЫ
1. Открыть рабочее окно программы MATLAB.
2. Изучая теоретические сведения о пакете Simulink, вводить в рабочем окне
команды, приводимые в описании пакета и выделенные желтым цветом.
3. Закончив изучение теоретических сведений о пакете Simulink, выполнить
задание по моделированию СУ.
ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ
Одним из наиболее мощных и наглядных инструментариев разработчика систем
управления (СУ) в среде MATLAB является пакет Simulink. Он позволяет
моделировать, имитировать и анализировать непрерывные и дискретные линейные и
нелинейные динамические системы.
Для создания блок-схем моделей в Simulink имеется графический интерфейс
пользователя GUI, использующий операции мышью “щелкни и перетащи”. С
помощью GUI модели СУ можно рисовать также просто, как карандашом на бумаге. В
предыдущих пакетах моделирования необходимо было сформировать
дифференциальные или разностные уравнения СУ на языке программирования.
Simulink содержит большое число блочных библиотек различных компонентов СУ.
Можно модифицировать эти библиотеки и создавать свои.
В моделях соблюдается иерархический принцип и их можно строить по принципу
“сверху вниз” или наоборот – “снизу вверх”. После просмотра модели на верхнем
уровне двойным щелчком кнопки мыши на блоках можно раскрыть и посмотреть их
структуру, изменить параметры.
После создания модели, используя меню Simulink или командную строку в рабочем
окне MATLAB, можно имитировать (симулировать) работу СУ. Результаты имитации
можно увидеть на экранах блоков вывода информации (Scope, Display) прямо во время
работы Simulink.
Отличительной чертой Simulink является использование в нем различных
инструментариев (Toolboxes) MATLAB 6, осуществляющих расчет, анализ,
оптимизацию СУ, идентификацию объектов в частотной и временной областях и т.п.
Перечень инструментариев приведен в файле toolboxes.pdf.
Разработанная в Simulink модель с помощью встроенного пакета Simulink RealTime Workshop преобразуется С код для встраиваемых контроллеров, устройств
цифровой фильтрации, приложений реального времени.
СОЗДАНИЕ МОДЕЛЕЙ СУ
Запуск Simulink
Для запуска Simulink необходимо запустить систему MATLAB . Затем можно
запустить Simulink тремя способами:
 Нажать иконку Simulink на панели инструментов MATLAB;
 Набрать команду simulink в рабочем окне MATLAB;
 В нижней части окна нажать кнопку
щелкнуть мышкой. Затем выбрать
Simulink и щелкнуть мышкой по строке Library Browser, как показано на рис. 1.


1
2
или 3
Рис. 1. Способы вызова библиотеки Simulink
После окончания выполнения команды на рабочем столе кроме командного окна
MATLAB будет находиться окно браузера библиотек блоков Simulink, показанное
ниже на рис.2.
Можно щелкнуть правой кнопкой мыши на строке Simulink в Simulink Library
Browser, и выбрать Open the Simulink Library.В этом случае появится окно основной
библиотеки и оно будет выглядеть будет выглядеть как на рисунке 3.
В этом окне показаны иконки библиотек блоков. Щелкнув дважды мышкой по
иконке какой-либо библиотеки, можно развернуть ее и получить доступ ко всем
блокам, содержащимся в этой библиотеке. Копируя блоки из библиотек и вставляя их
в окно модели, можно создавать различные модели СУ.
В состав Simulink входят следующие библиотеки:
Commonly Used Blocks – обычно используемые функции
Continuous – непрерывных элементов;
Discontinuities Discrete – дискретных элементов;
Logic and Bit Operations – логические и битовые операции;
Lookup tables – функций и таблиц;
Math operations– математических функций;
Model Verification –проверка модели;
Model-Wide Utilities – широко применяемые модели;
Nonlinear – нелинейных элементов;
Ports & Systems – портов и систем;
Signal attributes – атрибуты сигналов
Signal Routing Sinks – устройств вывода;
Sources – источников;
User-Defined Functions – подсистем.
Additional Math & Discrete – дополнительные математические и дискретные
Рис. 2. Окно браузера библиотек Simulink
Рис. 3. Окно основной библиотеки Simulink
Кроме того, в библиотеке Simulink Extras находятся дополнительные наборы
блоков:
Additional Discrete– дополнительных дискретных элементов;
Additional Linear – дополнительных непрерывных элементов;
Additional Sinks – дополнительных устройств вывода;
Flip Flops – триггеров;
Linearization – блоков линеаризации;
Transformations – блоков преобразования температуры и угловых единиц.
Ввод команд Simulink




Для работы с моделями в Simulink можно вводить команды:
выбирая пункты из панелей меню;
выбирая пункты из контекстно-зависимого меню Simulink;
нажимая кнопки на панели Simulink;
вводя текстовые команды в рабочем окне MATLAB.
Окна Simulink
Simulink использует отдельные окна для отображения библиотеки блоков,
исследуемой модели и графического вывода результатов симуляции (имитации)
работы модели. Эти окна приспосабливают свои размеры к заданному разрешению
монитора и их можно менять.
Работа с объектами и блоками Simulink
Для копирования и других операций с элементами Simulink необходимо их
выделить. Для этого следует щелкнуть кнопкой мыши по элементу. По углам
выбранного блока и на концах выделенной линии появляются черные квадраты
управления размерами элементов.
Для выбора одновременно нескольких элементов нужно охватить их рамкой,
создаваемой при нажатии и перемещении мыши в окне модели, либо поочередным их
выделением мышью при нажатой клавише Shift клавиатуры. Для отмены выбора
нужно щелкнуть мышью вне выделенных элементов.
Для копирования и перемещения блоков из моделей или библиотек необходимо
щелкнуть по ним кнопкой мыши, удерживая ее нажатой, перетащить блок из одного
окна в другое окно или на другое место в том же окне. Можно также использовать
команды Copy (копировать) и Paste (вставить) меню Edit (Правка).
Для дублирования блока следует при нажатой клавише Ctrl клавиатуры выделить
его левой кнопкой мыши и затем перетащить его на новое место. Это же дублирование
можно выполнить, перетаскивая блок правой кнопкой мыши.
Каждый блок при копировании сохраняет и свое наименование. Это наименование
можно редактировать. Щелкнув мышью два раза на блоке, можно попасть в окно
задания некоторых параметров блока.
Для изменения ориентации блока служат команды Rotate Block (поворот) и Flip
Block (переворот) меню Format. Первая команда поворачивает блок на 900 по часовой
стрелке, вторая – поворачивает на 1800.
Щелкнув кнопкой мыши по наименованию блока можно изменить само имя, а
командами меню Format - его положение, шрифт (Font) и его атрибуты, цвет,
создать/скрыть тень для блока (Show/Hide Drop Shadow).
Для блоков с входами и выходами с несколькими переменными (векторные)
используются линии большей толщины. Они создаются командой Wide Vector Lines
меню Format.
Линии в Simulink передают сигналы, Каждая линия может нести скалярный или
векторный сигнал. Линия соединяет выход одного блока с входом другого или
наоборот. Лини ответвления соединяют один выход блока с несколькими входами
других блоков.
Для соединения выхода одного блока с входом другого блока:
1. Установите курсор на точке (port) выхода первого блока. Форма курсора
изменится на крест.
2. Нажмите и удерживайте кнопку мыши.
3. Переместите указатель к входу второго блока. Когда установите курсор на
блоке, появится линия, соединяющая первый блок с ближайшим входом второго
блока.
4. Отпустите кнопку мыши и Simulink заменит символы портов у соединительной
линии стрелкой, показывающей направление передачи сигнала.
Simulink рисует линии, используя горизонтальные и вертикальные участки. Чтобы
нарисовать линию под углом , удерживайте нажатой клавишу Shift во время создания
линии/
Линия ответвления начинается от уже существующей линии и несет такой же
сигнал к входу другого блока.
Для создания линии ответвления:
1. Поставьте указатель на линию, откуда начнется ответвление.
2. Удерживая нажатой клавишу Ctrl, нажмите и удерживайте нажатой кнопку
мыши.
3.
4. Перетащите указатель к подсоединяемому входу и отпустите кнопку мыши и
клавишу Ctrl.
Можно нарисовать линию так, как захотите Вы, а не как нарисует Simulink. Для
этого при рисовании линии надо остановить указатель на свободном месте. На
свободном конце линии появится стрелка. Установите курсор на этой стрелке и
можете рисовать линию дальше в нужном Вам направлении. Для создания линии,
идущей под углом, удерживайте во время рисования нажатой клавишу Shift.
Для перемещения сегмента линии:
1. Установите указатель на нужном сегменте.
2. Нажмите и удерживайте кнопку мыши.
3. Перетащите указатель в нужное место.
4. Отпустите кнопку мыши.
5. Можно также разделить сегмент линии на два участка, оставив на месте концы
этого сегмента. Для этого:
1. Выделите линию.
2. Установите указатель на точке, где вы хотите создать излом (vertex).Удерживая
нажатой клавишу Shift, нажмите и удерживайте кнопку мыши. При этом курсор
примет форму круга вокруг точки вертекса.
3. Перетащите курсор на нужное место.
4. Отпустите клавишу и кнопку мыши.
Можно вставить блок с одним входом и одним выходом, перетащив его и отпустив
в нужное место линии.
В сложных и больших моделях СУ для удобства восприятия, анализа блоки
группируют в подсистемы. Это можно сделать двумя способами:
1. Создать блок подсистемы , затем открыть его и добавить в него нужные блоки.
2. Добавить необходимые блоки в модель системы, а затем сгруппировать их в
подсистему
В первом случае необходимо из библиотеки Connections (Соединения) скопировать
в модель блок Subsystem (Подсистема). Открыть этот блок, дважды щелкнув по нему
мышью. Затем в окне блока Subsystem создать саму подсистему из нужных блоков.
Для связи подсистемы в ее модель обязательно
включают блоки Inport и Outport.
На этом рисунке показана подсистема из
сумматора Sum с блоками Inport (Ввод) In1,
In2 и Outport (Вывод) Out1.
Во втором случае необходимо нужные
блоки и соединительные линии выделить в
ограничительную рамку с помощью мыши. Затем выбрать команду Create Subsystem
(Создать Подсистему) в меню Edit. Simulink преобразует выделенные блоки в
подсистему с необходимыми блоками Inport и Outport.
Созданную модель СУ можно сохранить, используя команду Save или Save As меню
File. Имя файла должно начинаться с буквы и содержать не более 31 символа. Simulink
присваивает файлу расширение .mdl.
СИМУЛЯЦИЯ РАБОТЫ МОДЕЛЕЙ СУ
Для установки параметров симуляции и выбора метода решения задачи служит
опция Simulation Parameters меню Simulation. Simulink показывает диалоговое окно
Simulation Parameters, содержащее вкладки для управления параметрами симуляции.
Из них только 3 важны для нашей работы:
 Закладка Solver (Решатель) позволяет задавать время начала и конца симуляции,
выбрать решатель и установить его параметры.
 Закладка Workspace I/O (Рабочее пространство ввода/вывода) управляет вводом из
и выводом в рабочее окно MATLAB.
 Закладка Diagnostics (Диагностика) позволяет выбрать предупредительные
сообщения, показываемые во время симуляции.

Рис. 4. Закладка Solver
Опция Simulation Time решателя задает время начала Start Time и конца Stop
Time симуляции. По умолчанию они равны 0.0 и 10.0 секунд. Действительное время и
время симуляции это разные величины и не совпадают друг с другом.
Опция Solver Options решателя позволяет выбрать метод численного
интегрирования обычных дифференциальных уравнений (ODE – Ordinary Differential
Equations ) с учетом особенностей созданной модели системы. Кроме того, можно
выбрать решатель с фиксированным (Fixed step) и переменным (Variable step) шагом.
Решатели с переменным шагом изменяют размер шага во время симуляции,
обеспечивают контроль ошибок и обнаруживают момент перехода функции через
ноль.
По умолчанию Simulink использует для моделей в пространстве состояний
решатель ode45 (метод Рунге-Кутта), наиболее удобный для первого пробного решения
задач. Если модель системы задана не в пространстве состояний, то Simulink
использует решатель с переменным шагом , названный discret.
Другие характеристики Solver Options – максимальный (Max step size) и
начальный (Initial step size) размер шага, относительную (Relative tolerance) и
абсолютную (Absolute tolerance) допустимую погрешность менять без особой
надобности не следует. Максимальный размер шага определяется как 1/50 от разности
конечного и начального времени или
hmax = (tstop- tstart ) /50.
Рис. 5. Закладка Data Import/Export
Simulink может вводить данные из основного рабочего окна MATLAB,
описывающего модель системы, в порты ввода верхнего уровня модели во время
выполнения симуляции. Для задания этой опции отметьте птичкой бокс Input в
области с названием Load from workspace (Загрузить из рабочего окна). Затем в
соседнем боксе укажите внешние вводимые параметры (по умолчанию – время t и
управляющая переменная u) и выберите кнопку Apply в нижней части страницы
Workspace I/O. Внешний ввод данных может осуществлен двумя способами –
матрицей величин, зависящих от времени, или выражением функцией от времени.
В первом случае во внешней матрице первый столбец должен быть вектором
возрастающих значений времени t. Остальные столбцы задают значения вводимых
величин. Каждый столбец матрицы представляет собой отдельный входной сигнал u
для порта входа (блок Inport), а каждая строка – значения вводимых переменных для
соответствующего значения времени t. При числе переменных n число столбцов
входной матрицы должно быть n + 1.
Так, для модели с двумя портами ввода, один из которых принимает два сигнала,
а другой – один, в рабочей области значения времени t и управления u можно задать
командной строкой
t = (0:0.1:1)';
u = [sin(t), cos(t), 4*cos(t)];
Затем нужно просто отметить птичкой бокс Input в области Load from workspace.
Во втором случае функция от времени может быть любым выражением MATLAB,
которое определяет вектор-строку длиной, равной числу входных сигналов,
подаваемых в порты модели.
Так, пусть модель имеет один векторный порт входа, который принимает два
сигнала. Пусть определенная пользователем функция timefcn возвращает векторстроку длиной два элемента. Тогда допустимой командой будет, например, такая:
'[3*sin(t), cos(2*t)]'
'4*timefcn(w*t)+7'
Simulink вычисляет выражения на каждом шаге симуляции и подает результаты
расчета в порты модели.
Для задания возвращаемых в рабочее окно MATLAB переменных служит область с
названием Save to workspace. В ее боксах Time, States, Output можно указать Simulink
записывать в рабочее окно такие соответственно величины как время tout,
переменные состояния xout и выходные переменные yout. Если нужно вывести
несколько переменных, то указывают их имена через запятую.
Область Save options позволяет ограничить объем сохраняемых выводимых
данных. Для этого нужно отметить птичкой бокс Limit row to last и указать число
сохраняемых строк данных.
Для применения десятичного фактора следует ввести его значение в поле справа
наименования Decimation. Если там указать 2, то будет сохраняться каждая вторая
генерируемая точка.
Начальные условия, приложенные к системе в момент начала симуляции, обычно
задаются прямо в блоках Simulink. Эти указания в блоках можно преодолеть, указав
имя новых начальных условий в области States. Можно сохранить конечные значения
переменных состояния и использовать их в другой симуляции. Для этого нужно
отметить бокс Load initial и указать вектор состояний в соседнем поле. Если бокс
выбора не отмечен или вектор состояний пустой ([ ]), то Simulink использует
начальные условия, заданные в блоках модели.
В закладке Diagnostics можно выбрать желаемые действия для различных типов
событий и условий, которые могут встретиться во время симуляции. Ее вид приведен
на рисунке ниже.
Для каждого типа события можно задать вид сообщения: никакое (None),
предупреждение (Warning), об ошибке (Error). Последний тип сообщения - Error
останавливает симуляцию.
Для постоянной проверки выполнения условий, принятых в решателях обычных
дифференциальных уравнений Simulink, следует выбрать в поле Consistency checking
области Debugging команду on. Однако такая проверка замедляет на 40 % скорость
симуляции. Поэтому проверка обычно отключается выбором команды off в поле
Consistency checking.
Отключение определения пересечения нуля отметкой в поле Disable zero crossing
detection ускоряют симуляцию, но снижает точность расчетов.
Для ускорения работы Simulink и повышения точности существует ряд
рекомендаций, приведенных в справочном файле Sl_using.pdf.
Рис. 6. Закладка Diagnostics
Для ознакомления с возможностями Simulink выберите в браузере рабочего окна
MATLAB строку Simulink и ниже строку Demos либо наберите в рабочем окне
MATLAB строку demo. Ознакомьтесь с примерами моделей Simulink, приведенными в
разделах Features и General. Обязательно рассмотрите примеры Toilet bowl flushing
animation (анимация туалетного бачка) и Thermodynamic model of a house (модель
обогрева дома).
Практическое задание
1. Откройте библиотеки Sources (Источники), Sinks (Стоки информации), Discrete
(Дискретные), Linear (Линейные), Nonlinear (Нелинейные), Signals&Systems
(Сигналы и системы) блоков Simulink и ознакомьтесь с их содержанием.
2. Через библиотеку Blocksets & Toolboxes (Наборы и Инструментарии), а в ней - через
библиотеку Simulink Extras откройте дополнительные библиотеки Additional Sinks,
Additional Discrete, Additional Linear, Transformations (Преобразования), Flip Flops
(Триггеры) и ознакомьтесь с их содержанием.
3. По данным табл. 1 в соответствии с номером варианта создайте модель СУ
статическим объектом второго порядка (блоки Transfer Fcn или Zero Pole
библиотеки Linear и блок Transport Delay -Транспортное запаздывание библиотеки Nonlinear) с ПИД-реулятором (блок PID Controller библиотеки
Additional Linear) в цепи обратной отрицательной связи. На вход модели СУ
подается ступенчатое воздействие – возмущение по нагрузке – (блок Step
библиотеки Sources), выход модели подключен к рабочему окну (блок To Workspace
библиотеки Sinks) и графическому дисплею (блок Scope библиотеки Sinks). Для
создания обратной связи используйте на входе модели блок Sum библиотеки Linear.
К входу ПИД-реулятора через сумматор подключаются выход объекта управления
и задания – блок возмущения по заданию.
4. Создайте подсистемы для модели объекта регулирования и ПИД-регулятора,
измените их цвета, шрифты. В результате должна получиться модель системы
регулирования, похожая на рис. 7.
Рис. 7. Модель системы регулирования
5. Задайте амплитуду возмущения по нагрузке равной 1, а возмущения по заданию
равной 0. Выберите пункт Start меню Simulation и запустите симуляцию модели
СУ. Изменяя параметры настройки ПИД-регулятора, добейтесь на экране Scope
приемлемого качества регулирования при возмущении по нагрузке.
6. Задайте амплитуду возмущения по нагрузке равной 0, а возмущения по заданию
равной 1. Выберите пункт Start меню Simulation и запустите симуляцию модели
СУ. Изменяя параметры настройки ПИД-регулятора, добейтесь на экране Scope
приемлемого качества регулирования при возмущении по заданию.
7. Скопируйте модель СУ в буфер обмена, выбрав в меню Edit пункт Copy model to
clipboard, и вставьте в отчет в формате Word модель СУ.
8. Измените величину ступенчатого воздействия, а затем измените запаздывание
модели. Проанализируйте влияние этих факторов на переходной процесс.
9. Подключите к входу и выходу модели LTI Viewer. Для этого выберите пункт Linear
Analysis меню Tools. Из появившегося окна Model_Inputs_and_Outputs перенесите
мышью точку ввода Input Point на линию между блоками Step и Sum, а точку
вывода Output Point на линию между блоком передаточной функции объекта и
блоком Scope. В результате должна получиться модель СУ, показанная на рис. 8.
10. В меню Simulink окна LTI Viewer выберите пункт Get Linearized Model. Постройте
отклики системы во временной области, выбрав типы графиков Step и Impulse.
11. Скопируйте полученные графики в отчет в формате Word. Для этого в меню File
выберите пункт Print to Figure. В появившемся новом окне графика переходного
процесса выберите в меню Edit пункт Copy Figure, а затем в документе Word
вставьте график клавишами Ctrl + V.
На титульном листе отчета укажите свою фамилию, группу и номер варианта.
Рис. 8. Модель системы регулирования с подключенным LTI Viewer
Таблица 1.
№ варианта
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Параметры объекта регулирования
Kоб
0,9
1,1
52
35
6
2,7
0,75
0,8
2,4
0,12
1,6
0,32
1,8
54
61
2,3
0,6
1,2
51
33
6,5
3,0
0,7
0,9
T1об, с
2,4
23
55
21
62
23
14
3,5
17
19,5
31
17
37
64
21
8
3,1
22
58
23
64
25
15
3,7
Т2об, с
0,8
7
17
7
18
10
5
1,1
6,3
4,7
9,6
4,3
10
22
7,4
2,7
1,2
6,8
15
8
17
11
6,1
1,3
об, с
0,1
2
8
3
9
5
1,2
0,1
0,5
2,2
1
1,5
1,6
2,5
4,2
0,5
0,2
1,2
4,4
1,5
6
2
1,3
0,2
25
26
27
28
29
30
2,2
6,1
2,5
0,6
1,4
54
17,6
6
8,4
5,1
25
55
7,3
1,4
2,6
1,2
6,8
13
1,8
0,2
0,5
0,16
0,8
2,4
Таблица 2
Оптимальные параметры настройки регуляторов для статических
объектов первого порядка с запаздыванием
Тип
Параметры
регулятор
настройки
а
ИППИ-
Кр
Кр
Кр
Ти
Кр
Ти
Тд
Тип переходного процесса
с 20%-м
апериодический перерегулирова с min  y2 dt
нием
1/(4,5 A) *
0,3 В *
0,6 В
0,6 Тоб
0,95 В
1/(1,7A)
0,7 В
0,7 В
0,7 Тоб
1,2 В
2,4 об
2,0 об
0,4 об
0,4 об
* Примечание: А = КобТоб; В = Тоб/(Кобоб).
ПИД-
1/(1,7 A)
0,9 В
1,0 В
1,0 Тоб
1,4 В
1,3 об
0,5 об
Поскольку ОР в задании имеет второй, а не первый порядок как в табл/ 2, то
вычисленные параметры настройки регулятора являются весьма
приближенными.
Напоминание: В блоке ПИД-регулятора модели Simulink в качестве параметров
настройки берутся не Кр, Ти, Тд, а коэффициенты Kp, Ki, Kd.
Контрольные вопросы для защиты
1.
2.
3.
4.
5.
6.
7.
8.
9.
Состав и назначение пакета Simulink.
Запуск и ввод команд Simulink.
Построение моделей СУ в Simulink.
Закладка Solver задания параметров симуляции.
Закладка Workspace I/O задания параметров симуляции.
Закладка Diagnostics задания параметров симуляции.
Библиотеки Simulink.
Порядок создания модели одноконтурной СУ и ее блоки.
Подключение к модели LTI Viewer и работа с ним.
Download