Система моделирования динамических систем simulink. Краткая инструкция по работе в программе Simulink

Nokia 17.05.2019
Nokia

Моделирование механических систем в пакете

MATLAB – высокоуровневый язык технических расчетов, интерактивная среда разработки алгоритмов и современный инструмент анализа данных.

Simulink - графическая среда имитационного моделирования, позволяющая при помощи блок-диаграмм в виде направленных графов, строить динамические модели, включая дискретные, непрерывные и гибридные, нелинейные и разрывные системы.

Simscape – это основная библиотека Simulink для моделирования объектов различной физической природы. Позволяет создавать модели гибридных мультидоменных объектов в виде принципиальных схем, элементов и соединений, реальных физических величин с учетом единиц измерения.

Simscape служит основой для моделирования в Simulink электросиловых, механических и гидравлических объектов. Библиотека расширяется специализированными пакетами SimMechanics, SimDriveline, SimHydraulics и

позволяет строить модели сложных гибридных мультидоменных объектов для различных задач анализа, в том числе для разработки цифровых систем управления.

Начало работы в Simulink

При запуске MATLAB перед нами возникает примерно следующее окно:

Пока что не понятно, как здесь можно что-то сделать, однако это очень полезное окно. К нему мы обязательно вернёмся немного позже, а пока сразу приступим к делу. А первым делом нужно выбрать папку, в которой мы будем работать.

Нажимаем на троеточие справа от окошка «Current Folder» и выбираем (создаём) первую понравившуюся папку. Наверняка это будет что-то типа C:\Вася\временное11\123\...

Сразу хочу отметить, что самое интересное в Матлабе и Симулинке – это поиск ошибок. За ним можно проводить ни один месяц, и даже год. Однако ошибки ошибкам рознь… Можно долго и упорно собирать какуюнибудь сложную модель, собрав её, попытаться сохраниться и получить окошко, где в нескольких предложениях описывается содержание ошибки и даже даётся ссылка на более подробный отчёт... В этом случае можно несколько раз пересобрать схему, переустановит матлаб, снести винду, но всё будет бесполезно… А на деле оказывается, что Вы где-то в окне Симулинка просто поставили русскую букву или слово.

Поэтому, сразу усвоим главное правило –

MATLAB – русофобская программа. Она не переваривает кириллицу ни в каком виде. Ни в адресе, ни в окнах, ни в переменных, НИГДЕ!

Поэтому сразу забываем о хранении наших проектов по адресу «C:\Вася\временное11\123\» и выбираем папку что-то типа

«C:\Vasya\Temp11\123\».

Отлично, теперь можно начинать работать.

Нажимаем «File-New-Model». Возникает следующее окошко:

Отлично, уже что-то более дружелюбное, чем командная строка Матлаба. Интуитивно понятно, что это поле, где нужно что-то рисовать… Т.к. мышкой рисовать не получается, тыкнем на красно-сине-зелёную кнопочку «Library Browser». Откроется библиотека элементов Симулинка:

У меня до сих пор разбегаются глаза от обилия предлагаемых библиотек. Назначение очень многих из них для меня до сих пор остаются

загадкой. Мы начнём с самого простого. Соберём схему колебательного звена, посмотрим на переходный процесс при воздействии «ступеньки» и даже на ЛАХ с ЛФХ.

Для этого нам нужен источник «ступеньки», сама передаточная функция и окошко где мы будем смотреть на переходный процесс.

Предлагаю найти все эти элементы в библиотеке Simulink так, чтобы получилось что-то вроде этого:

Надеюсь, Вы не искали в библиотеке колебательное звено? В симулинке есть просто передаточная функция в которую можно вбить любые коэффициенты в знаменатель и числитель (главное, чтобы при этом порядок числителя был меньше порядка знаменателя). Но об этом немного ниже.

Сейчас постараемся соединить все эти звенья друг с другом. Можно делать это просто тягая мышкой от одной стрелочки к другой, а если надоест, можно просто выделить один блок левой клавишей, потом зажав Ctrl, нажать на другой блок.

Отлично. Теперь нужно настроить эти блоки один за другим… Про ступеньку и говорить нечего, там всё ясно, оставим всё по дефолту: время начала 1 с, начальное значение 0, конечное значение 1.

Интереснее с передаточной функцией. Напомню, что мы собирались собрать колебательное звено. Я лично привык видеть его в виде:

в то время как симулинк требует от нас сразу коэффициенты знаменателя и числителя. Можно, конечно, быстро перемножить на бумажке

постоянную времени и коэффициент демпфирования, но это не серьёзно… Лучше научимся пользоваться переменными.

Есть как минимум 2 способа управляться с переменными в симулинке. Я привык вбивать их в командную строку Матлаба, которую мы видели в самом начале. Тогда получится что-то вроде этого:

Как видно, значения тут же внеслись в Workspace и теперь мы можем свободно вбивать их в любое окошко симулинка и проводить с ними любые операции. Потом можно сохранить их в один файл (Save Workspace as…) и загружать при необходимости.

Другой вариант – делать то же самое через Model Explorer. Нажимаем на кнопку с изображением лупы рядом с кнопкой «Library Browser» и получаем следующее окно:

Как видно, здесь имеется не только общий Workspace, но и Workspace непосредственно модели. В общем-то, можно задать все переменные там, и тогда они будут загружаться автоматически вместе с моделью, но я всё же склоняюсь к тому, что глобальные переменные, хранящиеся в отдельном файле – это более правильно. Можете считать меня занудой

