1. Общие сведения 5 2. Запуск Simulink 5 3. Обозреватель разделов библиотеки Simulink 6 4. Создание модели 8 5. Окно модели 10 6. Основные приемы подготовки и редактирования модели 11 6.1. Добавление текстовых надписей 11 6.2. Выделение объектов 12 6.3. Копирование и перемещение объектов в буфер промежуточного хранения 12 6.4. Вставка объектов из буфера промежуточного хранения 12 6.5. Удаление объектов 12 6.6. Соединение блоков 13 6.7. Изменение размеров блоков 14 6.8. Перемещение блоков 14 6.9. Использование команд Undo и Redo 14 6.10. Форматирование объектов 14 7. Установка параметров расчета и его выполнение 15 7.1. Установка параметров расчета модели 15 7.1.1. Simulation time (Интервал моделирования или время расчета) 15 7.1.2. Solver options (Параметры расчета) 15 7.1.3. Output options (Параметры вывода) 16 7.2. Установка параметров обмена с рабочей областью 16 7.3. Установка параметров диагностирования модели 18 7.4. Выполнение расчета 19 8. Завершение работы 19 9. Библиотека блоков Simulink 19 9.1. Sources - источники сигналов 19 9.1.1. Источник постоянного сигнала Constant 19 9.1.2. Источник синусоидального сигнала Sine Wave 20 9.1.3. Источник линейно изменяющегося воздействия Ramp 21 9.1.4. Генератор ступенчатого сигнала Step 22 9.1.5. Генератор сигналов Signal Generator 23 9.1.6. Источник случайного сигнала с равномерным распределением Uniform Random Number 23 9.1.7. Источник случайного сигнала с нормальным распределением Random Number 24 9.1.8. Источник импульсного сигнала Pulse Generator 24 9.1.9. Генератор линейно-изменяющейся частоты Chirp Generator 25 9.1.10. Генератор белого шума Band-Limited White Noice 25 9.1.11. Источник временного сигнала Clock 26 9.1.12. Цифровой источник времени Digital Clock 27 9.1.13. Блок считывания данных из файла From File 27 9.1.14. Блок считывания данных из рабочего пространства From Workspace 28 9.1.15. Блок сигнала нулевого уровня Ground 29 9.1.16. Блок периодического сигнала Repeating Sequence 29 9.1.17. Блок входного порта Inport 30 9.2. Sinks - приемники сигналов 31 9.2.1. Осциллограф Scope 31 9.2.2. Осциллограф Floating Scope 36 9.2.3. Графопостроитель ХУ Graph 37 9.2.4. Цифровой дисплей Display 38 9.2.5. Блок остановки моделирования Stop Simulation 39 9.2.6. Блок сохранения данных в файле То File 40 9.2.7. Блок сохранения данных в рабочей области То Workspace 40 9.2.8. Концевой приемник Terminator 41 9.2.9. Блок выходного порта Outport 41 9.3. Continuous – аналоговые блоки 43 9.3.1. Блок вычисления производной Derivative 43 9.3.2. Интегрирующий блок lntegrator 44 9.3.3. Блок Memory 48 9.3.4. Блок фиксированной задержки сигнала Transport Delay 49 9.3.5. Блок управляемой задержки сигнала Variable Transport Delay 50 9.3.6 Блок передаточной функции Transfer Fcn 51 9.3.7. Блок передаточной функции Zero-Pole 53 9.3.8. Блок модели динамического объекта State-Space 54 9.4. Discrete – дискретные блоки 55 9.4.1. Блок единичной дискретной задержки Unit Delay 55 9.4.2. Блок экстраполятора нулевого порядка Zero-Order Hold 56 9.4.3. Блок экстраполятора первого порядка First-Order Hold 57 9.4.4. Блок дискретного интегратора Discrete-Time Integrator 57 9.4.5. Дискретная передаточная функция Discrete Transfer Fсn 59 9.4.6. Блок дискретной передаточной функции Discrete Zero-Pole 60 9.4.7. Блок дискретного фильтра Discrete Filter 61 9.4.8. Блок модели динамического объекта Discrete State-Space 62 9.5. Nonlinear - нелинейные блоки 63 9.5.1. Блок ограничения Saturation 63 9.5.2. Блок с зоной нечувствительности Dead Zone 64 9.5.3. Релейный блок Relay 65 9.5.4. Блок ограничения скорости изменения сигнала Rate Limiter 66 9.5.5. Блок квантования по уровню Quantizer 67 9.5.6. Блок сухого и вязкого трения Coulomb and Viscous Friction 68 9.5.7. Блок люфта Backlash 69 9.5.8. Блок переключателя Switch 70 9.5.9. Блок многовходового переключателя Multiport Switch 71 9.5.10. Блок ручного переключателя Manual Switch 72 9.6. Math – блоки математических операций 73 9.6.1. Блок вычисления модуля Abs 73 9.6.2. Блок вычисления суммы Sum 74 9.6.3. Блок умножения Product 75 9.6.4. Блок определения знака сигнала Sign 76 9.6.5. Усилители Gain и Matrix Gain 77 9.6.6. Ползунковый регулятор Slider Gain 79 9.6.7. Блок скалярного умножения Dot Product 80 9.6.8. Блок вычисления математических функций Math Function 80 9.6.9. Блок вычисления тригонометрических функций Trigonometric Function 82 9.6.10. Блок вычисления действительной и (или) мнимой части комплексного числа Complex to Real-Imag 82 9.6.11. Блок вычисления модуля и (или) аргумена комплексного числа Complex to Magnitude-Angle 83 9.6.12. Блок вычисления комплексного числа по его действительной и мнимой части Real-Imag to Complex 84 9.6.13. Блок вычисления комплексного числа по его модулю и аргументу Magnitude-Angle to Complex 85 9.6.14. Блок определения минимального или максимального значения MinMax 85 9.6.15. Блок округления числового значения Rounding Function 86 9.6.16. Блок вычисления операции отношения Relational Operator 87 9.6.17. Блок логических операций Logical Operation 88 9.6.18. Блок побитовых логических операций Birwise Logical Operator 89 9.6.19. Блок комбинаторной логики Gombinatorical Logic 90 9.6.20. Блок алгебраического контура Algebraic Constraint 91 9.7. Signal&Systems - блоки преобразования сигналов и вспомогательные блоки 92 9.7.1. Мультиплексор (смеситель) Mux 92 9.7.2. Демультиплексор (разделитель) Demux 93 9.7.3. Блок шинного формирователя Bus Creator 95 9.7.4. Блок шинного селектора Bus Selector 96 9.7.5. Блок селектора Selector 97 9.7.6. Блок присвоения новых значений элементам массива Assignment 98 9.7.7. Блок объединения сигналов Merge 99 9.7.8. Блок объединения сигналов в матрицу Matrix Concatenation 100 9.7.9. Блок передачи сигнала Goto 101 9.7.10. Блок приема сигнала From 102 9.7.11. Блок признака видимости сигнала Goto Tag Visibility 102 9.7.12. Блок создания общей области памяти Data Store Memory 103 9.7.13. Блок записи данных в общую область памяти Data Store 103 9.7.14. Блок считывания данных из общей области памяти Data Store 103 9.7.15. Блок преобразования типа сигнала Data Type Conversion 104 9.7.16. Блок преобразования размерности сигнала Reshape 105 9.7.17. Блок определения размерности сигнала Width 105 9.7.18. Блок определения момента пересечения порогового значения Hit Crossing 106 9.7.19. Блок установки начального значения сигнала IC 107 9.7.20. Блок проверки сигнала Signal Specification 107 9.7.21. Датчик свойств сигнала Probe 108 9.7.22. Блок, задающий количество итераций Function-Call Generator 109 9.7.23. Информационный блок Model Info 110 9.8. Function & Tables – блоки функций и таблиц 111 9.8.1. Блок задания функции Fcn 111 9.8.2. Блок задания функции MATLAB Fcn 112 9.8.3. Блок задания степенного многочлена Polynomial 113 9.8.4. Блок одномерной таблицы Look-Up Table 113 9.8.5. Блок двумерной таблицы Look-Up Table(2D) 114 9.8.6. Блок многомерной таблицы Look-Up Table (n-D) 115 9.8.7. Блок таблицы с прямым доступом Direct Loop-Up Table (n-D) 116 9.8.8. Блок работы с индексами PreLook-Up Index Search 117 9.8.9. Блок интерполяции табличной функции Interpolation (n-D) using PreLook-Up 118 9.9. Subsystem – подсистемы 119 9.9.1. Виртуальная и монолитная подсистемы Subsystem и Atomic Subsystem 121 9.9.2. Управляемая уровнем сигнала подсистема Enabled Subsystem 121 9.9.3. Управляемая фронтом сигнала подсистема Triggered Subsystem 123 9.9.4. Управляемая уровнем и фронтом сигнала подсистема Enabled and Triggered Subsystem 124 9.9.5. Управляемая S-функцией подсистема Function-call subsystem 125 9.9.6. Блок условного оператора If 125 9.9.7. Блок переключателя Switch Case 126 9.9.8. Управляемая по условию подсистема Action Subsystem 127 9.9.9. Управляемая подсистема For Iterator Subsystem 127 9.9.10. Управляемая подсистема While Iterator Subsystem 129 9.9.11. Конфигурируемая подсистема Configurable Subsystem 130 9.10. Маскирование подсистем 131 9.10.1. Общие сведения 131 9.10.2. Создание окна параметров 132 9.10.3. Создание пиктограммы подсистемы 136 9.10.3.1. Команды вывода текста 137 9.10.3.2. Команды построения графиков 138 9.10.3.3. Команды отображения передаточных функций 139 9.10.3.4. Команды отображения рисунка из графического файла 139 9.10.3.5. Использование редактора пиктограмм iconedit 140 9.10.3.6. Создание автоматически обновляемых пиктограмм 141 9.10.4. Создание справки маскированной подсистемы 142 9.10.5. Создание динамически обновляемых окон диалога 144 9.10.6. Управление портами маскированной подсистемы 146 10. Редактор дифференциальных уравнений DEE 150 11. Использование Simulink LTI-Viewer для анализа динамических систем 153 11.1. Работа с Simulink LTI-Viewer 153 11.2. Настройка с Simulink LTI-Viewer 156 11.3. Экспорт модели 159 12. Основные команды MATLAB для управления Simulink-моделью 160 12.1. add_block 160 12.2. add_line 161 12.3. add_param 161 12.4. bdclose 161 12.5. bdroot 162 12.6. close_system 162 12.7. delete_block 162 12.8. delete_line 163 12.9. delete_param 163 12.10. gcb 163 12.11. gcs 163 12.12. find_system 164 12.13. get_param 166 12.14. new_system 167 12.15. open_system 167 12.16. replace_block 167 12.17. save_system 168 12.18. set_param 168 12.19. simulink 169 13. Отладчик Simulink моделей 169 13.1. Графический интерфейс отладчика Simulink моделей 169 13.1.1. Панель инструментов 170 13.1.2. Список контрольных точек Break/Display points 171 13.1.3. Панель задания точек прерывания по условию Break on conditions 171 13.1.4. Главное окно отладчика 173 14. Повышение скорости и точности расчетов 177 14.1. Повышение скорости расчета 178 14.2. Повышение точности расчета 179 15. Обзор набора инструментов Simulink Performance Tools 179 15.1. Simulink Accelerator 180 15.2. Simulink Model Profiling 180 15.3. Simulink Model Coverage 181 15.4. Simulink Model Differencing 182 16. Simulink-функции 183 16.1. Блок S-function 184 16.2. Математическое описание S-функции 184 16.3. Этапы моделирования 185 16.4. Callback-методы S-функции 185 16.5. Основные понятия S-функции 186 16.6. Создание S-функций на языке MATLAB 187 16.7. Примеры S-функций языке MATLAB 193 16.7.1. Простейшая S-функция 193 16.7.2. Модель непрерывной системы 195 16.7.3. Модель дискретнойной системы 198 16.7.4. Модель гибридной системы 202 16.7.5. Модель дискретной системы с переменным шагом расчета ???? 16.7.6. Непрерывная модель электродвигателя постоянного тока независимого возбуждения 206 16.7.6.1. Математическое описание ДПТ НВ 206 16.7.6.2. Пример S-функции для ДПТ НВ 208 16.8. Создание S-функций на языке C с помощью S-Function Builder 212 16.9. Модернизация S-функций, созданных с помощью S-Function Builder 221 16.10. Создание S-функций на языке Fortran 239 Приложение 1. Система меню обозревателя библиотек программы Simulink 244 Приложение 2. Система меню окна модели 245
1. Общие сведения
Программа Simulink является приложением к пакету MATLAB. При моделировании с использованием Simulink реализуется принцип визуального программирования, в соответствии с которым, пользователь на экране из библиотеки стандартных блоков создает модель устройства и осуществляет расчеты. При этом, в отличие от классических способов моделирования, пользователю не нужно досконально изучать язык программирования и численные методы математики, а достаточно общих знаний требующихся при работе на компьютере и, естественно, знаний той предметной области в которой он работает.
Simulinkявляется достаточно самостоятельным инструментом MATLABи при работе с ним совсем не требуется знать сам MATLABи остальные его приложения. С другой стороны доступ к функциям MATLABи другим его инструментам остается открытым и их можно использовать в Simulink.Часть входящих в состав пакетов имеет инструменты, встраиваемые в Simulink(например, LTI-Viewer приложения Control System Toolbox –пакета для разработки систем управления). Имеются также дополнительные библиотеки блоков для разных областей применения (например, Power System Blockset – моделирование электротехнических устройств, Digital Signal Processing Blockset – набор блоков для разработки цифровых устройств и т.д).
При работе с Simulinkпользователь имеет возможность модернизировать библиотечные блоки, создавать свои собственные, а также составлять новые библиотеки блоков.
При моделировании пользователь может выбирать метод решения дифференциальных уравнений, а также способ изменения модельного времени (с фиксированным или переменным шагом). В ходе моделирования имеется возможность следить за процессами, происходящими в системе. Для этого используются специальные устройства наблюдения, входящие в состав библиотеки Simulink. Результаты моделирования могут быть представлены в виде графиков или таблиц.
Преимущество Simulink заключается также в том, что он позволяет пополнять библиотеки блоков с помощью подпрограмм написанных как на языке MATLAB,так и на языках С + +, Fortran и Ada.
2. Запуск Simulink
Для запуска программы необходимо предварительно запустить пакет MATLAB.Основное окно пакета MATLABпоказано на Рис. 2.1. Там же показана подсказка появляющаяся в окне при наведении указателя мыши на ярлык Simulink в панели инструментов.
Рис 2.1. Основное окно программы MATLAB
После открытия основного окна программы MATLAB нужно запустить программу Simulink.Это можно сделать одним из трех способов:
· В командной строке главного окна MATLAB напечатать Simulink и нажать клавишу Enterна клавиатуре.
· Выполнить команду Open… в меню File и открыть файл модели (mdl - файл).
Последний вариант удобно использовать для запуска уже готовой и отлаженной модели, когда требуется лишь провести расчеты и не нужно добавлять новые блоки в модель. Использование первого и второго способов приводит к открытию окна обозревателя разделов библиотеки Simulink (рис. 2.2).
Рис 2.2. Окно обозревателя разделов библиотеки Simulink
3. Обозреватель разделов библиотеки Simulink
Окно обозревателя библиотеки блоков содержит следующие элементы (Рис. 2.2):
1. Заголовок, с названием окна – Simulink Library Browser.
2. Меню, с командами File, Edit, View, Help.
3. Панель инструментов, с ярлыками наиболее часто используемых команд.
4. Окно комментария для вывода поясняющего сообщения о выбранном блоке.
5. Список разделов библиотеки, реализованный в виде дерева.
6. Окно содержимого раздела библиотеки (список вложенных разделов библиотеки или блоков)
7. Строка состояния, содержащая подсказку по выполняемому действию.
На рис. 2.2 выделена основная библиотека Simulink (в левой части окна) и показаны ее разделы (в правой части окна).
Библиотека Simulinkсодержит следующие основные разделы:
1. Continuous – линейные блоки.
2. Discrete – дискретные блоки.
3. Functions & Tables – функции и таблицы.
4. Math – блоки математических операций.
5. Nonlinear –нелинейные блоки.
6. Signals & Systems– сигналы и системы.
7. Sinks - регистрирующие устройства.
8. Sources — источники сигналов и воздействий.
9. Subsystems – блоки подсистем.
Список разделов библиотеки Simulink представлен в виде дерева, и правила работы с ним являются общими для списков такого вида:
· Пиктограмма свернутого узла дерева содержит символ "+", а пиктограмма развернутого содержит символ "-".
· Для того чтобы развернуть или свернуть узел дерева, достаточно щелкнуть на его пиктограмме левой клавишей мыши (ЛКМ).
При выборе соответствующего раздела библиотеки в правой части окна отображается его содержимое (Рис. 3.1).
Рис 3.1. Окно обозревателя с набором блоков раздела библиотеки
Для работы с окном используются команды собранные в меню. Меню обозревателя библиотек содержит следующие пункты:
· File (Файл) — Работа с файлами библиотек.
· Edit (Редактирование)— Добавление блоков и их поиск (по названию).
· View (Вид) — Управление показом элементов интерфейса.
· Help (Справка) — Вывод окна справки по обозревателю библиотек.
Полный список команд меню обозревателя библиотек приведен в Приложении 1.
Для работы с обозревателем можно также использовать кнопки на панели инструментов (Рис.3.2).
Кнопки панели инструментов имеют следующее назначение:
1. Создать новую S-модель (открыть новое окно модели).
2. Открыть одну из существующих S-моделей.
3. Изменить свойства окна обозревателя. Данная кнопка позволяет установить режим отображения окна обозревателя "поверх всех окон”. Повторное нажатие отменяет такой режим.
4. Поиск блока по названию (по первым символам названия). После того как блок будет найден, в окне обозревателя откроется соответствующий раздел библиотеки, а блок будет выделен. Если же блок с таким названием отсутствует, то в окне комментария будет выведено сообщение Not found <имя блока> (Блок не найден).
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.4. После установки на схеме всех блоков из требуемых библиотек нужно выполнить соединение элементов схемы. Для соединения блоков необходимо указать курсором на “выход” блока, а затем, нажать и, не отпуская левую клавишу “мыши”, провести линию к входу другого блока. После чего отпустить клавишу. В случае правильного соединения изображение стрелки на входе блока изменяет цвет. Для создания точки разветвления в соединительной линии нужно подвести курсор к предполагаемому узлу и, нажав правую клавишу “мыши”, протянуть линию. Для удаления линии требуется выбрать линию (так же, как это выполняется для блока), а затем нажать клавишу Delete на клавиатуре. Схема модели, в которой выполнены соединения между блоками, показана на Рис. 4.4.
Рис 4.4. Схема модели
4.5. После составления расчетной схемы необходимо сохранить ее в виде файла на диске, выбрав пункт меню File/Save As... в окне схемы и указав папку и имя файла. Следует иметь в виду, что имя файла не должно превышать 32 символов, должно начинаться с буквы и не может содержать символы кириллицы и спецсимволы. Это же требование относится и к пути файла (к тем папкам, в которых сохраняется файл). При последующем редактировании схемы можно пользоваться пунктом меню Fille/Save. При повторных запусках программы SIMULINK загрузка схемы осуществляется с помощью менюFile/Open...в окне обозревателя библиотеки или из основного окна MATLAB.
5. Окно модели
Окно модели содержит следующие элементы (см. рис. 4.4):
1. Заголовок, с названием окна. Вновь созданному окну присваивается имя Untitledс соответствующим номером.
2. Меню с командами File, Edit, View и т.д.
3. Панель инструментов.
4. Окно для создания схемы модели.
5. Строка состояния, содержащая информацию о текущем состоянии модели.
Меню окна содержит команды для редактирования модели, ее настройки и управления процессом расчета, работы файлами и т.п.:
· File (Файл) — Работа с файлами моделей.
· Edit (Редактирование) — Изменение модели и поиск блоков.
· View (Вид) — Управление показом элементов интерфейса.
· Simulation (Моделирование)— Задание настроек для моделирования и управление процессом расчета.
· Format (Форматирование) — Изменение внешнего вида блоков и модели в целом.
· Tools (Инструментальные средства) — Применение специальных средств для работы с моделью (отладчик, линейный анализ и т.п.)
· Help (Справка)— Вывод окон справочной системы.
Полный список команд меню окна модели приведен в Приложении 2.
Для работы с моделью можно также использовать кнопки на панели инструментов (Рис.5.1).
Рис 5.1. Панель инструментов окна модели
Кнопки панели инструментов имеют следующее назначение:
1. New Model — Открыть новое (пустое) окно модели.
2. Open Model — Открыть существующий mdl-файл.
3. Save Model — Сохранить mdl-файл на диске.
4. Print Model — Вывод на печать блок-диаграммы модели.
5. Cut — Вырезать выделенную часть модели в буфер промежуточного хранения.
6. Copy — Скопировать выделенную часть модели в буфер промежуточного хранения.
7. Paste — Вставить в окно модели содержимое буфера промежуточного хранения.
11.Toggle Model Browser — Открыть окно обозревателя модели.
12.Go to parent system — Переход из подсистемы в систему высшего уровня иерархии (“родительсую систему”). Команда доступна только, если открыта подсистема.
13.Debug — Запуск отладчика модели.
14.Start/Pause/Continue Simulation — Запуск модели на исполнение (команда Start); после запуска модели на изображении кнопки выводится символ , и ей соответствует уже команда Pause (Приостановить моделирование); для возобновления моделирования следует щелкнуть по той же кнопке, поскольку в режиме паузы ей соответствует команда Continue (Продолжить).
15.Stop — Закончить моделирование. Кнопка становится доступной после начала моделирования, а также после выполнения команды Pause.
16. Normal/Accelerator — Обычный/Ускоренный режим расчета. Инструмент доступен, если установлено приложение Simulink Performance Tool.
В нижней части окна модели находится строка состояния, в которой отображаются краткие комментарии к кнопкам панели инструментов, а также к пунктам меню, когда указатель мыши находится над соответствующим элементом интерфейса. Это же текстовое поле используется и для индикации состояния Simulink: Ready (Готов) или Running (Выполнение). В строке состояния отображаются также:
· масштаб отображения блок-диаграммы (в процентах, исходное значение равно 100%),
· индикатор степени завершенности сеанса моделирования (появляется после запуска модели),
· текущее значения модельного времени (выводится также только после запуска модели),
· используемый алгоритм расчета состояний модели (метод решения).
6. Основные приемы подготовки и редактирования модели