Общая схема разработки моделей в среде Simulink
Меню окна блок-диаграммы Simulink
Simulink – это одна из подсистем Matlab, обеспечивающая простую и наглядную процедуру моделирования процессов в динамических системах.
Для создания новой модели, то в первую очередь необходимо открыть новое окно блок-диаграммы. Это можно сделать либо из командного окна Matlab, либо из окна Library: Simulink, выбрав из меню последовательно команды File -> New -> Model. Новое окно блок-диаграммы имеет по умолчанию имя untitled (безымянное), которое может быть изменено при записи файла модели на диск.
1. Описать на содержательном уровне логику поведения исследуемой системы.
2. Определить перечень блоков, соответствующих основным компонентам системы, а также необходимых для расчета выбранного показателя эффективности.
3. Поместить в окно блок-диаграммы требуемые блоки и соединить их между собой в соответствии с логикой работы модели.
4. Выполнить настройку и согласование параметров блоков.
5. Установить требуемые значения параметров моделирования для модели в целом.
6. Дополнить блок-диаграмму модели необходимыми текстовыми комментариями.
7. Сохранить блок-диаграмму модели в файле на диске.
8. Выполнить сеанс моделирования.
Чтобы разработанная модель удовлетворяла предъявляемым к ней требованиям, как по формальным, так и по субъективным критериям, может оказаться необходимым неоднократное повторное выполнение одного или даже нескольких шагов приведенной выше схемы.
Модель в среде Simulink создается в виде блок-диаграммы на основе типовых блоков, имеющихся в библиотеках. Все блоки в блок-диаграмме обязательно должны иметь имя - либо предложенное Simulink, либо назначенное разработчиком модели; поэтому нельзя сделать блок «безымянным». Имя блока можно «скрыть» с помощью команды Hide Name (из раздела меню Format).
Используя технологию Drug&Drop, блоки переносятся на рабочее поле и затем при помощи мыши устанавливаются межблочные связи.
Используя команду Start из раздела Simulation или соответствующую кнопку панели инструментов, можно запустите модель на исполнение.
Для сохранения созданной модели следует записать ее в файл на жесткий диск.
Важный параметр, который может быть скорректирован - это величина интервала моделирования.
С любой моделью тем удобнее работать, чем больше она содержит текстовых комментариев.
Причем, чем сложнее модель, тем больше должно быть пояснений по ее использованию.
Желательно задать заголовок модели. Лучше всего разместить его в верхней части окна.
Путем редактирования и форматирования следует стремиться дделать блок-схему максимально наглядной.
Наглядность блок-диаграмм, содержащих большое число блоков, во многом зависит от выбора формы и расположения всех элементов диаграммы, в том числе от конфигурации линий связи. Ниже описаны некоторые основные приемы их редактирования.
Редактируемая линия связи должна быть предварительно выделена. Чтобы выделить линию связи, достаточно подвести к ней курсор «мыши» и щелкнуть ЛКМ.
При связывании блоков (то есть при создании новой линии связи) Simulink сам пытается подобрать наиболее удачную конфигурацию линии. При этом создаваемая линия может иметь два и более «изломов».
На выделенной линии связи изломы отмечаются черными прямоугольничками. Чтобы изменить форму линии, необходимо установить курсор на точку излома, нажать ЛКМ и, не отпуская ее, переместить курсор в нужном направлении.
Чтобы изменить положение прямых отрезков, можно использовать другой способ. Установите курсор на редактируемый отрезок и нажмите ЛКМ; курсор примет форму черно-белого ромба; не отпуская ЛКМ, переместите курсор в нужном направлении.
При создании новой линии связи или при перемещении связанных блоков Simulink старается выбрать для связи кратчайший маршрут. Если вы хотите самостоятельно указать маршрут связывания блоков, можно поступить следующим образом. Подведите курсор к выходному порту блока, который вы хотите связать с одним последующих блоков модели. Курсор примет форму черного крестика. Нажмите ЛКМ и, не отпуская ее, переместите курсор. За ним потянется контур будущей линии, и продолжите движение в нужном направлении. Чтобы изменить направление движения, отпустите, затем вновь нажмите ЛКМ и продолжите движение в нужном направлении.
Чтобы создать дополнительную линию связи, необходимо выполнить следующие действия.
1. Соединить блок с одним из блоков, на которые должен передаваться сигнал (созданную линию связи будем считать основной).
2. Подвести курсор к входному порту не подсоединенного блока и нажать ЛКМ; протащить контур новой линии связи до пересечения с основной; когда курсор примет форму двойного крестика, отпустить ЛКМ; в результате на основной линии связи появится точка соединения.
К возможным изменениям созданной блок-диаграммы относятся также изменения цветовой гаммы и геометрических размеров, входящих в нее блоков, использование «теней» и т. д.;
Добавить описание модулей
Возможность использования технологии Drag-and-Drop (Перетащи и Оставь) одно из основных достоинств практически всех Windows-приложений. Смысл ее заключается в том, что пользователь может «буксировать» выделенный объект из одного окна в другое. При этом окна могут принадлежать как одному, так и разным приложениям.
Реализация технологии Drag-and-Drop возможна благодаря особенностям ОС Windows: многозадачности и наличию графического (WIMP) интерфейса. Аббревиатура WIMP образована начальными буквами четырех английских слов: Windows, Icons, Mouse и Pop-up. Эти термины и соответствующие им объекты составляют основу особого многооконного графического интерфейса.
Меню окна блок-диаграммы (в
дальнейшем для краткости будем называть его меню пользователя) содержит четыре
основных раздела: File,
Edit,
Simulation и Format.
New - создание нового окна блок-диаграммы; команда имеет два варианта:
Model (открыть окно для создания S-модели) и
Library (открыть
окно для создания нового раздела библиотеки Simulink.
Ореп - открыть mdl-файл; при выборе данного пункта открывается стандартное диалоговое окно файловой системы Windows, с помощью которого можно найти и открыть требуемый файл, имеющий расширение mdl.
Close - закрыть окно блок-диаграммы (и соответствующий mdl-файл).
Save - сохранить (записать на диск) mdl-файл; если данный файл записываетcя впервые, то при выборе этой команды открывается диалоговое окно, с помощью которого пользователь может выбрать новое имя файла (вместо untitled) и каталог, в котором будет производиться запись; если же файл уже записывался на диск ранее, то при выполнении команды Save он будет сохранен под прежним именем и в том же каталоге (при этом диалоговое окно не открывается).
Save as... - команда позволяет сохранить файл под новым именем или в другом каталоге; при ее выполнении открывается диалоговое окно файловой системы Windows.
Замечание: при выполнении команд Save аs... и Save (при первой записи) mdl-файл при необходимости может быть сохранен в формате М- или МАТ-файла.
Этим разработчику предоставляется возможность корректировать текст программы модели с помощью встроенного отладчика Matlab.
Show Browser- вызов специального средства просмотра структуры S-модели (броузера). Основное назначение этого средства - отображение в текстовой форме иерархической структуры модели. Его полезно использовать в том случае, если S-модель содержит подсистемы, относящиеся к различным уровням вложенности.
При запуске броузера открывается его диалоговое окно. Окно содержит два списка и элементы управления.
В левом списке выводятся имена подсистем, входящих в состав S-модели. Список может быть выстроен либо в соответствии с иерархией подсистем, либо в алфавитном порядке.
Для повышения наглядности при выводе списка используются специальные символы:
«+» - подсистема содержит подсистемы более низкого уровня, которые не выведены в списке; чтобы «развернуть» список, необходимо дважды щелкнуть ЛКМ на строке, помеченной символом «+». После этого имена вложенных подсистем появятся в списке, а символ «+» будет заменен символом .«-»;>. : .
[M] - признак «маскированной» подсистемы; это означает, что непосредственно содержимое такой подсистемы просмотреть нельзя;
[L] - признак того, что подсистема взята из библиотеки и не подлежит редактированию из окна блок-диаграммы;
[O] - соответствующая подсистема представляет собой информационное окно;
[S] - признак подсистемы типа Stateflow chart (Диаграмма состоянии). Такие подсистемы разрабатываются с помощью специального инструментального средства Matlab - Stateflow.
В нижней части окна броузера расположены три дополнительные «сервисные» кнопки:
Не1р - вывод справки по броузеру (открывается соответствующий раздел встроенной справочной системы пакета Matlab);
Print - вывод на печать информации о модели; команда выполняется так же, как одноименная команда из раздела File; особенности ее использования будут рассмотрены ниже.
С1оse - закрытие окна броузера.
Print меню раздела File позволяет выводить на печать блок-диаграмму модели и некоторую дополнительную информацию о ней.
При выполнении этой команды открывается диалоговое окно, обеспечивающее настройку параметров печати.
Print Setup - обеспечивает настройку параметров вывода на печать с помощью стандартного окна Windows.
В раздел Еdit входят следующие пункты:
Undo - отменить предыдущую команду редактирования; в некоторых случаях команда Undo может конкретизироваться; например, после добавления в блок-диаграмму линии связи между блоками она называется Undo Аll Line (Отменить добавление линии); если нельзя отменить предыдущее действие, то команда Undo заменяется сообщением Сап't Undo.
Redo - отменить выполнение команды Undo; эта команда также может видоизменяться - либо конкретизироваться (например, Redo Аdd Linе), либо сообщать о невозможности отмены (Сап't Redo).
Сиt - вырезать (забрать в буфер обмена) один или несколько блоков; соответствующие блоки должны быть выделены;
Сору - копировать один или несколько блоков; копируемые блоки должны быть предварительно выделены; данная команда используется совместно с командой Раste.
Раste - вставить копируемый или удаленный в буфер обмена участок S-модели;.
Замечание: команды Сиt, Сору и Раstе окна блок-диаграммы работают через собственный буфер обмена Matlab, поэтому вставка копируемой или вырезанной области может выполняться многократно, пока не обновится содержимое буфера обмена; при этом вставку можно выполнять не только в пределах одного окна, но и в любую открытую блок-диаграмму. Передача содержимого собственного буфера Matlab в другие приложения невозможна.
С1еаr - очистить (удалить) выделенную область; (область в буфере обмена не сохраняется, но может быть восстановлена с помощью команды Undo);
SeleсtА11 - выделить все элементы блок-диаграммы;
Сору Моdе1 - запись блок-диаграммы модели в буфер обмена Windows (Clipboard) для передачи в другие Windows-приложения (в качестве графического объекта); по умолчанию блок-диаграмма сохраняется в формате WMF (Windows МеtaFile), формат может быть изменен из командного окна Matlab (раздел меню Filе, пункт Рrеfеrепсеs).
Create Subsystem - создать подсистему; по этой команде выделенная часть S-модели (один или несколько блоков) «сворачиваются» в подсистему и заменяются в блок-диаграмме одним блоком - Subsystem; применение данной команды требует определенной осторожности, поскольку отменить результат невозможно (команда Uпdо в этом случае бессильна);
Mask Subsystem - вызов редактора «маски» подсистемы; команда доступна, если в блок-диаграмме выделена подсистема (блок типа Subsystem); технология создания маскированных подсистем подробно рассматривается в следующем разделе; если выделенная подсистема уже имеет «маску», т. е. является маскированной, то команда Mask Subsystem принимает вид Edit Mask;
Look Under Mask (Заглянуть под маску) - команда открывает окно блок-диаграммы маскированной подсистемы; доступна только в том случае, если выделенный блок является маскированной подсистемой;
Со То Library Link (Перейти к связанной библиотеке) - команда открывает раздел библиотеки, к которому относится выделенный блок; доступна только в том случае, если блок взят из библиотеки пользователя или из раздела Simulink Extras;
Вreak Library Link. (Разорвать связь с библиотекой) - команда позволяет сделать библиотечный блок «самостоятельным», не связанным с библиотекой, что обеспечивает возможность его редактирования; данная команда работает для тех же разделов библиотеки, что и предыдущая;
Unlock Library (Открыть библиотеку) - команда доступна только в окне раздела библиотеки (Library); после ее выполнения становится возможным редактирование соответствующего раздела, при этом на месте команды выводится признак Library Unlocked (Библиотека открыта), который сохраняется до закрытия окна редактируемого раздела;
Update Diagram - обновить блок-диаграмму; команду необходимо использовать в следующих случаях:
после изменения (редактирования) библиотечных блоков, копии которых используются в модели;
после добавления в конфигурацию Matlab нового раздела библиотеки, блоки из которого используются в открытой модели;
после изменения параметров одного или нескольких блоков модели из командного окна Matlab;
после изменения S-функции, используемой в модели (при добавлении или удалении входных и/или выходных портов соответствующего блока).
Данный раздел содержит команды управления сеансом моделирования. Раздел Simulatiоп доступен только из окна блок-диаграммы модели или подсистемы и заблокирован в окне библиотеки Library).
В его состав входят следующие команды.
Start - запуск модели на исполнение; при запуске модели команда Start заменяется командой Stор, которая позволяет завершить моделирование досрочно;
Рause - приостановить сеанс моделирования; команда становится доступной после запуска модели на исполнение; при прерывании моделирования с помощью команды Раusе она заменяется альтернативной командой - Сопtinue;
Раrатеtеrs.... - по данной команде открывается диалоговое окно настроек параметров моделирования. Окно содержит три вкладки:
Solver (Установка параметров расчета модели);
Worksрасе1/0 (Установка параметров обмена данными с рабочей областью Matlab);
Diagnostics (Выбор уровня диагностики).
На вкладке Solver могут быть произведены следующие установки:
Simulation time (Интервал моделирования); его величина задается посредством указания начального (Start time) и конечного (Stop time) значений модельного времени;
Solver options - выбор метода расчета модели.
Первое меню - Type - позволяет выбрать способ изменения модельного времени; оно содержит два пункта:
Variable-step (Моделирование с переменным шагом);
Fixed-step (Моделирование с фиксированным шагом).
Как правило, Variable-step используется для моделирования непрерывных систем, a Fixed-step - дискретных.
Второе меню, расположенное справа, позволяет выбрать метод расчета нового состояния системы. Первый пункт меню (discrete) обеспечивает расчет дискретных состояний системы.
Остальные 5 пунктов меню обеспечивают выбор метода расчета нового состояния для непрерывных систем. Эти методы различны для непрерывного времени (Variable-step) и для дискретного времени (Fixed-step), но основаны на единой методике - решении обыкновенных дифференциальных уравнений.
Подробное описание каждого из методов расчета состояний системы приведено во встроенной справочной системе Matlab (раздел Matlab\funfun).
Под окном меню Type находится строка редактирования, название которой изменяется в зависимости от выбранного способа изменения модельного времени. Для Fixed-step она называется Fixed-step size и позволяет указывать величину шага моделирования.
При выборе Variable-step данная строка получает имя Мах step size (Максимальная величина шага) и, соответственно, содержит предельное допустимое значение шага моделирования.
По умолчанию величина шага моделирования для обоих способов изменения модельного времени устанавливается системой автоматически (auto) в соответствии с параметрами настройки блоков модели; требуемая величина шага может быть введена вместо значения auto либо в форме числовой константы, либо в виде вычисляемого выражения.
При моделировании непрерывных систем с использованием переменного шага (Variable step) необходимо указать точность вычислений: относительную (Relative tolerance) и абсолютную (Absolute tolerance). По умолчанию они равны соответственно 1-10-3 и 1-10-6. Кроме того, для указанного класса систем можно задать начальное значение шага моделирования (в поле Initial step size).
При моделировании с переменным шагом можно задавать опции вывода (Options output) выходных параметров моделируемой системы; соответствующие настройки выполняются с помощью двух элементов интерфейса: выпадающего меню и строки редактирования.
Меню, расположенное слева, содержит три пункта, особенности использования которых поясняются ниже.
Refine output (Улучшенный вывод) - при выборе этой опции можно изменять дискретность регистрации модельного времени и параметров модели (тех величин, которые сохраняются в рабочей области Matlab с помощью блока То Workspace).
Пункт меню - Produce additional output (создать дополнительный вывод) - обеспечивает дополнительную регистрацию параметров модели в заданные моменты времени; их значения вводятся в строке редактирования (в этом случае она называется Output times) в виде списка, заключенного в квадратные скобки при использовании дополнительных моментов регистрации базовый шаг регистрации (DtM) равен 1. Значения времени в списке Output times могут быть дробными числами и иметь любую точность.
Пункт меню - Produce specified output only (формировать только заданный вывод) - устанавливает вывод параметров модели только в заданные моменты времени, которые указываются в списке Output times.
Вкладка Workspace I/O содержит элементы управления вводом и выводом модельной информации в рабочую область Matlab.
Элементы управления вводом/выводом разбиты на 4 поля:
Load from workspace (Загрузить из рабочей области);
Save to workspace (Записать в рабочую область);
States (Состояние);
Save options (Опции записи).
Первое поле содержит флажок Input и строку ввода; при поставленном флажке можно ввести список параметров модели, которые будут считываться из рабочей власти Matlab; к списку предъявляются те же требования, что и при использовании блока From Workspace. Поле Save to workspace содержит три флажка и связанные с ними строки ввода:
Time - позволяет указать имя вектора, в котором будут сохраняться регистрируемые моменты модельного времени (по умолчанию вектор имеет имя tout);
States - при установленном флажке в матрице xout сохраняется текущее состояние моделируемой системы. Оно описывается совокупностью значений сигналов на выходах блоков, формирующих текущее состояние системы. При моделировании дискретных систем такими блоками являются, в частности, все блоки раздела Discrete. Simulink автоматически определяет число блоков в модели и на основании этого формирует матрицу xout. Число столбцов в матрице равно числу регистрируемых параметров текущего состояния системы, а число строк - числу актов регистрации. При желании можно изменить имя матрицы.
Output - флажок записи в рабочую область - определяет возможность регистрами дополнительных параметров модели в ходе моделирования; если флажок установлен, то в соответствующей строке ввода необходимо указать имя регистрируемого параметра; в модели должен присутствовать блок То Workspace, обеспечивающий запись значений данного параметра в рабочую область Matlab.
Поле States содержит два флажка, совмещенных со строками ввода:
Load initial (загрузить начальное значение) - при установленном флажке имеется возможность задать начальное значение параметров, характеризующих состояние моделируемой системы; указанные параметры считываются при запуске модели из вектора-строки xlnitial. Число элементов этой строки (то есть число параметров состояния) должно быть равно числу столбцов (числу регистрируемых параметров) в матрице- royt; значения элементов строки xlnitial можно ввести в командном окне Matlab следующим образом:
xlnitial = [1, 2, 0.15];
В данном примере предполагается, что состояние системы описывается тремя параметрами, первый из них в момент запуска модели примет значение, равное 1, второй - равное 2, третий - равное 0.15. При необходимости имя xlnitial, используемое по умолчанию, может быть изменено.
Save final (Записать конечное состояние) - при установленном флажке в рабочей области Matlab сохраняются только последние значения параметров состояния системы; они записываются в вектор-строку xFinal, которую можно либо вывести в командном окне Matlab, либо использовать в качестве описания исходного состояния системы для последующих сеансов моделирования; имя xFinal также может быть изменено разработчиком модели;
Поле Save options (опции записи) позволяет задать ограничения на число строк матрицы xout (Limit rows to last), а также дополнительно указать необходимость «прореживания» (Decimation) регистрируемых состояний системы. Имеется в виду следующее. Если значение опции Decimation равно 1, то регистрация производится для всех моментов времени, заданных в поле Output options на вкладке Solver, если Decimation = 2, то регистрируется только каждое второе состояние системы, при Decimation = 3 - только каждое третье состояние и т. д.
В связи с этим необходимо подчеркнуть, что параметры, задаваемые в поле Output options на вкладке Solver и параметры, задаваемые в поле Save options на вкладке Workspace I/O, взаимосвязаны. Объем регистрируемой информации определяется выбранным сочетанием значений указанных параметров.
Например, если в поле Output options указано, что состояние системы должно регистрироваться в моменты времени [1, 5, 9, 11, 25], а в поле Save options заданы:
Limit rows to last: 4; Decimation: 2, то в матрице xout будут записаны состояния системы в моменты времени t=5 и t= 11.
Вкладка Diagnostics позволяет изменять номенклатуру диагностических сообщений, выводимых Simulink'ом в командном окне Matlab.
Указанные действия выполняются с помощью списка событий (Events), требующих реакции Simulink, и элементов управления. Переключатели в поле Action (Действие) становятся доступными, если в списке Events выбрано одно из событий. С помощью данных переключателей можно указать один из видов реакции на событие:
None - игнорировать;
Warning - выдать предупреждение;
Error - выдать сообщение об ошибке.
В поле Debugging (Отладка) можно
дополнительно установить опцию порядок проверки согласованности компонент
модели {Consistency
checking) и идентификацию пересечения сигналом нулевого уровня (Disable zero crossing detection).
В данном разделе меню пользователя собраны команды, позволяющие изменить внешнее представление (оформление) блок-диаграммы. По предназначению команды разделены на четыре группы.
Первую группу образуют команды, действие которых распространяется на выделенный блок (или группу блоков):
Font... - выбор шрифта для текстовой информации, выводимой на иконке блока, и для метки (имени) блока;
Flip Name - изменить положение имени блока (над или под иконой);
Hide Name/Show Name - скрыть/показать имя блока;
Flip Block - развернуть иконку блока относительно вертикальной, оси симметрии на 180°;
Rotate Block - повернуть иконку блока относительно вертикальной оси симметрии на 90° (по часовой стрелке);
Show/Hide Drop Shadow - показать/скрыть «тень».
Ко второй группе отнесена единственная команда - Hide/Show Port Labels - скрыть/показать метки портов блока; данная команда применима только к блокам-подсистемам (Subsystem), содержащим внутренние входные или выходные порты, то есть блоки In и Out; если такие блоки имеются в подсистеме, то их метки по умолчанию выводятся на иконке блока-подсистемы.
Третью группу образуют команды изменения цветовой палитры блок-диаграммы:
Foreground Color - выбор цвета контура и символов на иконке выделенного блока (группы блоков);
Background Color - выбор цвета фона иконки выделенного блока (группы блоков);
Screen Color - выбор цвета фона блок-диаграммы.
При выборе любой из этих трех команд на экране появляется список цветов, с помощью которого можно выполнить назначение.
Команды четвертой группы позволяют изменять некоторые параметры линий связи блок-диаграммы:
Sample Time Colors - «подсветка» линий связи, соединяющих блоки, работа которых зависит от величины шага модельного времени; при выполнении данной команды соответствующие линии связи (и сами блоки) выделяются на блок-диаграмме красным цветом;
Wide Vector Lines - линии связи, по которым передаются векторные величины, выводятся более «жирными»;
Line Widths - для всех линий связи выводится в цифровой форма «ширина» передаваемого сигнала (то есть число элементов соответствующего вектора), для скалярных сигналов «ширина» равна 1.