Итак, вбиваем любым способом значения T=0.1 (постоянная времени колебательного звена) и d=0.3 (коэффициент демпфирования).

Теперь в окошке передаточной функции останется только перемножить всё как нужно:

Ну всё, теперь можно запустить наконец расчёт. Жмём на «плей», затем на окошко Scope, затем на «атвомасштаб» (бинокль). Самое время проанализировать результат. Получилось что-то похожее на колебательный процесс, который оканчивается примерно через 3 секунды, однако, какой-то угловатый. Ну первым делом уменьшим время моделирования с 10 до 3 секунд (справа от кнопок «плей» и «стоп») и рассмотрим по-ближе:

На лицо какие-то угловатости, особенно в области пика. Матлаб в командной строке выдал жалобу, мол «выбран дефолтный максимальный шаг столько-то, если на самом деле всё окок, можешь меня заткнуть, нажав туда-то». У нас всё не окок.

Самое время познакомиться с решателями симулинка. Нажимаем

«Simulation - Configuration Parameters…»:

Опять глаза разбегаются от обилия всяких менюшек и полей. Попробуем разобраться. Сейчас нас интересует, прежде всего, решатель (solver). Здесь мы выбираем каким методом будем решать дифференциальные уравнения (да, блоки, которые мы суём в поле симулинка, на самом деле – диффуры  ). Прежде всего, определяемся, что это будет за метод – с постоянным шагом или переменным. Есть мнение, что система диффур любой сложности решается методом Эйлера, путём уменьшения шага Это значит, что если в нашем переходном процессе длительностью 5 секунд, есть момент длительностью 0.1 с, который нужно обсчитывать с шагом 0.1 милисекунду (например, шток гидроцилиндра бьётся об упор), мы оставшиеся 4.9 секунды когда гидроцилиндр спокойно движется, должны будем обсчитывать всё равно с шагом 0.1 милисекунда. Время расчёта в этом случае увеличивается во много раз и для серьёзных задач может превратиться в несколько часов. Поэтому добрые математики придумали алгоритмы с переменным шагом. Т.е. в ответственные моменты решатель решает диффуры, уменьшая шаг настолько насколько это требуется, а когда всё «спокойно», увеличивает шаг, экономя наше время.

Бывают случаи, когда нужно решать диффуры именно с постоянным шагом, но в большинстве всё же переменный шаг значительно лучше.

Следующее меню – сам решатель. Это вообще - глубокий матан, вникать в него особо не будем, пройдёмся вкратце. Хэлп Матлаба очень

уж рекомендует решатель ode45. Из приведённых там таблиц следует, что он самый точный. С одной лишь оговоркой. Если наша задача не жёсткая. Под жёсткостью понимается не содержание неимоверной жести в условии, а жёсткость или нежёсткость диффур нашей мат. модели. А между ними в свою очередь грань довольно расплывчатая. Один и тот же диффур может быть как жёстким, так и не жёстким, в зависимости от коэффициентов. В нашем случае – это постоянные времени различных элементов системы. Если они различаются на несколько порядков (как например, постоянная времени хорошего ЭГУ и плохого гидроцилиндра), то скорее всего нежёсткий решатель типа ode45 пойдёт в разнос и выдаст нам мегарасходящийся переходный процесс. В этом случае нужно использовать жёсткие решатели, помеченные буквой s (stiff). Тут наиболее точным является решатель ode15s.

Резюмируя. Тривиальные задачи решаем с ode45, задачи с элементами системы с заведомо различающимися постоянными времени (то как наши родные гидроприводы), решаем с ode15s. Если ничего не получается, ставим метод Рунге-Кутты 4-го порядка (ode4) с шагом 0.1 мкс и оставляем комп считать на ночь

Поехали дальше. А дальше всё значительно проще… Нужно всего лишь выбрать максимальный, минимальный и начальные шаги. Вспоминаем, что матлаб жаловался на максимальный шаг, ставим значение 0.001 с для перестраховки. Теперь, даже если решатель вздумает, что ничего сложного на его пути нет, он всё равно будет считать отрезками не больше 1 мс.

Жмём ок и затем «плэй». Смотрим результат:

Другое дело. Всё гладенько, да и матлаб больше не жалуется. Можно хоть сейчас вставлять в чьё-нибудь ДЗ

Ну кстати, сразу пару слов о графиках. Рядом с кнопкой принтера, есть кнопка «Парметры» в которой можно настроить, к примеру, количество осей. В этом случае у окошка Scope появится несколько входов, и графики будут располагаться один под другим. Чтобы расположить несколько графиков на одном, нужно использовать блок Mux

В этом случае несколько сигналов можно запихнуть в один Scope и в окне они будут отображаться разными цветами.

Теперь разберёмся как строить логарифмические амплитудные и фазовые характеристики. Делается это при помощи расширения «Control Design» там же в симулинке.

Введение

Настоящие методическое пособие предназначено для изучения раздела «Автоматика» междисциплинарного комплекса МДК 03.01., дисциплин «Основы автоматика», «Системы автоматического управления»

В пособии рассматриваются методы цифрового моделирования систем автоматического управления и программные средства для их проведения, рассматриваются способы построения математических моделей.

В первой части инструкции (Часть 1) приведен способ описания систем дифференциальными уравнениями. В следующей части (Часть 2) инструкции будет представлен способ описания систем как совокупности множества передаточных функций.

Для иллюстрации примера использована версия 7.11 программы MATLAB.

Работа с другими версиями MATLAB аналогична, за исключением вида «окон».

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

Часть 1. Общие сведения о системе Simulink

Программа Simulink является приложением к пакету MATLAB.

При моделировании с использованием Simulink реализуется принцип визуального программирования, в соответствии с которым, пользователь на экране из библиотеки стандартных блоков создает модель устройства и осуществляет расчеты. При этом, в отличие от классических способов моделирования, пользователю не нужно досконально изучать язык программирования и численные методы математики, а достаточно общих знаний требующихся при работе на компьютере и, естественно, знаний той предметной области, в которой он работает.

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

Simulink является достаточно самостоятельным инструментом и при работе с ним совсем не требуется знать сам MATLAB и остальные его приложения. С другой стороны доступ к функциям MATLAB и другим его инструментам остается открытым и их можно использовать в Simulink. Часть входящих в состав пакетов имеет инструменты, встраиваемые в Simulink (например, LTI-Viewer приложения Control System Toolbox – пакета для разработки систем управления).

Имеются также дополнительные библиотеки блоков для разных областей применения (например, Power System Blockset – моделирование электротехнических устройств, Digital Signal Processing Blockset – набор блоков для разработки цифровых устройств и т.д).

При работе с Simulink пользователь имеет возможность модернизировать библиотечные блоки, создавать свои собственные, а также составлять новые библиотеки блоков.

При моделировании пользователь может выбирать метод решения дифференциальных уравнений, а также способ изменения модельного времени

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

Преимущество Simulink заключается также в том, что он позволяет пополнять библиотеки блоков с помощью подпрограмм написанных как на языке MATLAB, так и на языках С++, Fortran и Ada.

Для запуска программы необходимо предварительно запустить пакет MATLAB. Основное окно пакета MATLAB показано на рисунке 1. Там же показана подсказка, появляющаяся в окне при наведении указателя мыши на ярлык Simulink в панели инструментов.

После открытия основного окна программы MATLAB нужно запустить программу Simulink. Это можно сделать одним из трех способов:

Рисунок 1- Основное окно программы MATLAB

∙ Нажать кнопку (Simulink) на панели инструментов командного окна MATLAB.

∙ В командной строке главного окна MATLAB напечатать Simulink и нажать клавишу Enter на клавиатуре.

∙ Выполнить команду Open... в меню File и открыть файл модели (mdl - файл).

Последний вариант удобно использовать для запуска уже готовой и отлаженной модели, когда требуется лишь провести расчеты и ненужно добавлять новые блоки в модель. Использование первого и второго способов приводит к открытию окна библиотеки Simulink (рисунок 2).

Рисунок 2- Окно библиотеки Simulink.

Цифрами обозначены: 1 –строка поиска компонентов, 2 – дерево библиотек Simulink, 3 –содержимое библиотеки (разделы или компоненты библиотеки)

На рисунке 2 выделена основная библиотека Simulink (в левой части окна) и показаны ее разделы (в правой части окна). Библиотека Simulink в MATLAB 2010 содержит следующие основные разделы:

0. Commonly Used Blocks – часто используемые компоненты из различных разделов основной библиотеки Simulink.

1. Continuous – компоненты для моделирования систем в непрерывном времени.

2. Discontinuities – компоненты для моделирования негладких и разрывных нелинейных функций.

3. Discrete – компоненты для моделирования систем в дискретном времени.

4. Logic and Bit Operations – компоненты для моделирования ло-

гических (двоичных) операций.

5. Lookup Tables – компоненты для моделирования функциональных и табличных зависимостей.

6. Math Operations – компоненты для моделирования математических операций.

7. Model Verification – компоненты для тестирования и верификации поведения моделей.

8. Model-Wide Utilities – вспомогательные компоненты для документирования и линеаризации моделей.

9. Ports & Subsystems – блоки построения иерархических моделей и подсистем.

10. Signal Attributes – компоненты для преобразования типов сигналов в моделях.

11. Signal Routing – компоненты для коммутации и объединения/разъединения сигналов.

12. Sinks – компоненты для отображения и сохранения сигналов.

13. Sources – источники сигналов и воздействий.

14. User-Defined Functions – компоненты для создания пользовательских функций, реализованных на языке MATLAB.

Список разделов библиотеки Simulink представлен в виде дерева, и правила работы с ним являются общими для списков такого вида:

∙ Пиктограмма свернутого узла дерева содержит символ+, а пиктограмма развернутого содержит символ −.

∙ Для того чтобы развернуть или свернуть узел дерева, достаточно щелкнуть на его пиктограмме левой клавишей мыши.

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

Рисунок 3- Компоненты библиотеки Simulink / Continuous.

Пример построения модели в Simulink

В качестве примера использования Simulink для моделирования систем рассмотрим отопление в жилом индивидуальном доме. Пусть для простоты, дом состоит из всего лишь одного помещения, в котором установлено отопление суммарной тепловой мощностью 𝑃 . Температура внутри этого дома 𝑇 𝑖 градусов, температура за окном – 𝑇 𝑜 градусов. Нас интересует каким образом изменяется температура 𝑇 𝑖 при изменении мощности 𝑃 (рисунок 4).

Рисунок 4- Модель отапливаемого помещения по входу-выходу.

Прежде чем составлять модель, рассмотрим интуитивно некоторые ее свойства. Во-первых, вполне очевидно, что если включить отопление, то сначала температура будет расти, а потом стабилизируется – наступит тепловое равновесие между подводимым теплом и рассеиваемым на улицу через щели в окнах, вентиляцию и т.д. Если печку выключить, то температура будет падать и в конце-концов дома будет также холодно, как и на улице. Существенными

параметрами модели является:

∙ температура за окном 𝑇 𝑜 – чем меньше она, тем больше тепла

уходит из дома и тем больше нужна мощность нагревателя, чтобы достичь заданной температуры внутри 𝑇 𝑖 ;

∙ качество теплоизоляции – чем хуже теплоизоляция, тем больше тепла выходит наружу;

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

В теплотехнике существуют множество моделей, с разной степенью точности моделирующие процессы нагревания и охлаждения тел. Далее мы рассмотрим самый простой из них. Для этого необходимо ввести понятие количества теплоты – энергии, необходимой для изменения термодинамического состояния тела (например, температуры). Из курса физики хорошо известно, что для того, чтобы нагреть тело массой 𝑚 и теплоемкостью 𝑐 от температуры 𝑇 1 до 𝑇 2 необходимо затратить количество теплоты 𝑄 , равное

𝑄 = 𝑐𝑚 (𝑇 2 − 𝑇 1)

Количество теплоты 𝑄 𝑖 , которое поступает от нагревателя мощностью 𝑃 за время 𝜏 – это просто интеграл по времени:

𝑄 𝑖 (𝜏 ) =

Для того, чтобы понять сколько тепла ушло на улицу, необходимо воспользоваться понятием теплового потока 𝑄 0 (t) – количество теплоты, проходящей через поверхность за единицу времени. Если считать, что теплопроводность внутри двух соприкасающихся сред больше, чем теплопроводность между ними, то тепловой поток пропорционален разности их температур:

𝑄 0 (t)= -k(T i (t)–T 0 )

𝑄 0 (𝜏 ) = (T i (t)–T 0 )dt

Запишем уравнение теплового баланса:

𝑄 = 𝑄 𝑖 + 𝑄 𝑜

продифференцировав обе части по времени, можно записать дифференциальное уравнение, связывающее динамику изменения температуры 𝑇 𝑖 (𝑡 ) от мощности нагревателя:

𝑐𝑚 = 𝑘 (𝑇 𝑜 − 𝑇 𝑖 (𝑡 )) + 𝑃 (𝑡 )

Обозначив коэффициент 𝑐𝑚 = a и разделив переменные для интегрирования, можно записать:

Последнее выражение – есть простейшая модель процесса теплообмена при отоплении помещения. Рассмотрим как осуществить моделирование этой системы с помощью Simulink.

Для создания модели в среде Simulink необходимо последовательно выполнить ряд действий.

Для начала необходимо создать новый файл модели с помощью команды File / New / Model, или используя кнопку на панели инструментов (здесь и далее, с помощью символа /, указаны пункты меню программы, которые необходимо последовательно выбрать для выполнения указанного действия). Вновь созданное окно модели показано на рисунке 5.

Рисунок 5- Пустое окно модели.

Далее расположим компоненты библиотеки Simulink в окне модели. Для этого необходимо открыть соответствующий раздел библиотеки (например, Sources – Источники). Далее, указав курсором на требуемый блок и, нажав на левую клавишу мыши, перетащить блок в созданное окно модели. Клавишу мыши нужно держать нажатой.

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

∙ в модель необходимо ввести параметр 𝑇 𝑜 , который в начале будет

константой – используем компонент библиотеки Simulink /Commonly Used Blocks / Constant или Simulink / Sources / Constant (это один и тот же компонент);

∙ чтобы получить разность температур 𝑇 𝑜 − 𝑇 𝑖 (𝑡 ) необходимо использовать сумматор (в режиме вычитателя) – компонент библиотеки Simulink / Commonly Used Blocks / Sum или Simulink /

Math Operations / Sum (также один и тот же компонент);

∙ для того, чтобы вычислить произведение разности температур на коэффициент 𝑘 ・ (𝑇 𝑜 − 𝑇 𝑖 (𝑡 )), необходимо использовать блок

усилитель, поскольку такое произведение равнозначно усилению сигнала разности в 𝑘 раз ставим компонент библиотеки Simulink/ Commonly Used Blocks / Gain или Simulink / Math Operations/ Gain;

∙ чтобы получить сумму мощностей 𝑘 (𝑇𝑜 − 𝑇𝑖 (𝑡 )) + 𝑃 (𝑡 ) под интегралом необходимо использовать сумматор – компонент библиотеки Simulink / Commonly Used Blocks / Sum или Simulink /Math Operations / Sum;

∙ чтобы получить количество теплоты из суммы мощностей с помощью интегрирования

𝑇 𝑖 (𝑡 )= (𝑘 (𝑇 𝑜 − 𝑇 𝑖 (𝑡 )) + 𝑃 (𝑡 )) dt

необходимо использовать интегратор – компонент библиотеки Simulink / Commonly Used Blocks / Integrator или Simulink / Continuous / Integrator;

∙ для формирования сигнала внутренней температуры 𝑇 𝑖 (𝑡 ) из интеграла мощности необходимо использовать блок усилитель, домножающий значение интеграла на 1/ 𝑎 – компонент библиотеки

Simulink / Commonly Used Blocks / Gain или Simulink / Math Operations / Gain;

Кроме того, нам необходимо визуализировать зависимость 𝑇 𝑖 (𝑡 ), для этого мы используем осциллограф – компонент библиотеки Simulink / Commonly Used Blocks / Scope или Simulink / Sinks / Scope. А также мы задаем зависимость мощности от времени 𝑃 (𝑡 ) как единичный ступенчатый сигнал с помощью компонента библиотеки Simulink /Sources / Step.

Рисунок 6- Окно модели, содержащее необходимые блоки

На рисунке 6 показано окно модели, содержащее установленные блоки.

Для удаления блока необходимо выбрать блок (указать курсором на его изображение и нажать левую клавишу мыши), а затем нажать клавишу Delete на клавиатуре.

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

Рисунок 7- Блок, моделирующий интегратор и окно редактирования параметров блока

Следующий шаг – настройка параметров каждого блока. Для этого необходимо дважды щелкнуть левой клавишей мыши, указав курсором на изображение блока. Откроется окно редактирования параметров данного блока. При задании численных параметров следует иметь в виду, что в качестве десятичного разделителя должна использоваться точка, а не запятая. После внесения изменений нужно закрыть окно кнопкой OK. На рисунке 7 в качестве примера показаны блок, моделирующий интегратор и окно редактирования параметров данного блока.

В рассматриваемой модели необходимо установить следующие параметры блоков:

∙ блок Integrator: параметр Initial condition = 20 – интегрирование осуществляется с начальной температуры в помещении 20 градусов;

∙ блок Sum1 (нижний из двух сумматоров): List of signs = |+- – превращает сумматор в вычитатель;

Параметры 𝑎 и 𝑘 модели пока не будем задавать, положив 𝑎 = 1 и 𝑘 = 1. После установки на схеме всех блоков из требуемых библиотек нужно выполнить соединение элементов схемы с помощью сигналов.

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

С целью удобства понимания модели, можно задать имена не только блокам, но и сигналам. Для этого необходимо дважды щелкнуть по сигналу и ввести имя. Обозначим сигналы, соответствующие переменным 𝑃 , 𝑇 𝑜 , 𝑇 𝑖 , P, T o и T i .

Схема модели, в которой выполнены все соединения между блоками и их настройка, показана на рисунке 8.

Рисунок 8- Окончательная схема модели.

После составления модели необходимо сохранить ее в виде файла на диске, выбрав пункт меню File/Save As... в окне схемы и указа папку и имя файла. При последующем редактировании схемы можно пользоваться пунктом меню File/Save. При повторных запусках программы Simulink загрузка схемы осуществляется с помощью меню File/Open... в окне обозревателя библиотеки или из основного окна MATLAB.

Запуск моделирования выполняется с помощью выбора пункта меню Simulation/Start или нажатием кнопки с треугольником (воспроизведение) на панели инструментов. Рядом в поле ввода указана продолжительность моделирования системы, по умолчанию моделирование останавливается при достижении модельного времени 𝑡 𝑠𝑡𝑜𝑝 = 10. Процесс расчета можно завершить досрочно, выбрав пункт меню Simulation/Stop или кнопку с квадратом (стоп). Расчет также можно остановить (Simulation/Pause) и затем продолжить (Simulation/Continue).

Запустим моделирование. После окончания, дважды щелкнем на блок осциллографа (Scope). На нем должна отображается зависимость 𝑇 𝑖 (𝑡 )

(рисунок 9). Если графика не видно, то необходимо щелкнуть правой кнопкой по черной зоне и выбрать из меню Autoscale, что приведет к автоматическому масштабированию осей графика.

Рисунок 9- Результат моделирования при 𝑃 = 1.

Видно, что температура внутри падает от 20 градусов до температуры, которая выше уличной 𝑇 𝑜 = 1, моделируемой блоком Constant.

Таким образом сказывается действие нагревателя.

Установим в параметрах блока Step, моделирующего зависимость 𝑃 (𝑡 ), большую мощность нагрева. Блок Step выдает на своем выходе константное значение, задаваемое его параметром Final value, и происходит это во время, задаваемое параметром Step time. До этого момента значение на выходе компонента Step равно 0. Установив параметр Final value = 10, запустим моделирование еще раз. Получим зависимость 𝑇 𝑖 (𝑡 ), показанную на рисунке 10.

Рисунок 10- Результат моделирования при 𝑃 = 10.

Отчетливо видно, что температура падает до включения нагревателя при 𝑡 = 1, после чего растет до достижения постоянного значения, соответствующего термодинамическому равновесию между теплом, подводимым нагревателем и отводимым наружу.

Литература

1. А. Борисевич, Теория автоматического управления: элементарное введение

с применением MATLAB , Изд. МГУ, 2011г.

2. А. Ф. Дащенко, В. Х. Кириллов, Л. В. Коломиец, В. Ф. Оробей

MATLAB В ИНЖЕНЕРНЫХ И НАУЧНЫХ РАСЧЕТАХ

Одесса «Астропринт» 2003

3. В. П. Дьяконов MATLAB 7.*/R2006/R2007 Самоучитель

Москва, ДМК, 2008


4. Создание модели

Для создания модели в среде SIMULINK необходимо последовательно выполнить ряд действий:

4.1. Создать новый файл модели с помощью команды File/New/Model, или используя кнопку на панели инструментов (здесь и далее, с помощью символа “/”, указаны пункты меню программы, которые необходимо последовательно выбрать для выполнения указанного действия). Вновь созданное окно модели показано на Рис. 4.1.

Рис 4.1. Пустое окно модели

4.2. Расположить блоки в окне модели. Для этого необходимо открыть соответствующий раздел библиотеки (Например, Sources - Источники ). Далее, указав курсором на требуемый блок и нажав на левую клавишу “мыши” - “перетащить” блок в созданное окно. Клавишу мыши нужно держать нажатой . На Рис 4.2 показано окно модели, содержащее блоки.

Рис 4.2. Окно модели, содержащее блоки

Для удаления блока необходимо выбрать блок (указать курсором на его изображение и нажать левую клавишу “мыши”), а затем нажать клавишу Delete на клавиатуре.

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

4.3. Далее, если это требуется, нужно изменить параметры блока, установленные программой “по умолчанию”. Для этого необходимо дважды щелкнуть левой клавишей “мыши”, указав курсором на изображение блока. Откроется окно редактирования параметров данного блока. При задании численных параметров следует иметь в виду, что в качестве десятичного разделителя должна использоваться точка, а не запятая. После внесения изменений нужно закрыть окно кнопкой OK . На рис.4.3 в качестве примера показаны блок, моделирующий передаточную функцию и окно редактирования параметров данного блока.

Рис 4.3. Блок, моделирующий передаточную функцию и окно редактирования параметров блока

4.4. После установки на схеме всех блоков из требуемых библиотек нужно выполнить соединение элементов схемы. Для соединения блоков необходимо указать курсором на “выход” блока, а затем, нажать и, не отпуская левую клавишу “мыши”, провести линию к входу другого блока. После чего отпустить клавишу. В случае правильного соединения изображение стрелки на входе блока изменяет цвет. Для создания точки разветвления в соединительной линии нужно подвести курсор к предполагаемому узлу и, нажав правую клавишу “мыши”, протянуть линию. Для удаления линии требуется выбрать линию (так же, как это выполняется для блока), а затем нажать клавишу Delete на клавиатуре. Схема модели, в которой выполнены соединения между блоками, показана на Рис. 4.4 .

Рис 4.4. Схема модели

4.5. После составления расчетной схемы необходимо сохранить ее в виде файла на диске, выбрав пункт меню File/Save As... в окне схемы и указав папку и имя файла. Следует иметь в виду, что имя файла не должно превышать 32 символов, должно начинаться с буквы и не может содержать символы кириллицы и спецсимволы. Это же требование относится и к пути файла (к тем папкам, в которых сохраняется файл). При последующем редактировании схемы можно пользоваться пунктом меню Fille/Save . При повторных запусках программы SIMULINK загрузка схемы осуществляется с помощью меню File/Open... в окне обозревателя библиотеки или из основного окна MATLAB.

Subsystem – подсистемы.

Подсистема это фрагмент Simulink -модели, оформленный в виде отдельного блока. Использование подсистем при составлении модели имеет следующие положительные стороны:

  1. Уменьшает количество одновременно отображаемых блоков на экране, что облегчает восприятие модели (в идеале модель полностью должна отображаться на экране монитора).
  2. Позволяет создавать и отлаживать фрагменты модели по отдельности, что повышает технологичность создания модели.
  3. Позволяет создавать собственные библиотеки.
  4. Дает возможность синхронизации параллельно работающих подсистем.
  5. Позволяет включать в модель собственные справочные средства.
  6. Дает возможность связывать подсистему с каким-либо m -файлом, обеспечивая запуск этого файла при открытии подсистемы (нестандартное открытие подсистемы).

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

Количество подсистем в модели не ограничено, кроме того подсистемы могут включать в себя другие подсистемы. Уровень вложенности подсистем друг в друга также не ограничен.

Связь подсистемы с моделью (или подсистемой верхнего уровня иерархии) выполняется с помощью входных (блок Inport библиотеки Sources ) и выходных (блок Outport библиотеки Sinks ) портов. Добавление в подсистему входного или выходного порта приводит к появлению на изображении подсистемы метки порта, с помощью которой внешние сигналы передаются внутрь подсистемы или выводятся в основную модель. Переименование блоков Inport или Outport позволяет изменить метки портов, отображаемые на пиктограмме подсистемы со стандартных (In и Out ) на те, которые нужны пользователю.

Подсистемы могут быть виртуальными (Subsystem ) и монолитными (Atomic Subsystem ). Отличие этих видов подсистем заключается в порядке выполнения блоков во время расчета. Если подсистема является виртуальной, то Simulink игнорирует наличие границ отделяющих такую подсистему от модели при определении порядка расчета блоков. Иными словами в виртуальной системе сначала могут быть рассчитаны выходные сигналы нескольких блоков, затем выполнен расчет блоков в основной модели, а затем вновь выполнен расчет блоков входящих в подсистему. Монолитная подсистема считается единым (неделимым) блоком и Simulink выполняет расчет всех блоков в такой подсистеме, не переключаясь на расчеты других блоков в основной модели. Изображение монолитной подсистемы имеет более толстую рамку по сравнению с виртуальной подсистемой.

Подсистемы могут быть также управляемыми или неуправляемыми. Управляемые подсистемы всегда являются монолитными. Управляемые подсистемы имеют дополнительные (управляющие) входы, на которые поступают сигналы активизирующие данную подсистему. Управляющие входы расположены сверху или снизу подсистемы. Когда управляемая подсистема активизирована – она выполняет вычисления. В том случае если управляемая подсистема пассивна, то она не выполняет вычисления, а значения сигналов на ее выходах определяются настройками выходных портов.

Для создания в модели подсистемы можно воспользоваться двумя способами:

  1. Скопировать нужную подсистему из библиотеки Subsystem в модель.
  2. Выделить с помощью мыши нужный фрагмент модели и выполнить команду Create Subsystem из меню Edit окна модели. Выделенный фрагмент будет помещен в подсистему, а входы и выходы подсистемы будут снабжены соответствующими портами. Данный способ позволяет создать виртуальную неуправляемую подсистему. В дальнейшем, если это необходимо, можно сделать подсистему монолитной, изменив ее параметры, или управляемой, добавив управляющий элемент из нужной подсистемы находящейся в библиотеке. Отменить группировку блоков в подсистему можно командой Undo .

Рис. 9.9.1 иллюстрирует процесс создания подсистемы вторым способом. На рис. 9.9.2 показан результат этого процесса. В примере использована модель управляемого функционального генератора.

Рис. 9.9.1 Создание подсистемы

Рис. 9.9.2 Модель, использующая подсистему

Пример на рис. 9.9.4 отличается от предыдущего настройкой блока Enable подсистемы. В данном примере параметр States when enabling блока Enable имеет значение reset . На временных диаграммах видно, что при выключении подсистемы происходит ее сброс до начального состояния.

Рис. 9.9.4 Модель, использующая E -подсистему

ВВЕДЕНИЕ В SIMULINK

MATLAB (Matrix Laboratory) – это пакет прикладных программ, предназначенный для решения задач технических вычислений.

Рисунок 1.1 – Логотип MATLAB, выведенный на экран при помощи команды logo

Как язык программирования MATLAB был разработан в конце 1970-х годов Кливом Моулером в университете Нью-Мексико. MATLAB – это высокоуровневый интерпретируемый язык программирования, отличительной особенностью которого является оперирование с векторами и матрицами. На сегодняшний день насчитывается более одного миллиона пользователей

Simulink – это система имитационного блочного моделирования динамических систем, являющаяся подсистемой MATLAB. Средства моделирования Simulink основываются на программных средствах MATLAB, но позволяют обойтись без использования в явном виде языка MATLAB и создавать модели из стандартных блоков в графическом виде. При необходимости дополнительные блоки могут быть написаны пользователем как на языке MATLAB, так и на других языках (С, VHDL и др.). Визуальное представление дает возможность значительно упростить процесс создания модели, поиска ошибок, модификации модели другими пользователями, что в целом позволяет добиваться результатов гораздо быстрее, чем при использовании языка MATLAB в чистом виде. Кроме того, пользователю предоставляется возможность автоматической генерации кода на языках С, VHDL, Verilog по созданной модели, что позволяет переносить модель системы сразу после отладки на кристалл (микроконтроллеры, ПЛИС). Со многими другими возможностями MATLAB и Simulink можно познакомиться на сайте компании TheMathWorks (http://www.mathworks.com/).

1.1 Запуск Simulink

Запустив графический интерфейс MATLAB, выполните команду simulink или запустите Simulink при помощи кнопки на верхней панели (рис. 1.2).

Рисунок 1.2 – Запуск Simulink из MATLAB

При запуске Simulink откроется окно Simulink Library Browser (каталог библиотеки Simulink). В левой панели окна приведен список библиотек Simulink (рис. 1.3). Правая панель содержит три вкладки: Library (Содержание библиотеки),Search Results (Результаты поиска),Most Frequently Used Blocks

(Наиболее часто используемые блоки).

Во вкладке Library отображаются элементы библиотеки, выбранной в левой панели окна. В дальнейшем эти элементы могут быть использованы для создания новой модели.

Для ускоренного поиска нужного блока необходимо использовать поисковую систему (Enter search term ). Результаты поиска отображаются во второй вкладке правой панели (Search Results ).

В процессе работы в Simulink формируется набор наиболее часто используемых блоков, который будет отображаться в третьей вкладке правой панели (Most Frequently Used Blocks ).

Рисунок 1.3 – Каталог библиотеки Simulink

Главное меню окна каталога библиотеки Simulink содержит следующие элементы:

File (Файл) – работа с файлами моделей Simulink:

New (Новый) – создание нового файла модели (Model ) или библиотеки (Library );

Open (Открыть) – открыть ранее созданный файл;

Close (Закрыть) – закрыть окно каталога библиотеки Simulink;Preferences (Настройки по умолчанию) – общие настройки Simulink (параметры шрифтов, настройки отображения графического интерфейса пользователя, начальные настройки вновь создаваемых проектов и другие).

Edit (Редактирование) – добавление в модель выделенного блока (Add Selected Block to a New Model ), поиск блока в библиотеке (Find ).

View (Вид) – настройки отображения элементов библиотеки (размер шрифта, вид значков элементов и др.).

Help (Помощь) – справочная система MATLAB Simulink.

Необходимо отметить, что MATLAB имеет очень хорошую встроенную систему документации, которая постоянно совершенствуется и дополняется новой информацией. Знание технического английского языка и чтение документации MATLAB – это лучший способ разобраться во всем многообразии функций и блоков.

Рисунок 1.4 – Описание элемента стандартной библиотеки Simulink

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

1.2 Создание модели

Для создания новой модели выполните команду главного меню File ,

New ,Model (рис. 1.5) или нажмитеCtrl+N .

Рисунок 1.5 – Создание новой модели

По команде откроется новое безымянное окно (Untitled ) модели (рис.

Рисунок 1.6 – Пустое окно новой модели Simulink

Прежде чем приступать к созданию модели, необходимо настроить параметры моделирования. Выполните команду главного меню Simulation ,Configuration Parameters (Моделирование, Параметры конфигурации) или на-

жмите Ctrl+E .

Рисунок 1.7 – Параметры конфигурации

Процесс настройки заключается в задании параметров решающего мо-

дуля (Solver ):

Simulation time (Время моделирования) – задается временной интервал моделирования в секундах. Левая граница по умолчанию равна нулю, правая может принимать любое значение, в том числе и бесконечность (inf ). В случае, если начальное и конечное значения совпадают, будет выполнен только один шаг моделирования.

Solver Options (Параметры решающего модуля) – параметры модуля, реализующего один из методов численного интегрирования обыкновенных дифференциальных уравнений. Выделяются два типа (Type ) решающих модулей: с фиксированным шагом моделирования (Fixed-step ) и с переменным шагом моделирования (Variable-step ). Выбор второго варианта позволяет системе адаптивно изменять временной шаг моделирования в процессе работы. При этом можно задать величины минимального и максимального шага мо-

делирования, а также начального шага моделирования в секундах (Max step size, Min step size иInitial step size ). При необходимости можно задать относительную и абсолютную погрешности численного метода решения дифферен-

циальных уравнений (Relative tolerance иAbsolute tolerance ). В выпадающем спискеSolver имеется возможность задать тип решающего модуля для моделирования аналоговых систем (ode … ) или выбрать решающий модуль для моделирования дискретных систем (Discrete (no continuous state) ).

На первое время рекомендуется оставить параметры конфигурации по умолчанию, изменяя лишь правую границу времени моделирования. При необходимости можно более подробно ознакомиться с параметрами конфигурации в справочной системе MATLAB Simulink.

Рисунок 1.7 – Результаты поиска по слову «Scope»

Сохраните настройки системы и перейдите к окну библиотеки Simulink. Введите в строке поиска (Enter search term )Scope (осциллограф) и нажмите клавишуEnter. Во вкладкеFound: ‘Scope’ отражаются результаты поиска, сгруппированные по библиотекам (рис. 1.7). В базовой библиотекеSimulink блокScope найден дважды: в разделеCommonly Used Blocks (наиболее часто используемые блоки) иSinks (средства анализа сигналов). Разумеется, это один и тот же блок осциллографа. В списке найденных блоков также присут-

ствует часто используемый блок Spectrum Scope (Анализатор спектра), находящийся в библиотеке цифровой обработки сигналов (Digital Signal Processing ).

Добавить выбранный блок в модель можно несколькими способами: перетащив его на лист модели или выбрав пункт Add To Untitled контекстного меню, нажав правой кнопкой мыши на блоке. Аналогичным образом добавьте блокSine Wave из разделаSources (Источники сигнала).

Соединение блоков между собой может осуществляться двумя способами. Ручной способ: наведя курсор мыши на выход источника сигнала, зажмите левую кнопку мыши и проведите линию до входа осциллографа. Автоматический способ: выделив блок источника сигнала однократным нажатием левой кнопки мыши, зажмите кнопку Ctrl и нажмите левой кнопкой мыши на второй блок, соединение будет выполнено автоматически.

Для настройки параметров генератора синусоидального сигнала двойным щелчком мыши откройте окно параметров блока (рис. 1.9.).

Рисунок 1.9 – Настройка параметров блока Sine Wave

Установите значение параметра Sine type Sample based (Метод формирования сигнала – Дискретное представление). ПараметрSample time определяет период дискретизации сигнала, для примера установим его равным одной секунде. Таким образом, при 10 выборках на один период синусоиды (Samples per period ) и при периоде дискретизации в 1 секунду, период гармонического колебания составит 10 секунд.

Запустите процесс моделирования Simulation, Start (Ctrl+T ) на временном промежутке 0…10 сек. Двойным щелчком мыши откройте окно осциллографа (рис. 1.10).

Рисунок 1.10 – Пример моделирования источника дискретного синусоидального сигнала

Как видно на рисунке 1.10, осциллограмма сигнала соответствует заданным параметрам гармонического колебания в настройках блока Sine Wave . При необходимости можно увеличить участок с требуемым фрагментом сигнала при помощи кнопок управления окнаScope . КнопкаAutoscale позволяет автоматически подобрать масштаб по двум осям для отображения всего накопленного сигнала. При помощи кнопокZoom X – axis иZoom Y – axis имеется возможность изменения масштаба только по одной из координат. В настройках блокаScope можно задать количество входов осциллографа (Number of axis ), параметры децимации входного сигнала (Decimation , прореживание выборок), настройки объема буфера хранения информации (History, Limit data points to last ) и другие.

1.3 Библиотеки Simulink

Формирование сигналов в Simulink осуществляется при помощи генераторов сигналов Sources (рис. 1.11).

Рисунок 1.11 – Библиотека источников сигнала

В библиотеку входят следующие блоки:

Band-Limited White Noise – генератор нормального белого шума с равномерной финитной спектральной плотностью мощности и заданным временем корреляции для аналоговых систем;

Chirp signal – генератор синусоидального колебания с линейно возрастающей мгновенной частотой;

Clock – формирователь аналогового сигнала текущего времени моделирования (в соответствии с шагом моделирования);

Constant – источник постоянного сигнала;

Counter Free-Running – формирователь сигнала на основе N -разрядного счетчика и со сбросом по переполнению;

Counter Limited – формирователь сигнала на основе счетчика с произвольным значением сброса;

Digital Clock – формирователь дискретного сигнала текущего времени моделирования (в соответствии с шагом моделирования);



Рекомендуем почитать

Наверх