12707

Simulink: Инструмент моделирования динамических систем

Книга

Информатика, кибернетика и программирование

И.В.Черных. Simulink: Инструмент моделирования динамических систем. Содержание 1. Общие сведения 52. Запуск Simulink 53. Обозреватель разделов библиотеки Simulink 64. Создание модели 85. Окно модели 106. Основные приемы подготовки и редактирования модели 11 6.1. Добавление текстовых надпис...

Русский

2013-05-03

3.66 MB

224 чел.

И.В.Черных. Simulink: Инструмент моделирования динамических систем.

Содержание

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. Это можно сделать одним из трех способов:

  •  Нажать кнопку (Simulink)на панели инструментов командного окна MATLAB.
  •  В командной строке главного окна 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  линейные блоки.
    1.  Discrete  дискретные блоки.
    2.  Functions & Tables  функции и таблицы.
    3.  Math – блоки математических операций.
    4.  Nonlinear – нелинейные блоки.
    5.  Signals & Systems – сигналы и системы.
    6.  Sinks - регистрирующие устройства.
    7.  Sources — источники сигналов и воздействий.
    8.  Subsystems – блоки подсистем.

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

  •  Пиктограмма свернутого узла дерева содержит символ "+", а пиктограмма развернутого содержит символ "-".
  •  Для того чтобы развернуть или свернуть узел дерева, достаточно щелкнуть на его пиктограмме левой клавишей мыши (ЛКМ).

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

Рис 3.1. Окно обозревателя с набором блоков раздела библиотеки

Для работы с окном используются команды собранные в меню. Меню обозревателя библиотек содержит следующие пункты:

  •  File (Файл) — Работа с файлами библиотек.
  •  Edit (Редактирование) — Добавление блоков и их поиск (по названию).
  •  View (Вид) — Управление показом элементов интерфейса.
  •  Help (Справка) — Вывод окна справки по обозревателю библиотек.

Полный список команд меню обозревателя библиотек приведен в Приложении 1.

Для работы с обозревателем можно также использовать кнопки на панели инструментов (Рис.3.2).

Рис 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.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 — Вставить в окно модели содержимое буфера промежуточного хранения.
  8.  Undo — Отменить предыдущую операцию редактирования.
  9.  Redo — Восстановить результат отмененной операции редактирования.
  10.  Library Browser — Открыть окно обозревателя библиотек.
  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. Основные приемы подготовки и редактирования модели

6.1. Добавление текстовых надписей

Для повышения наглядности модели удобно использовать текстовые надписи. Для создания надписи нужно указать мышью место надписи и дважды щелкнуть левой клавишей мыши. После этого появится прямоугольная рамка с курсором ввода. Аналогичным образом можно изменить и подписи к блоками моделей.. На рис. 6.1 показаны текстовая надпись и изменение надписи в блоке передаточной функции. Следует иметь в виду, что рассматриваемая версия программы (Simulink 4) не адаптирована к использованию кириллических шрифтов, и применение их может иметь самые разные последствия: - отображение надписей в нечитаемом виде, обрезание надписей, сообщения об ошибках, а также невозможность открыть модель после ее сохранения. Поэтому, применение надписей на русском языке для текущей версии Simulink крайне не желательно.

Pис 6.1. Текстовая надпись и изменение надписи в Transfer Function

6.2. Выделение объектов

Для выполнения какого-либо действия с элементом модели (блоком, соединительной линией, надписью) этот элемент необходимо сначала выделить.

Выделение объектов проще всего осуществляется мышью. Для этого необходимо установить курсор мыши на нужном объекте и щелкнуть левой клавишей мыши. Произойдет выделение объекта. Об этом будут свидетельствовать маркеры по углам объекта (см. рис. 6.1). Можно также выделить несколько объектов. Для этого надо установить курсор мыши вблизи группы объектов, нажать левую клавишу мыши и, не отпуская ее, начать перемещать мышь. Появится пунктирная рамка, размеры которой будут изменяться при перемещении мыши. Все охваченные рамкой объекты становятся выделенными. Выделить все объекты также можно, используя команду Edit/Select All. После выделения объекта его можно копировать или перемещать в буфер промежуточного хранения, извлекать из буфера, а также удалять, используя стандартные приемы работы в Windows-программах.

6.3. Копирование и перемещение объектов в буфер промежуточного хранения

Для копирования объекта в буфер его необходимо предварительно выделить, а затем выполнить команду Edit/Copy или воспользоваться инструментом на панели инструментов.

Для вырезания объекта в буфер его необходимо предварительно выделить, а затем выполнить команду Edit/Cut или воспользоваться инструментом на панели инструментов. При выполнении данных операций следует иметь в виду, что объекты помещаются в собственный буфер MATLAB и недоступны из других приложений. Использование команды Edit/Copy model to Clipboard позволяет поместить графическое изображение модели в буфер Windows и, соответственно, делает его доступным для остальных программ.

Копирование можно выполнить и таким образом: нажать правую клавишу мыши, и не отпуская ее, переместить объект. При этом будет создана копия объекта, которую можно переместить в необходимое место.

6.4. Вставка объектов из буфера промежуточного хранения

Для вставки объекта из буфера необходимо предварительно указать место вставки, щелкнув левой клавишей мыши в предполагаемом месте вставки, а затем выполнить команду Edit/Paste или воспользоваться инструментом на панели инструментов.

6.5. Удаление объектов

Для удаления объекта его необходимо предварительно выделить, а затем выполнить команду Edit/Clear или воспользоваться клавишей Delete на клавиатуре. Следует учесть, что команда Clear удаляет блок без помещения его в буфер обмена. Однако эту операцию можно отменить командой меню File/Undo.

6.6. Соединение блоков

Для соединения блоков необходимо сначала установить курсор мыши на выходной порт одного из блоков. Курсор при этом превратится в большой крест из тонких линий (Рис. 6.2). Держа нажатой левую кнопку мыши, нужно переместить курсор ко входному порту нужного блока. Курсор мыши примет вид креста из тонких сдвоенных линий (Рис. 6.3). После создания линии необходимо отпустить левую клавишу мыши. Свидетельством того, что соединение создано, будет жирная стрелка у входного порта блока. Выделение линии производится точно также как и выделение блока – одинарным щелчком левой клавиши мыши. Черные маркеры, расположенные в узлах соединительной линии будут говорить о том, что линия выделена.

Рис 6.2. Начало создания соединения

Рис 6.3. Завершение создания соединения

Создание петли линии соединения выполняется также как перемещение блока. Линия соединения выделяется, и затем нужная часть линии перемещается. Рисунок 6.4 поясняет этот процесс.

Рис 6.4. Создание петли в соединительной линии

Удаление соединений выполняется также как и любых других объектов (см. п. 6.5).

6.7. Изменение размеров блоков

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

Рис. 6.5. Изменение размера блока

6.8. Перемещение блоков

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

6.9. Использование команд Undo и Redo

В процессе освоения программы пользователь может совершать действия кажущиеся ему необратимыми (например, случайное удаление части модели, копирование и т.д.). В этом случае следует воспользоваться командой Undo — отмена последней операции. Команду можно вызвать с помощью кнопки в панели инструментов окна модели или из меню Edit. Для восстановления отмененной операции служит команда Redo (инструмент ).

6.10. Форматирования объектов

В меню Format (также как и в контекстном меню, вызываемом нажатием правой клавиши мыши на объекте) находится набор команд форматирования блоков. Команды форматирования разделяются на несколько групп:

1. Изменение отображения надписей:

  •  Font — Форматирование шрифта надписей и текстовых блоков.
  •  Text alignment — Выравнивание текста в текстовых надписях.
  •  Flip name — Перемещение подписи блока.
  •  Show/Hide name — Отображение или скрытие подписи блока.

2.Изменение цветов отображения блоков:

  •  Foreground color — Выбор цвета линий для выделенных блоков.
  •  Background color — Выбор цвета фона выделенных блоков.
  •  Screen color — Выбор цвета фона для всего окна модели.

3. Изменение положения блока и его вида:

  •  Flip block – Зеркальное отображение относительно вертикальной оси симметрии.
  •  Rotate block – Поворот блока на 900 по часовой стрелке.
  •  Show drop shadow — Показ тени от блока.
  •  Show port labels — Показ меток портов.

4. Прочие установки:

  •  Library link display — Показ связей с библиотеками.
  •  Sample time colors — Выбор цвета блока индикации времени.
  •  Wide nonscalar lines — Увеличение/уменьшение ширины нескалярных линий.
  •  Signal dimensions — Показ размерности сигналов.
  •  Port data types — Показ данных о типе портов.
  •  Storage classКласс памяти. Параметр, устанавливаемый при работе Real-Time Workshop. 
  •  Execution order — Вывод порядкового номера блока в последовательности исполнения.

7. Установка параметров расчета и его выполнение

Перед выполнением расчетов необходимо предварительно задать параметры расчета. Задание параметров расчета выполняется в панели управления меню Simulation/Parameters. Вид панели управления приведен на Рис.7.1.

Рис 7.1. Панель управления

Окно настройки параметров расчета имеет 4 вкладки:

  •  Solver (Расчет) — Установка параметров расчета модели.
  •  Workspace I/O (Ввод/вывод данных в рабочую область) — Установка параметров обмена данными с рабочей областью MATLAB.
  •  Diagnostics (Диагностика) — Выбор параметров диагностического режима.
  •  Advanced (Дополнительно) — Установка дополнительных параметров.

Установка параметров расчета модели выполняется с помощью элементов управления, размещенных на вкладке Solver. Эти элементы разделены на три группы (рис. 7.1): Simulation time (Интервал моделирования или, иными словами, время расчета), Solver options (Параметры расчета), Output options (Параметры вывода).

7.1. Установка параметров расчета модели

7.1.1. Simulation time (Интервал моделирования или время расчета)

Время расчета задается указанием начального (Start time) и конечного (Stop time) значений времени расчета. Начальное время, как правило, задается равным нулю. Величина конечного времени задается пользователем исходя из условий решаемой задачи.

7.1.2. Solver options (Параметры расчета)

При выборе параметров расчета необходимо указать способ моделирования (Type) и метод расчета нового состояния системы. Для параметра Type доступны два варианта - c фиксированным (Fixed-step) или с переменным (Variable-step) шагом. Как правило, Variable-step используется для моделирования непрерывных систем, a Fixed-step - для дискретных.

Список методов расчета нового состояния системы содержит несколько вариантов. Первый вариант (discrete) используется для расчета дискретных систем. Остальные методы используются для расчета непрерывных систем. Эти методы различны для переменного (Variable-step) и для фиксированного (Fixed-step) шага времени, но, по сути, представляют собой процедуры решения систем дифференциальных уравнений. Подробное описание каждого из методов расчета состояний системы приведено во встроенной справочной системе MATLAB.

Ниже двух раскрывающихся списков Type находится область, содержимое которой меняется зависимости от выбранного способа изменения модельного времени. При выборе Fixed-step в данной области появляется текстовое поле Fixed-step size (величина фиксированного шага) позволяющее указывать величину шага моделирования (см. рис. 7.2). Величина шага моделирования по умолчанию устанавливается системой автоматически (auto). Требуемая величина шага может быть введена вместо значения auto либо в форме числа, либо в виде вычисляемого выражения (то же самое относится и ко всем параметрам устанавливаемым системой автоматически).

Рис 7.2. Вкладка Solver при выборе фиксированного шага расчета

При выборе Fixed-step необходимо также задать режим расчета (Mode). Для параметра Mode доступны три варианта:

  •  MultiTasking (Многозадачный) – необходимо использовать, если в модели присутствуют параллельно работающие подсистемы, и результат работы модели зависит от временных параметров этих подсистем. Режим позволяет выявить несоответствие скорости и дискретности сигналов, пересылаемых блоками друг другу.
  •  SingleTasking (Однозадачный) - используется для тех моделей, в которых недостаточно строгая синхронизация работы отдельных составляющих не влияет на конечный результат моделирования.
  •  Auto (Автоматический выбор режима) - позволяет Simulink автоматически устанавливать режим MultiTasking для тех моделей, в которых используются блоки с различными скоростями передачи сигналов и режим SingleTasking для моделей, в которых содержатся блоки, оперирующие одинаковыми скоростями.

При выборе Variable-step в области появляются поля для установки трех параметров:

  •  Мах step size - максимальный шаг расчета. По умолчанию он устанавливается автоматически (auto) и его значение в этом случае равно (SfopTimeStartTime)/50. Довольно часто это значение оказывается слишком большим, и наблюдаемые графики представляют собой ломаные (а не плавные) линии. В этом случае величину максимального шага расчета необходимо задавать явным образом.
  •  Мin step size - минимальный шаг расчета.
  •  Initial step size - начальное значение шага моделирования.

При моделировании непрерывных систем с использованием переменного шага необходимо указать точность вычислений: относительную (Relative tolerance) и абсолютную (Absolute tolerance). По умолчанию они равны соответственно 10-3 и auto.

7.1.3. Output options (Параметры вывода)

В нижней части вкладки Solver задаются настройки параметров вывода выходных сигналов моделируемой системы (Output options). Для данного параметра возможен выбор одного из трех вариантов:

  •  Refine output (Скорректированный вывод) – позволяет изменять дискретность регистрации модельного времени и тех сигналов, которые сохраняются в рабочей области MATLAB с помощью блока То Workspace. Установка величины дискретности выполняется в строке редактирования Refine factor, расположенной справа. По умолчанию зна чение Refine factor равно 1, это означает, что регистрация производится с шагом D t = 1 (то есть для каждого значения модельного времени:). Если задать Refine factor равеным 2, это означает, что будет регистрироваться каждое второе значение сигналов, 3 - каждое третье т. д. Параметр Refine factor может принимать только целые положительные значения
  •  Produce additional output (Дополнительный вывод) — обеспечивает дополнительную регистрацию параметров модели в заданные моменты времени; их значения вводятся в строке редактирования (в этом случае она называется Output times) в виде списка, заключенного в квадратные скобки. При использовании этого варианта базовый шаг регистрации (D t) равен 1. Значения времени в списке Output times могут быть дробными числами и иметь любую точность.
  •  Produce specified output only (Формировать только заданный вывод) — устанавливает вывод параметров модели только в заданные моменты времени, которые указываются в поле Output times (Моменты времени вывода).

7.2. Установка параметров обмена с рабочей областью

Элементы, позволяющие управлять вводом и выводом в рабочую область MATLAB промежуточных данных и результатов моделирования, расположены на вкладке Workspace I/O (рис. 7.3).

Рис 7.3. Вкладка Workspace I/O диалогового окна установки параметров моделирования

Элементы вкладки разделены на 3 поля:

  •  Load from workspace (Загрузить из рабочей области). Если флажок Input (Входные данные) установлен, то в расположенном справа текстовом поле можно ввести формат данных, которые будут считываться из рабочей области MATLAB. Установка флажка Initial State (Начальное состояние) позволяет ввести в связанном с ним текстовом поле имя переменной, содержащей параметры начального состояния модели. Данные, указанные в полях Input и Initial State, передаются в исполняемую модель посредством одного или более блоков In (из раздела библиотеки Sources).
  •  Save to workspace (Записать в рабочую область) – Позволяет установить режим вывода значений сигналов в рабочую область MATLAB и задать их имена.
  •  Save options (Параметры записи) – Задает количество строк при передаче переменных в рабочую область. Если флажок Limit rows to last установлен, то в поле ввода можно указать количество передаваемых строк (отсчет строк производится от момента завершения расчета). Если флажок не установлен, то передаются все данные. Параметр Decimation (Исключение) задает шаг записи переменных в рабочую область (аналогично параметру Refine factor вкладки Solver). Параметр Format (формат данных) задает формат передаваемых в рабочую область данных. Доступные форматы Array (Массив), Structure (Структура), Structure With Time (Структура с дополнительным полем – “время”).

7.3. Установка параметров диагностирования модели

Вкладка Diagnostics (рис. 7.4) позволяет изменять перечень диагностических сообщений, выводимых Simulink в командном окне MATLAB, а также устанавливать дополнительные параметры диагностики модели.

Сообщения об ошибках или проблемных ситуациях, обнаруженных Simulink в ходе моделирования и требующих вмешательства разработчика выводятся в командном окне MATLAB. Исходный перечень таких ситуаций и вид реакции на них приведен в списке на вкладке Diagnostics. Разработчик может указать вид реакции на каждое из них, используя группу переключателей в поле Action (они становятся доступны, если в списке выбрано одно из событий):

  •  None — игнорировать,
  •  Warning -— выдать предупреждение и продолжить моделирование,
  •  Error — выдать сообщение об ошибке и остановить сеанс моделирования.

Выбранный вид реакции отображается в списке рядом с наименованием события.

Рис 7.4. Вкладка Diagnostics окна установки параметров моделирования

7.4. Выполнение расчета

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

8. Завершение работы

Для завершения работы необходимо сохранить модель в файле, закрыть окно модели, окно обозревателя библиотек, а также основное окно пакета MATLAB.

9. Библиотека блоков Simulink

9.1. Sources - источники сигналов

9.1.1. Источник постоянного сигнала Constant

Назначение:
Задает постоянный по уровню сигнал.

Параметры:

1. Constant value - Постоянная величина.

2. Interpret vector parameters as 1-D – Интерпретировать вектор параметров как одномерный (при установленном флажке). Данный параметр встречается у большинства блоков библиотеки Simulink. В дальнейшем он рассматриваться не будет.

Значение константы может быть действительным или комплексным числом, вычисляемым выражением, вектором или матрицей.

Рис. 9.1.1 иллюстрирует применение этого источника и измерение его выходного сигнала с помощью цифрового индикатора Display.

Рис. 9.1.1. Источник постоянного воздействия Constant

[Скачать пример]

9.1.2. Источник синусоидального сигнала Sine Wave

Назначение:
Формирует синусоидальный сигнал с заданной частотой, амплитудой, фазой и смещением.

Для формирования выходного сигнала блоком могут использоваться два алгоритма. Вид алгоритма определяется параметром Sine Type (способ формирования сигнала):

Time-based – По текущему времени.

Sample-based – По величине шага модельного времени.

9.1.2.1. Формирование выходного сигнала по текущему значению времени для непрерывных систем

Выходной сигнал источника в этом режиме соответствует выражению:

y = Amplitude* sin(frequency* time + phase) + bias.

Параметры:

Amplitude - Амплитуда.

Bias – Постоянная составляющая сигнала.

Frequency (rads/sec) - Частота (рад/с).

Phase (rads) - Начальная фаза (рад).

Sample time – Шаг модельного времени. Используется для согласования работы источника и других компонентов модели во времени. Параметр может принимать следующие значения:

0 (по умолчанию) – Используется при моделировании непрерывных систем.

> 0 (положительное значение) – Задается при моделировании дискретных систем. В этом случае шаг модельного времени можно интерпретировать как шаг квантования по времени выходного сигнала.

-1 – Шаг модельного времени устанавливается таким же, как и в предшествующем блоке, т.е. блоке, откуда приходит сигнал в данный блок. Этот параметр может задаваться для большинства блоков библиотеки Simulink. В дальнейшем он рассматриваться не будет. 

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

9.1.2.2. Формирование выходного сигнала по текущему значению времени для дискретных систем

Алгоритм определения значения выходного сигнала источника для каждого последующего шага расчета определяется выражением (в матричной форме):

,

где Dt – постоянная величина, равная значению Sample time.

В данном режиме ошибка округления для больших значений времени также уменьшает точность расчета.

9.1.2.3. Формирование выходного сигнала по величине модельного времени и количеству расчетных шагов на один период

Выходной сигнал источника в этом режиме соответствует выражению:

y= Amplitude* sin[(k + Number of offset samples) / Samples per period] + bias ,

где k – номер текущего шага расчета.

Параметры:

Amplitude - Амплитуда.

Bias – Постоянная составляющая сигнала.

Samples per period – Количество расчетных шагов на один период синусоидального сигнала:
Samples per period = 2p / (frequency* Sample time)

Number of offset samples Начальная фаза сигнала. Задается количеством шагов модельного времени:
Number of offset samples = Phase* Samples per period/ (2p).

Sample time – Шаг модельного времени.

В данном режиме ошибка округления не накапливается, поскольку Simulink начинает отсчет номера текущего шага с нуля для каждого периода.

На Рис. 9.1.2 показано применение блока с разными значениями шага модельного времени (Sample time = 0 для блока Sine Wave 1и Sample time = 0.1 для блока Sine Wave 2). Для отображения графиков выходных сигналов в модели использован виртуальный осциллограф (Scope).

Рис. 9.1.2. Блок Sine Wave

[Скачать пример]

9.1.3. Источник линейно изменяющегося воздействия Ramp

Назначение:
Формирует линейный сигнал вида
y = Slope* time + Initial value.

Параметры:

1. Slope — Скорость изменения выходного сигнала.

2. Start time — Время начала формирования сигнала.

3. Initial value — Начальный уровень сигнала на выходе блока.

На Рис. 9.1.3. показано использование данного блока.

Рис. 9.1.3. Блок Ramp

[Скачать пример]

9.1.4. Генератор ступенчатого сигнала Step

Назначение:
Формирует ступенчатый сигнал.

Параметры:

Step time - Время наступления перепада сигнала (с).

Initial value - Начальное значение сигнала.

Final value - Конечное значение сигнала.

Перепад может быть как в большую сторону (конечное значение больше чем начальное), так и в меньшую (конечное значение меньше чем начальное). Значения начального и конечного уровней могут быть не только положительными, но и отрицательными (например, изменение сигнала с уровня –5 до уровня –3).

На Рис. 9.1.4. показано использование генератора ступенчатого сигнала.

Рис. 9.1.4. Блок Step

[Скачать пример]

9.1.5. Генератор сигналов Signal Generator 

Назначение:
Формирует один из четырех видов периодических сигналов:

sine — Синусоидальный сигнал.

square — Прямоугольный сигнал.

sawtooth — Пилообразный сигнал.

random — Случайный сигнал.

Параметры:

Wave form – Вид сигнала.

Amplitude – Амплитуда сигнала.

Frequency - Частота (рад/с).

Units – Единицы измерения частоты. Может принимать два значения:
-
Hertz - Гц.

- rad/sec – рад/с.

На Рис. 9.1.5. показано применение этого источника при моделировании прямоугольного сигнала.

Рис. 9.1.5. Блок генератора сигналов

[Скачать пример]

9.1.6. Источник случайного сигнала с равномерным распределением Uniform Random Number

Назначение:
Формирование случайного сигнала с равномерным распределением.

Параметры : 

Minimum – Минимальный уровень сигнала.

Maximum – Максимальный уровень сигнала.

Initial seed – Начальное значение.

Пример использования блока и график его выходного сигнала представлен на Рис. 9.1.6.

Рис. 9.1.6. Источник случайного сигнала с равномерным распределением

[Скачать пример]

9.1.7. Источник случайного сигнала с нормальным распределением Random Number 

Назначение:
Формирование случайного сигнала с нормальным распределением уровня сигнала.

Параметры:

Mean - Среднее значение сигнала

Variance- Дисперсия (среднеквадратическое отклонение).

Initial seed – Начальное значение.

Рис. 9.1.7. Источник случайного сигнала с нормальным распределением

[Скачать пример]

9.1.8. Источник импульсного сигнала Pulse Generator

Назначение:
Формирование прямоугольных импульсов.

Параметры:

Pulse Type – Способ формирования сигнала. Может принимать два значения:
-
Time-based – По текущему времени.
-
Sample-based – По величине модельного времени и количеству расчетных шагов.

Amplitude — Амплитуда.

Period — Период. Задается в секундах для Time-based Pulse Type или в шагах модельного времени для Sample-based Pulse Type.

Pulse width — Ширина импульсов. Задается в в % по отношению к периоду для Time-based Pulse Type или в шагах модельного времени для Sample-based Pulse Type.

Phase delay — Фазовая задержка. Задается в секундах для Time-based Pulse Type или в шагах модельного времени для Sample-based Pulse Type. 

Sаmple time — Шаг модельного времени. Задается для Sample-based Pulse Type.

Пример использования Pulse Generator показан на рис. 9.1.8.

Рис. 9.1.8. Источник прямоугольных импульсов

[Скачать пример]

9.1.9. Генератор линейно-изменяющейся частоты Chirp Generator

Назначение:
Формирование синусоидальных колебаний, частота которых линейно изменяется.

Параметры: 

Initial frequence — Начальная частота (Гц);

Target time — Время изменения частоты (с);

Frequence at target time — Конечное значение частоты (Гц).

Пример использования блока показан на Рис. 9.1.9.

Рис. 9.1.9. Генератор линейно-изменяющейся частоты

[Скачать пример]

9.1.10. Генератор белого шума Band-Limited White Noice

Назначение:
Создает сигнал заданной мощности, равномерно распределенной по частоте.

Параметры:

Noice Power – Мощность шума.

Sample Time – Модельное время.

Seed - Число, необходимое для инициализации генератора случайных чисел.

Рис. 9.1.10 показывает работу этого генератора.

Рис. 9.1.10. Генератор белого шума

[Скачать пример]

9.1.11. Источник временного сигнала Clock

Назначение:
Формирует сигнал, величина которого на каждом шаге расчета равна текущему времени моделирования.

Параметры

Decimation - Шаг, с которым обновляются показания времени на изображении источника (в том случае, если установлен флажок параметра Display time). Параметр задается как количество шагов расчета. Например, если шаг расчета модели в окне диалога Simulation parameters установлен равным 0.01 с, а параметр Decimation блока Clock задан равным 1000, то обновление показаний времени будет производиться каждые 10 с модельного времени.

Display time - Отображение значения времени в блоке источника.

На рис. 9.1.11 показан пример работы данного источника.

Рис. 9.1.11. Источник временного сигнала

[Скачать пример]

9.1.12. Цифровой источник времени Digital Clock

Назначение:
Формирует дискретный временной сигнал.

Параметр:

Sample time – Шаг модельного времени (с).

На Рис. 9.1.12 показана работа источника Digital Clock.

Рис. 9.1.12. Цифровой источник временного сигнала

[Скачать пример]

9.1.13. Блок считывания данных из файла From File

Назначение:
Получение данных из внешнего файла.

Параметры:

File Name - Имя файла с данными.

Sample time - Шаг изменения выходного сигнала блока.

Данные в файле должны быть представлены в виде матрицы:

.

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

Файл данных (mat-файл), из которого считываются значения, не является текстовым. Структура файла подробно описана в справочной системе MATLAB. Пользователям Simulink удобнее всего создавать mat-файл с помощью блока To File (библиотека Sinks). На рис. 9.1.13 показан пример использования данного блока. Из файла data.mat считываются значения синусоидального сигнала.

Рис. 9.1.13. Блок From File

[Скачать пример]

9.1.14. Блок считывания данных из рабочего пространства From Workspace

Назначение:
Получение данных из рабочего пространства MATLAB.

Параметры:

Data – Имя переменной (матрицы или структуры) содержащей данные.

Sample time - Шаг изменения выходного сигнала блока.

Interpolate data — Интерполяция данных для значений модельного времени не совпадающих со значениями в переменной Data.

Form output after final data value by – Вид выходного сигнала по окончании значений времени в переменной Data:
-
Extrapolate – Линейная экстраполяция сигналов.
-
SettingToZero – Нулевые значения сигналов.
-
HoldingFinalValue – Выходные значения сигналов равны последним значениям.
-
CyclicRepetition – Циклическое повторение значений сигналов. Данный вариант может использоваться, только если переменная Data имеет формат Structure without time.

На рис. 9.1.14 показан пример использования данного блока. Данные в переменную simin рабочей области MATLAB загружаются из файла с помощью блока Read data.

Рис. 9.1.14. Блок From File

[Скачать пример]

9.1.15. Блок сигнала нулевого уровня Ground

Назначение:
Формирование сигнала нулевого уровня.

Параметры:

Нет.

Если какой-либо вход блока в модели не подсоединен, то при выполнении моделирования в главном окне MATLAB появляется предупреждающее сообщение. Для устранения этого на неподключенный вход блока можно подать сигнал с блока Ground.

На рис. 9.1.15 даны примеры использования блока. В первом случае сигнал с блока Ground поступает на один из входов сумматора, а во втором на один из входов блока умножения. Показания блоков Display подтверждают, что вырабатываемый блоком Ground сигнал имеет нулевое значение. Из рисунка также видно, что тип выходного сигнала блока устанавливается автоматически, в соответствии с типами сигналов, подаваемых на другие входы блоков (в данном случае – на входы блоков Sum и Product).

Рис. 9.1.15. Применение блока Ground

[Скачать пример]

9.1.16. Блок периодического сигнала Repeating Sequence

Назначение:
Формирование периодического сигнала.

Параметры:

Time values – Вектор значений модельного времени.

Output values – Вектор значений сигнала для моментов времени заданных вектором Time values.

Блок выполняет линейную интерполяцию выходного сигнала для моментов времени не совпадающих со значениями заданными вектором Time values. На рис. 9.1.16 показан пример использования блока для формирования пилообразного сигнала. Значения модельного времени заданы вектором [0 3], а значения выходного сигнала вектором [0 2].

Рис. 9.1.16. Использование блока Repeating Sequence

[Скачать пример]

9.1.17. Блок входного порта Inport

Назначение: 

Создает входной порт для подсистемы или модели верхнего уровня иерархии.

Параметры:

Port numberНомер порта.

Port dimensions – Размерность входного сигнала. Если этот параметр равен –1, то размерность входного сигнала будет определяться автоматически.

Sample time –Шаг модельного времени.

Data type – Тип данных входного сигнала: auto, double, single, int8, uint8, int16, uint16, int32, uint32 или boolean.

Signal type – Тип входного сигнала:

auto – Автоматическое определение типа.

real –Действительный сигнал. 

complex- Комплексный сигнал.

Interpolate data (флажок) – Интерполировать входной сигнал. В случае, если временные отсчеты входного сигнала считываемого из рабочей области MATLAB не совпадают с модельным временем, то блок будет выполнять интерполяцию входного сигнала. При использовании блока Inport в подсистеме данный параметр не доступен.

9.1.17.1. Использование блока Inport в подсистемах

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

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

При создании подсистемы с помощью команды Edit/Create subsystem входные порты создаются и нумеруются автоматически начиная с 1.

Если в подсистему добавляется новый блок Inport, то ему присваивается следующий по порядку номер.

Если какой либо блок Inport удаляется, то остальные порты переименовываются таким образом, чтобы последовательность номеров портов была непрерывной.

Если в последовательности номеров портов имеется разрыв, то при выполнении моделирования Simulink выдаст сообщение об ошибке и остановит расчет. В этом случае необходимо вручную переименовать порты таким образом, чтобы последовательность номеров портов не нарушалась.

На рис. 9.1.17 показана модель, использующая подсистему и схема этой подсистемы.

Рис. 9.1.17. Использование блока Inport в подсистеме

[Скачать пример] 

9.1.17.2. Использование блока Inport в модели верхнего уровня

Входной порт в системе верхнего уровня используется для передачи сигнала из рабочей области MATLAB в модель.

Для передачи сигнала из рабочего пространство MATLAB требуется не только установить в модели входной порт, но и выполнить установку параметров ввода на вкладке Workspace I/O окна диалога Simulation parameters… (должен быть установлен флажок для параметра Input и задано имя переменной, которая содержит входные данные). Тип вводимых данных: Array (массив), Structure (структура) или Structure with time (структура с полем "время") задается на этой же вкладке.

На рис. 9.1.18 показана модель, считывающая входной сигнал из рабочего пространства MATLAB. Подсистема Load Data обеспечивает ввод данных из файла в рабочую область MATLAB.

Рис. 9.1.18. Модель, считывающая входной сигнал из рабочего

пространства MATLAB с помощью блока Input.

9.2. Sinks - приемники сигналов

9.2.1.  Осциллограф Scope

Назначение:

Строит графики исследуемых сигналов в функции времени. Позволяет наблюдать за изменениями сигналов в процессе моделирования.

Изображение блока и окно для просмотра графиков показаны на рис. 9.2.1.

Рис. 9.2.1. Осциллограф Scope

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

Настройка окна осциллографа выполняется с помощью панелей инструментов (рис.9.2.2).

Рис. 9.2.2. Панель инструментов блока Scope

Панель инструментов содержит 11 кнопок:

Print – печать содержимого окна осциллографа.

Parameters – доступ к окну настройки параметров.

Zoom – увеличение масштаба по обеим осям.

Zoom X-axis – увеличение масштаба по горизонтальной оси.

Zoom Y-axis – увеличение масштаба по вертикальной оси.

Autoscale – автоматическая установка масштабов по обеим осям.

Save current axes settings – сохранение текущих настроек окна.

Restore saved axes settings – установка ранее сохраненных настроек окна.

Floating scope – перевод осциллографа в “свободный” режим.

Lock/Unlock axes selection – закрепить/разорвать связь между текущей координатной системой окна и отображаемым сигналом. Инструмент доступен, если включен режим Floating scope.

Signal selection – выбор сигналов для отображения. Инструмент доступен, если включен режим Floating scope.

Изменение масштабов отображаемых графиков можно выполнять несколькими способами:

1. Нажать соответствующую кнопку (, или ) и щелкнуть один раз левой клавишей “мыши” в нужном месте графика. Произойдет 2,5 кратное увеличение масштаба.

2. Нажать соответствующую кнопку (, или ) и, нажав левую клавишу “мыши”, с помощью динамической рамки или отрезка указать область графика для увеличенного изображения. Рис. 9.2.3 поясняет этот процесс.

Рис. 9.2.3. Увеличение масштаба графика.

3. Щелкнуть правой клавишей “мыши” в окне графиков и, выбрать команду Axes properties… в контекстном меню. Откроется окно свойств графика, в котором с помощью параметров Y-min и Y-max можно указать предельные значения вертикальной оси. В этом же окне можно указать заголовок графика (Title), заменив выражение %<SignalLabel> в строке ввода. Окно свойств показано на рис. 9.2.4.

Рис. 9.2.4. Окно свойств графика.

Параметры:

Параметры блока устанавливаются в окне ‘Scope’ parameters, которое открывается с помощью инструмента (Parameters) панели инструментов. Окно параметров имеет две вкладки:

General – общие параметры.

Data history – параметры сохранения сигналов в рабочей области MATLAB.

Вкладка общих параметров показана на рис. рис. 9.2.5.

Рис. 9.2.5. Вкладка общих параметров General.

На вкладке General задаются следующие параметры:

1. Number of axes — число входов (систем координат) осциллографа. При изменении этого параметра на изображении блока появляются дополнительные входные порты.

2. Time range — величина временного интервала для которого отображаются графики. Если время расчета модели превышает заданное параметром Time range, то вывод графика производится порциями, при этом интервал отображения каждой порции графика равен заданному значению Time range.

3. Tick labels — вывод/скрытие осей и меток осей. Может принимать три значения (выбираются из списка):

all – подписи для всех осей,

none – отсутствие всех осей и подписей к ним,

bottom axis only – подписи горизонтальной оси только для нижнего графика.

4. Sampling — установка параметров вывода графиков в окне. Задает режим вывода расчетных точек на экран. При выборе Decimation кратность вывода устанавливается числом, задающим шаг выводимых расчетных точек. На рис. 9.2.6 и 9.2.7. показаны графики синусоидальных сигналов рассчитанных с фиксированным шагом 0.1 с. На рис. 9.2.6 в окне блока Scope выводится каждая расчетная точка (параметр Decimation равен 1). На рис. 9.2.7 показан вывод каждого второго значения (параметр Decimation равен 2). Маркерами на графиках отмечены расчетные точки.

Рис. 9.2.6. Отображение синусоидального сигнала (Decimation = 1).

Рис. 9.2.7. Отображение синусоидального сигнала (Decimation = 2).

В том случае, если режим вывода расчетных точек задается как Sample time, то его числовое значение определяет интервал квантования при отображении сигнала. На рис. 9.2.8 показан график синусоидального сигнала, для случая, когда значение параметра Sample time равно 0.1 .

Рис. 9.2.8. Отображение синусоидального сигнала (Sample time = 0.1).

5. floating scope – перевод осциллографа в “свободный” режим (при установленном флажке).

На вкладке Data history (рис. 9.2.9)задаются следующие параметры:

1. Limit data points to last – максимальное количество отображаемых расчетных точек графика. При превышении этого числа начальная часть графика обрезается. В том случае, если флажок параметра Limit data points to last не установлен, то Simulink автоматически увеличит значение этого параметра для отображения всех расчетных точек.

2. Save data to workspace – сохранение значений сигналов в рабочей области MATLAB.

3. Variable name – имя переменной для сохранения сигналов в рабочей области MATLAB.

4. Format – формат данных при сохранении в рабочей области MATLAB. Может принимать значения:

Array – массив,

Structure – структура,

Structure with time – структура с дополнительным полем “время”.

Рис. 9.2.9. Вкладка Data history.

[Скачать пример]

9.2.2. Осциллограф Floating Scope

Осциллограф Floating Scope, по сути, есть обычный осциллограф Scope, переведенный в “свободный” режим. Пример модели с осциллографом Floating Scope показан на рис. 9.2.10.

Рис. 9.2.10. Пример модели с осциллографом Floating Scope.

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

1. Выделить систему координат, в которой будет отображаться график. Это достигается с помощью одиночного щелчка левой клавишей “мыши” внутри нужной системы. Выбранная система координат будет подсвечена по периметру синим цветом.

2. С помощью инструмента открыть окно диалога Signal Selector (рис. 9.2.11).

3. Отметить флажком имена блоков, сигналы с выхода которых требуется исследовать.

После выполнения расчета в окне блока Floating Scope будут отображены выбранные сигналы.

Рис. 9.2.11. Окно диалога Signal Selector

[Скачать пример]

9.2.3. Графопостроитель ХУ Graph

Назначение:

Строит график одного сигнала в функции другого (график вида Y(X)).

Параметры:

x-min – Минимальное значение сигнала по оси X.

x-max – Максимальное значение сигнала по оси X

y-min – Минимальное значение сигнала по оси Y.

y-max – Максимальное значение сигнала по оси Y

Sample time – шаг модельного времени.

Блок имеет два входа. Верхний вход предназначен для подачи сигнала, который является аргументом (X), нижний – для подачи значений функции (Y).

На рис.9.2.12, в качестве примера использования графопостроителя, показано построение фазовой траектории колебательного звена.

Рис. 9.2.12. Пример использования графопостроителя ХУ Graph.

[Скачать пример] 

Графопостроитель можно использовать и для построения временных зависимостей. Для этого на первый вход следует подать временной сигнал с выхода блока Clock. Пример такого использования графопостроителя показан на рис. 9.2.13.

Рис. 9.2.13. Пример использования блока ХУ Graph для отображения временных зависимостей.

[Скачать пример] 

9.2.4. Цифровой дисплей Display

Назначение:

Отображает значение сигнала в виде числа.

Параметры: 

Format – формат отображения данных. Параметр Format может принимать следующие значения:

short – 5 значащих десятичных цифр.

long – 15 значащих десятичных цифр.

short_e –5 значащих десятичных цифр и 3 символа степени десяти.

long_e – 15 значащих десятичных цифр и 3 символа степени десяти.

bank – "денежный" формат. Формат с фиксированной точкой и двумя десятичными цифрами в дробной части числа.

Decimation – кратность отображения входного сигнала. При Decimation = 1 отображается каждое значение входного сигнала, при Decimation = 2 отображается каждое второе значение, при Decimation = 3 – каждое третье значение и т.д.

Sample time – шаг модельного времени. Определяет дискретность отображения данных.

Floating display (флажок)– перевод блока в “свободный” режим. В данном режиме входной порт блока отсутствует, а выбор сигнала для отображения выполняется щелчком левой клавиши “мыши” на соответствующей лини связи. В этом режиме для параметра расчета Signal storage reuse должно быть установлено значение off (вкладка Advanced в окне диалога Simulation parameters…).

На рис. 2.9.14 показано применение блока Display с использованием различных вариантов параметра Format.

Рис. 9.2.14. Применение блока Display с использованием различных вариантов параметра Format.

[Скачать пример] 

Блок Display может использоваться для отображения не только скалярных сигналов, но также векторных, матричных и комплексных. Рис. 2.9.15 иллюстрирует это. Если все отображаемые значения не могут поместиться в окне блока, в правом нижнем углу блока появляется символ , указывающий на необходимость увеличить размеры блока (см. блок Display4 на рис. 2.9.15).

Рис. 9.2.15 Применение блока Display для отображения векторных, матричных и комплексных сигналов.

[Скачать пример]

9.2.5. Блок остановки моделирования Stop Simulation

Назначение:

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

Параметры:

Нет.

При подаче на вход блока ненулевого сигнала Simulink выполняет текущий шаг расчета, а затем останавливает моделирование. Если на вход блока подан векторный сигнал, то для остановки расчета достаточно, чтобы один элемент вектора стал ненулевым. На рис. 2.9.16 показан пример использования данного блока. В примере остановка расчета происходит, если выходной сигнал блока Transfer Function становится большим или равным 0.99.

Рис. 9.2.16. Применение блока Stop Simulation

[Скачать пример]

9.2.6. Блок сохранения данных в файле То File

Назначение:

Блок записывает данные, поступающие на его вход, в файл.

Параметры:

Filename – имя файла для записи. По умолчанию файл имеет имя untitled.mat. Если не указан полный путь файла, то файл сохраняется в текущей рабочей папке.

Variable name – имя переменной, содержащей записываемые данные.

Decimation – кратность записи в файл входного сигнала. При Decimation = 1 записывается каждое значение входного сигнала, при Decimation = 2 записывается каждое второе значение, при Decimation = 3 – каждое третье значение и т.д.

Sample time – шаг модельного времени. Определяет дискретность записи данных.

Данные в файле сохраняются в виде матрицы:

.

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

Файл данных (mat-файл), в который записываются данные, не является текстовым. Структура файла подробно описана в справочной системе MATLAB. Пользователям Simulink удобнее всего считывать данные из mat-файла с помощью блока From File (библиотека Sources).

На рис. 9.2.17 показан пример использования данного блока. Результаты расчета сохраняются в файле result.mat.

Рис. 9.2.17. Применение блока To File

[Скачать пример] 

9.2.7. Блок сохранения данных в рабочей области То Workspace

Назначение:

Блок записывает данные, поступающие на его вход, в рабочую область MATLAB.

Параметры:

Variable name – имя переменной, содержащей записываемые данные.

Limit data points to last – максимальное количество сохраняемых расчетных точек по времени (отсчет ведется от момента завершения моделирования). В том случае, если значение параметра Limit data points to last задано как inf, то в рабочей области будут сохранены все данные.

Decimation – кратность записи данных в рабочую область.

Sample time – шаг модельного времени. Определяет дискретность записи данных.

Save format – формат сохранения данных. Может принимать значения:

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

Structure – структура. Данные сохраняются в виде структуры, имеющей три поля: time – время, signals – сохраняемые значения сигналов, blockName – имя модели и блока To Workspace. Поле time для данного формата остается не заполненным.

Structure with Time – структура с дополнительным полем (время). Для данного формата, в отличие от предыдущего, поле time заполняется значениями времени.

На рис. 9.2.18 показан пример использования данного блока. Результаты расчета сохраняются в переменной simout.

Для считывания данных сохраненных в рабочей области MATLAB можно использовать блок From Workspace (библиотека Sources).

Рис. 9.2.18. Применение блока To Workspace

[Скачать пример] 

9.2.8. Концевой приемник Terminator

Назначение:

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

Параметры:

Нет.

В том случае, если выход блока оказывается не подключенным ко входу другого блока, Simulink выдает предупреждающее сообщение в командном окне MATLAB. Для исключения этого необходимо использовать блок Terminator. На рис. 9.2.19 показан пример использования концевого приемника. Извлекаемый, с помощью блока Demux, из матрицы второй элемент не никак не используется, поэтому он подается на вход блока Terminator.

Рис. 9.2.19. Применение блока Terminator

[Скачать пример] 

9.2.9. Блок выходного порта Outport

Назначение:

Создает выходной порт для подсистемы или для модели верхнего уровня иерархии.

Параметры:

Port number – номер порта.

Output when disabled – вид сигнала на выходе подсистемы, в случае если подсистема выключена. Используется для управляемых подсистем. Может принимать значения (выбираются из списка):

held – выходной сигнал подсистемы равен последнему рассчитанному значению.

reset – – выходной сигнал подсистемы равен значению задаваемому параметром Initial output.

Initial output - значение сигнала на выходе подсистемы до начала ее работы и в случае, если подсистема выключена. Используется для управляемых подсистем.

9.2.9.1. Использование блока Outport в подсистемах

Блоки Outport подсистемы являются ее выходами. Сигнал, подаваемый в блок Outport внутри подсистемы, передается в модель (или подсистему) верхнего уровня. Название выходного порта будет показано на изображении подсистемы как метка порта.

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

При создании подсистемы с помощью команды Edit/Create subsystem выходные порты создаются и нумеруются автоматически начиная с 1.

Если в подсистему добавляется новый блок Outport, то ему присваивается следующий по порядку номер.

Если какой либо блок Outport удаляется, то остальные порты переименовываются таким образом, чтобы последовательность номеров портов была непрерывной.

Если в последовательности номеров портов имеется разрыв, то при выполнении моделирования Simulink выдаст сообщение об ошибке и остановит расчет. В этом случае необходимо вручную переименовать порты таким образом, чтобы последовательность номеров портов не нарушалась.

На рис. 9.2.19 показана модель, использующая подсистему и схема этой подсистемы.

Рис. 9.2.19. Использование блока Outport в подсистеме

[Скачать пример] 

В том случае, если подсистема является управляемой, то для ее выходных портов можно задать вид выходного сигнала для тех временных интервалов, когда подсистема заблокирована. На рис. 9.2.20 показана модель, использующая управляемую подсистему (схема подсистемы такая же, как и в предыдущем примере). Для первого выходного порта подсистемы параметр Output when disabled задан как held, а для второго – как reset, причем величина начального значения задана равной нулю. Графики сигналов показывают, что когда подсистема заблокирована, сигнал первого выходного порта остается неизменным, а сигнал второго становится равным заданному начальному значению (нулю).

Рис. 9.2.20. Управляемая подсистема с различными настройками выходных портов.

[Скачать пример]

9.2.9.2. Использование блока Outport в модели верхнего уровня

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

Для передачи сигнала в рабочее пространство MATLAB.

Для обеспечения связи функций анализа с выходами модели.

Для передачи сигнала в рабочее пространство MATLAB требуется не только установить в модели выходные порты, но и выполнить установку параметров вывода на вкладке Workspace I/O окна диалога Simulation parameters… (должен быть установлен флажок для параметра Output и задано имя переменной для сохранения данных). Тип сохраняемых данных - Array массив, Structure (структура) или Structure with time (структура с полем “время”) задается на этой же вкладке.

На рис. 9.2.21 показана модель, передающая сигналы в рабочее пространство MATLAB. 

Рис. 9.2.21. Модель, передающая сигналы в рабочее пространство MATLAB с помощью блоков Outport.

[Скачать пример]

Блок Outport может использоваться также для связи модели с функциями анализа, например: linmod или trim.

9.3. Continuous – аналоговые блоки

9.3.1.  Блок вычисления производной Derivative

Назначение:

Выполняет численное дифференцирование входного сигнала.

Параметры:

Нет.

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

,

где u – величина изменения входного сигнала за время t,

t – текущее значение шага модельного времени.

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

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

На рис. 9.3.1 показан пример использования дифференцирующего блока для вычисления производной прямоугольного сигнала. В рассматриваемом примере, для повышения наглядности, шаг расчета выбран достаточно большим.

Рис.9.3.1. Использование блока Derivative для дифференцирования сигнала.

[Скачать пример] 

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

9.3.2. Интегрирующий блок lntegrator

Назначение:

Выполняет интегрирование входного сигнала.

Параметры:

External reset – Внешний сброс. Тип внешнего управляющего сигнала, обеспечивающего сброс интегратора к начальному состоянию. Выбирается из списка:

none – нет (сброс не выполняется),

rising - нарастающий сигнал (передний фронт сигнала),

falling - спадающий сигнал (задний фронт сигнала),

either – нарастающий либо спадающий сигнал,

level – не нулевой сигнал (сброс выполняется если сигнал на управляющем входе становится не равным нулю);

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

Initial condition source — Источник начального значения выходного сигнала. Выбирается из списка:

internal – внутренний

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

Initial condition — Начальное условие. Установка начального значения выходного сигнала интегратора. Параметр доступен, если выбран внутренний источник начального значения выходного сигнала.

Limit output (флажок) — Использование ограничения выходного сигнала.

Upper saturation limit — Верхний уровень ограничения выходного сигнала. Может быть задан как числом, так и символьной последовательностью inf, то есть .

Lower saturation limit — Нижний уровень ограничения выходного сигнала. Может быть задан как числом, так и символьной последовательностью inf, то есть .

Show saturation port — управляет отображением порта, выводящего сигнал, свидетельствующий о выходе интегратора на ограничение. Выходной сигнал данного порта может принимать следующие значения:

Ноль, если интегратор не находится на ограничении.

+1, если выходной сигнал интегратора достиг верхнего ограничивающего предела.

-1, если выходной сигнал интегратора достиг нижнего ограничивающего предела.

Show state port (флажок) — Отобразить/скрыть порт состояния блока. Данный порт используется в том случае, если выходной сигнал интегратора требуется подать в качестве сигнала обратной связи этого же интегратора. На пример, при установке начальных условий через внешний порт или при сбросе интегратора через порт сброса. Выходной сигнал с этого порта может использоваться также для организации взаимодействия с управляемой подсистемой.

Absolute tolerance — Абсолютная погрешность.

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

Рис. 9.3.2. Интегрирование ступенчатого сигнала.

[Скачать пример] 

Пример на рис. 9.3.3 отличается от предыдущего подачей начального значения через внешний порт. Начальное значение выходного сигнала в данном примере задано равным –10.

Рис. 9.3.3. Интегрирование ступенчатого сигнала с установкой начального значения выходного сигнала.

[Скачать пример]

Пример на рис. 9.3.4 демонстрирует использование входного порта для сброса выходного сигнала и порта состояния интегратора с целью организации обратной связи. Схема работает следующим образом: входной постоянный сигнал преобразуется интегратором в линейно-изменяющийся, по достижении выходным сигналом значения равного 1 блок Relational Operator вырабатывает логический сигнал, по переднему фронту которого происходит сброс выходного сигнала интегратора до начального значения равного нулю. В результате на выходе интегратора формируется пилообразный сигнал, изменяющийся от 0 до +1.

Рис. 9.3.4. Генератор пилообразного сигнала на основе интегратора.

[Скачать пример]

Следующая схема (рис. 9.3.5) использует установку начального значения интегратора с помощью его выходного сигнала. В первый момент времени начальное значение выходного сигнала интегратора с помощью блока IC (Initial Condition) устанавливается равным нулю. По достижении выходным сигналом значения равного 1 блок Relational Operator подает сигнал сброса выходного сигнала интегратора на начальный уровень, при этом сигналом, задающим начальный уровень, оказывается инвертированный выходной сигнал интегратора (т.е. -1). Далее цикл работы схемы повторяется. В отличие от предыдущей схемы выходным сигналом генератора является двуполярный сигнал.

Рис. 9.3.5. Генератор двуполярного пилообразного сигнала

на основе интегратора.

[Скачать пример]

9.3.3. Блок Memory

Назначение:

Выполняет задержку входного сигнала на один временной такт.

Параметры:

Initial condition – начальное значение выходного сигнала.

Inherit sample time (флажок) – Наследовать шаг модельного времени. Если этот флажок установлен, то блок Memory использует шаг модельного времени (Sample time) такой же, как и в предшествующем блоке.

На рис. 9.3.6 показан пример использования блока Memory для задержки дискретного сигнала на один временной такт.

Рис. 9.3.6. Применение блока для задержки сигнала на один временной такт

[Скачать пример]

9.3.4. Блок фиксированной задержки сигнала Transport Delay

Назначение:

Обеспечивает задержку входного сигнала на заданное время.

Параметры:

Time Delay — Время задержки сигнала (не отрицательное значение).

Initial input — Начальное значение выходного сигнала.

Buffer size — Размер памяти, выделяемой для хранения задержанного сигнала. Задается в байтах числом, кратным 8 (по умолчанию 1024).

Pade order (for linearization) — Порядок ряда Паде, используемого при аппроксимации выходного сигнала. Задается целым положительным числом.

При выполнении моделирования значение сигнала и соответствующее ему модельное время сохраняются во внутреннем буфере блока Transport Delay. По истечении времени задержки значение сигнала, извлекается из буфера и передается на выход блока. В том случае, если шаги модельного времени не совпадают со значениями моментов времени для записанного в буфер сигнала, блок Transport Delay выполняет аппроксимацию выходного сигнала.

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

На рис. 9.3.7 показан пример использования блока Transport Delay для задержки прямоугольного сигнала на 0.5 с.

Рис. 9.3.7. Пример использования блока Transport Delay для задержки сигнала.

[Скачать пример] 

9.3.5. Блок управляемой задержки сигнала Variable Transport Delay

Назначение:

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

Параметры:

Maximum delay — Максимальное значение времени задержки сигнала (не отрицательное значение).

Initial input — Начальное значение выходного сигнала.

Buffer size — Размер памяти, выделяемой для хранения задержанного сигнала. Задается в байтах числом, кратным 8 (по умолчанию 1024).

Pade order (for linearization) — Порядок ряда Паде, используемого при аппроксимации выходного сигнала. Задается целым положительным числом.

Блок управляемой задержки Variable Transport Delay работает аналогично блоку постоянной задержки сигнала Transport Delay.

В том случае, если значение управляющего сигнала задающего величину задержки превышает значение, заданное параметром Maximum delay, то задержка выполняется на величину Maximum delay.

На рис. 9.3.8 показан пример использования блока Variable Transport Delay. Величина времени задержки сигнала изменяется от 0.5c до 1с в момент времени равный 5с.

Рис. 9.3.8. Пример использования блока Variable Transport Delay.

[Скачать пример] 

9.3.6. Блок передаточной функции Transfer Fcn

Назначение:

Блок передаточной характеристики Transfer Fcn задает передаточную функцию в виде отношения полиномов:

,

где

nn и nd – порядок числителя и знаменателя передаточной функции,
numвектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

Параметры:

Numerator — вектор или матрица коэффициентов полинома числителя

Denominator -вектор коэффициентов полинома знаменателя

Absolute tolerance — Абсолютная погрешность.

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

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

Рис. 9.3.8. Пример моделирования колебательного звена.

[Скачать пример] 

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

На рис. 9.3.9 показан пример блока Transfer Fcn задающий векторную передаточную функцию. Там же показана модель полностью аналогичная рассматриваемой по своим свойствам, но состоящая из отдельных блоков Transfer Fcn.

Рис. 9.3.9. Пример моделирования векторной передаточной функции и ее аналог.

[Скачать пример] 

Начальные условия при использовании блока Transfer Fcn полагаются нулевыми. Если же требуется, чтобы начальные условия не были нулевыми, то необходимо с помощью функции tf2ss (инструмент Control System Toolbox) перейти от передаточной функции к модели в пространстве состояний и моделировать динамический объект с помощью блока State-Space.

9.3.7. Блок передаточной функции Zero-Pole

Назначение:

Блок Zero-Pole определяет передаточную функцию с заданными полюсами и нулями:

,

где

Zвектор или матрица нулей передаточной функции (корней полинома числителя),
P – вектор полюсов передаточной функции (корней полинома знаменателя),
K – коэффициент передаточной функции, или вектор коэффициентов, если нули передаточной функции заданы матрицей. При этом размерность вектора K определяется числом строк матрицы нулей.

Параметры:

Zeros – Вектор или матрица нулей.

Poles – Вектор полюсов.

Gain – Скалярный или векторный коэффициент передаточной функции.

Absolute tolerance — Абсолютная погрешность.

Количество нулей не должно превышать число полюсов передаточной функции.

В том случае, если нули передаточной функции заданы матрицей, то блок Zero-Pole моделирует векторную передаточную функцию.

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

Начальные условия при использовании блока Zero-Pole полагаются нулевыми.

На рис. 9.3.10 показан пример использования блока Zero-Pole. В примере передаточная функция имеет один действительный нуль и два комплексно-сопряженных полюса.

Рис. 9.3.10. Пример использования блока Zero-Pole.

[Скачать пример] 

9.3.8. Блок модели динамического объекта State-Space

Назначение:

Блок создает динамический объект, описываемый уравнениями в пространстве состояний:

,

где

x – вектор состояния,
u – вектор входных воздействий,
y – вектор выходных сигналов,
A, B, C, D - матрицы: системы, входа, выхода и обхода, соответственно.

Размерность матриц показана на рис. 9.3.11 (n – количество переменных состояния, m – число входных сигналов, r – число выходных сигналов).  

Рис. 9.3.11. Размерность матриц блока State-Space

Параметры: 

A –Матрица системы.

B – Матрица входа.

C – Матрица выхода

D – Матрица обхода

Initial condition – Вектор начальных условий.

Absolute tolerance — Абсолютная погрешность.

На рис. 9.3.11 показан пример моделирования динамического объекта с помощью блока State-Space. Матрицы блока имеют следующие значения:

Рис. 9.3.12. Пример использования блока State-Space.

9.4. Discrete – дискретные блоки

9.4.1. Блок единичной дискретной задержки Unit Delay

Назначение:

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

Параметры:

Initial condition – Начальное значение для выходного сигнала.

Sample time – Шаг модельного времени.

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

На рис. 9.4.1 показан пример использования блока для задержки дискретного сигнала на один временной шаг, равный 0.1с.

Рис. 9.4.1. Пример использования блока Unit Delay

[Скачать пример]

9.4.2. Блок экстраполятора нулевого порядка Zero-Order Hold

Назначение:

Блок выполняет дискретизацию входного сигнала по времени.

Параметры:

Sample time – Величина шага дискретизации по времени.

Блок фиксирует значение входного сигнала в начале интервала квантования и поддерживает на выходе это значение до окончания интервала квантования. Затем выходной сигнал изменяется скачком до величины входного сигнала на следующем шаге квантования.

На рис. 9.4.2 показан пример использования блока Zero-Order Hold для формирования дискретного сигнала.

Рис. 9.4.2. Пример формирования дискретного сигнала с помощью блока Zero-Order Hold

[Скачать пример]

Блок экстраполятора нулевого порядка может использоваться также для согласования работы дискретных блоков имеющих разные интервалы квантования. На рис. 9.4.3 показан пример такого использования блока Zero-Order Hold. В примере блок Discrete Transfer Fcn имеет параметр Sample time = 0.4 , а для блока Discrete Filter этот же параметр установлен равным 0.8.

Рис. 9.4.3. Использование блока Zero-Order Hold для согласования работы дискретных блоков.

[Скачать пример]

9.4.3. Блок экстраполятора первого порядка First-Order Hold

Назначение:

Блок задает линейное изменение выходного сигнала на каждом такте дискретизации, в соответствии с крутизной входного сигнала на предыдущем интервале дискретизации.

Параметры:

Sample time – Величина шага дискретизации по времени.

Пример экстраполяции синусоидального сигнала этим блоком показан на рис. 9.4.4.

Рис. 9.4.4. Использование блока First-Order Hold

[Скачать пример]

9.4.4. Блок дискретного интегратора Discrete-Time Integrator

Назначение:

Блок используется для выполнения операции интегрирования в дискретных системах.

Параметры:

Integration method – Метод численного интегрирования:

Forward Euler - Прямой метод Эйлера.

Метод использует аппроксимацию T/(z-1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k–1),
y
– выходной сигнал интегратора,
u – входной сигнал интегратора,
T – шаг дискретизации,
k – номер шага моделирования.

Backward Euler – Обратный метод Эйлера.

Метод использует аппроксимацию T*z/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
y(k) = y(k–1) + T*u(k).

Trapeziodal – Метод трапеций.

Метод использует аппроксимацию T/2*(z+1)/(z–1) передаточной функции 1/s. Выходной сигнал блока рассчитывается по выражению:
x(k) = y(k–1) + T/2 * u(k–1).

Sample time — Шаг дискретизации по времени.

Остальные параметры дискретного интегратора те же, что и у блока аналогового интегратора Integrator (библиотека Continuous).

На рис. 9.4.5 показан пример демонстрирующий все три способа численного интегрирования блока Discrete-Time Integrator. Как видно из рисунка изображение блока меняется в зависимости от выбранного метода интегрирования.

Рис. 9.4.5. Выполнение интегрирования блоками Discrete-Time Integrator, реализующими разные численные методы.

[Скачать пример]

9.4.5. Дискретная передаточная функция Discrete Transfer Fсn

Назначение:

Блок Discrete Transfer Fcn задает дискретную передаточную функцию в виде отношения полиномов:

,

где

m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
numвектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

Параметры:

Numerator — Вектор или матрица коэффициентов числителя

Denominator – Вектор коэффициентов знаменателя

Sample time — Шаг дискретизации по времени.

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

Входной сигнал блока должен быть скалярным. В том случае, если коэффициенты числителя заданы вектором, то выходной сигнал блока будет скалярным (также как и входной сигнал). На рис. 9.4.6 показан пример использования блока Discrete Transfer Fcn. В примере рассчитывается реакция на единичное ступенчатое воздействие дискретного аналога колебательного звена:

.

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.6. Использование блока Discrete Transfer Fcn

[Скачать пример]

 

9.4.6. Блок дискретной передаточной функции Discrete Zero-Pole

Назначение:

Блок Discrete Zero-Pole определяет дискретную передаточную функцию с заданными полюсами и нулями:

,

где

Zвектор или матрица нулей передаточной функции,
P – вектор полюсов передаточной функции,
K – коэффициент передаточной функции, или вектор коэффициентов, если нули передаточной функции заданы матрицей. При этом размерность вектора K определяется числом строк матрицы нулей.

Параметры:

Zeros – Вектор или матрица нулей.

Poles – Вектор полюсов.

Gain – Скалярный или векторный коэффициент передаточной функции.

Sample time — Шаг дискретизации по времени.

Количество нулей не должно превышать число полюсов передаточной функции.

В том случае, если нули передаточной функции заданы матрицей, то блок Discrete Zero-Pole моделирует векторную передаточную функцию.

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

Начальные условия при использовании блока Discrete Zero-Pole полагаются нулевыми.

На рис. 9.4.7 показан пример использования блока Discrete Zero-Pole. С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции

.

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.7. Использование блока Discrete Zero-Pole.

[Скачать пример] 

9.4.7. Блок дискретного фильтра Discrete Filter

Назначение:

Блок дискретного фильтра Discrete Filter задает дискретную передаточную функцию от обратного аргумента (1/z):

,

m+1 и n+1 – количество коэффициентов числителя и знаменателя, соответственно.
numвектор или матрица коэффициентов числителя,
den – вектор коэффициентов знаменателя.

Параметры:

Numerator — Вектор или матрица коэффициентов числителя

Denominator –Вектор коэффициентов знаменателя

Sample time — Шаг дискретизации по времени.

На рис. 9.4.8 показан пример использования блока Discrete Filter. С помощью рассматриваемого блока моделируется дискретный аналог передаточной функции:

.

Шаг дискретизации выбран равным 0.5 с.

Рис. 9.4.8. Использование блока Discrete Filter.

[Скачать пример] 

9.4.8. Блок модели динамического объекта Discrete State-Space

Назначение:

Блок создает динамический объект, описываемый уравнениями в пространстве состояний:

,

где

x – вектор состояния,

u – вектор входных воздействий,

y – вектор выходных сигналов,

A, B, C, D - матрицы: системы, входа, выхода и обхода, соответственно,

n – номер шага моделирования.

Размерность матриц показана на рис. 9.4.9 (n – количество переменных состояния, m – число входных сигналов, r – число выходных сигналов).

Рис. 9.4.9. Размерность матриц блока Discrete State-Space

Параметры: 

A –Матрица системы.

B – Матрица входа.

C – Матрица выхода

D – Матрица обхода

Initial condition – Вектор начальных условий.

Sample time — Шаг дискретизации по времени.

На рис. 9.4.10 показан пример моделирования динамического объекта с помощью блока Discrete State-Space. Матрицы блока имеют следующие значения:

, , , .

Рис. 9.4.10. Пример использования блока Discrete State-Space.

9.5. Nonlinear - нелинейные блоки

9.5.1. Блок ограничения Saturation

Назначение:

Выполняет ограничение величины сигнала.

Параметры:

Upper limit - Верхний порог ограничения.

Lower limit - Нижний порог ограничения.

Treat as gain when linearizing (флажок) - Трактовать как усилитель с коэффициентом передачи равным 1 при линеаризации.

Выходной сигнал блока равен входному если его величина не выходит за порог ограничения. По достижении входным сигналом уровня ограничения выходной сигнал блока перестает изменяться и остается равным порогу. На рис. 9.5.1 показан пример использования блока для ограничения синусоидального сигнала. На рисунке приводятся временные диаграммы сигналов и зависимость выходного сигнала блока от входного.

Рис. 9.5.1. Пример использования блока Saturation

[Скачать пример]

9.5.2. Блок с зоной нечувствительности Dead Zone

Назначение:

Реализует нелинейную зависимость типа "зона нечувствительности (мертвая зона)".

Параметры: 

Start of dead zone - Начало зоны нечувствительности (нижний порог).

End of dead zone - Конец зоны нечувствительности (верхний порог).

Saturate on integer overflow (флажок) - Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Treat as gain when linearizing (флажок) - Трактовать как усилитель с коэффициентом передачи равным 1 при линеаризации.

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

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

Если входной сигнал больше или равен верхнему входному порогу зоны нечувствительности, то выходной сигнал равен входному минус величина порога.

Если входной сигнал меньше или равен нижнему входному порогу зоны нечувствительности, то выходной сигнал равен входному минус величина порога.

На рис. 9.5.2 показан пример использования блока Dead Zone

Рис. 9.5.2. Пример использования блока Dead Zone

[Скачать пример]

9.5.3. Релейный блок Relay

Назначение:

Реализует релейную нелинейность.

Параметры: 

Switch on point - Порог включения. Значение, при котором происходит включение реле.

Switch off point - Порог выключения. Значение, при котором происходит выключение реле.

Output when on - Величина выходного сигнала во включенном состоянии.

Output when off - Величина выходного сигнала в выключенном состоянии.

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

На рис. 9.5.3 показан пример использования блока Relay. На временных диаграммах видно, что включение реле происходит при достижении входным сигналом величины 0.5, а выключение при - 0.5.

Рис. 9.5.3. Пример использования блока Relay

[Скачать пример]

9.5.4. Блок ограничения скорости изменения сигнала Rate Limiter

Назначение:

Блок обеспечивает ограничение скорости изменения сигнала (первой производной).

Параметры: 

Rising slew rate - Уровень ограничения скорости при увеличении сигнала.

Falling slew rate - Уровень ограничения скорости при уменьшении сигнала.

Вычисление производной сигнала выполняется по выражению:

,

где u(i) - значение входного сигнала на текущем шаге,
     t(i) - значение модельного времени на текущем шаге,
     y(i-1) - значение выходного сигнала на предыдущем шаге,
     t(i-1) - значение модельного времени на предыдущем шаге.

Вычисленное значение производной сравнивается со значениями уровней ограничения скорости Rising slew rate и Falling slew rate. Если значение производной больше, чем значение параметра Rising slew rate, то выходной сигнал блока вычисляется по выражению:

,

где R - уровень ограничения скорости при увеличении сигнала.

Если значение производной меньше, чем значение параметра Falling slew rate, то выходной сигнал блока вычисляется по выражению:

,

где F - уровень ограничения скорости при уменьшении сигнала.

Если значение производной лежит в пределах между нижним и верхним уровнями ограничения, то выходной сигнал блока равен входному:

.

На рис. 9.5.4 показан пример использования блока Rate Limiter, при подаче на его вход прямоугольного периодического сигнала.

Рис. 9.5.4. Пример использования блока Rate Limiter

[Скачать пример] 

9.5.5. Блок квантования по уровню Quantizer

Назначение:

Блок обеспечивает квантование входного сигнала с одинаковым шагом по уровню.

Параметры: 

Quantization interval - шаг квантования по уровню.

На рис. 9.5.5 показан пример использования блока Quantizer, выполняющего квантование по уровню синусоидального сигнала. Шаг квантования задан равным 0.5.

Рис. 9.5.5. Пример использования блока Quantizer

[Скачать пример]

9.5.6. Блок сухого и вязкого трения Coulomb and Viscous Friction

Назначение:

Моделирует эффекты сухого и вязкого трения.

Параметры:

Coulomb friction value (Offset)– Величина сухого трения.

Coefficient of viscous friction (Gain) – Коэффициент вязкого трения.

Блок реализует нелинейную характеристику, соответствующую выражению:

,

где u – входной сигнал,
y – выходной сигнал,
Gain – коэффициент вязкого трения ,
Offset – Величина сухого трения.

На рис. 9.5.6 показан пример использования блока Coulomb and Viscous Friction. Оба параметра блока заданы равными 1.

Рис. 9.5.6. Пример использования блока Coulomb and Viscous Friction

[Скачать пример] 

9.5.7. Блок люфта Backlash

Назначение:

Моделирует нелинейность типа “люфт”.

Параметры:

Deaband width – Ширина люфта.

Initial output – Начальное значение выходного сигнала.

Сигнал на выходе будет равен заданному значению Initial output, пока входной сигнал при возрастании не достигнет значения (Deaband width)/2 (где U – входной сигнал), после чего выходной сигнал будет равен U-(Deaband width)/2. После того как, произойдет смена направления изменения входного сигнала, он будет оставаться неизменным, пока входной сигнал не изменится на величину (Deaband width)/2, после чего выходной сигнал будет равен U+(Deaband width)/2.

На рис. 9.5.7 показан пример работы блока Backlash. Входной сигнал блока гармонический с линейно возрастающей амплитудой.

Рис. 9.5.7. Пример использования блока Backlash

[Скачать пример] 

9.5.8. Блок переключателя Switch

Назначение:

Выполняет переключение входных сигналов по сигналу управления.

Параметры:

Threshold – Порог управляющего сигнала.

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

На рис. 9.5.8 показан пример работы блока Switch. В том случае, когда сигнал на управляющем входе ключа равен 1, на выход блока проходит гармонический сигнал, если же управляющий сигнал равен нулю, то на выход проходит сигнал нулевого уровня от блока Ground. Пороговое значение управляющего сигнала задано равным 0.5.

Рис. 9.5.8. Применение переключателя Switch

[Скачать пример] 

9.5.9. Блок многовходового переключателя Multiport Switch

Назначение:

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

Параметры:

Number of inputs – Количество входов.

Блок многовходового переключателя Multiport Switch, пропускает на выход сигнал с того входного порта, номер которого равен текущему значению управляющего сигнала. Если управляющий сигнал не является сигналом целого типа, то блок Multiport Switch производит отбрасывание дробной части числа, при этом в командном окне Matlab появляется предупреждающее сообщение.

На рис. 9.5.9 показан пример работы блока Multiport Switch. Управляющий сигнал переключателя имеет три уровня и формируется с помощью блоков Constant, Step, Step1 и Sum. На выход блока Multiport Switch, в зависимости от уровня входного сигнала, проходят гармонические сигналы, имеющие разные частоты.

Рис. 9.5.9. Применение переключателя Multiport Switch.

[Скачать пример]

Количество входов блока Multiport Switch можно задать равным 1. В этом случае на вход блока необходимо подать векторный сигнал, а сам блок будет пропускать на выход тот элемент вектора, номер которого совпадает с уровнем управляющего сигнала.

На рис. 9.5.10 показан пример использования блока Multiport Switch при векторном сигнале. Временные диаграммы работы для данного примера совпадают с рассмотренными в предыдущем примере.

Рис. 9.5.10. Применение переключателя Multiport Switch при векторном входном сигнале.

[Скачать пример] 

9.5.10. Блок ручного переключателя Manual Switch

Назначение:

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

Параметры:

Нет.

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

На рис. 9.5.11 показан пример использования блока Manual Switch.

Рис. 9.5.11. Пример использования блока Manual Switch.

9.6. Math – блоки математических операций

9.6.1. Блок вычисления модуля Abs

Назначение:

Выполняет вычисление абсолютного значения величины сигнала.

Параметры: 

Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Пример использования блока Abs, вычисляющего модуль текущего значения синусоидального сигнала, показан на рис. 9.6.1.

Рис. 9.6.1. Пример использования блока Abs

[Скачать пример]

Блок Abs может использоваться также для вычисления модуля сигнала комплексного типа. На рис. 9.6.2 показан пример вычисления модуля комплексного сигнала вида:

.

Модуль этого сигнала (как и следовало ожидать) равен 1 для любого момента времени.

Рис. 9.6.2. Пример использования блока Abs для вычисления модуля комплексного сигнала

[Скачать пример]

9.6.2. Блок вычисления суммы Sum

Назначение:

Выполняет вычисление суммы текущих значений сигналов.

Параметры: 

Icon shape – Форма блока. Выбирается из списка.
  - round – окружность,
  - rectangular – прямоугольник.

List of signСписок знаков. В списке можно использовать следующие знаки:
+ (
плюс), - (минус) и | (разделитель знаков).

Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Количество входов и операция (сложение или вычитание) определяется списком знаков параметра List of sign, при этом метки входов обозначаются соответствующими знаками. В параметре List of sign можно также указать число входов блока. В этом случае все входы будут суммирующими.

Если количество входов блока превышает 3, то удобнее использовать блок Sum прямоугольной формы.

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

Если количество входов блока больше, чем один, то блок выполняет поэлементные операции над векторными и матричными сигналами. При этом количество элементов в матрице или векторе должно быть одинаковым.

Если в качестве списка знаков указать цифру 1 (один вход), то блок можно использовать для определения суммы элементов вектора.

Примеры использования блока Sum показаны на 9.6.3.

Рис. 9.6.3. Примеры использования блока Sum

[Скачать пример] 

9.6.3. Блок умножения Product

Назначение:

Выполняет вычисление произведения текущих значений сигналов.

Параметры: 

Number of inputs – Количество входов. Может задаваться как число или как список знаков. В списке знаков можно использовать знаки * (умножить) и / (разделить).

Multiplication – Способ выполнения операции. Может принимать значения (из списка):
  - Element-wise – Поэлементный.
  - Matrix – Матричный.

Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Если параметр Number of inputs задан списком, включающим кроме знаков умножения также знаки деления, то метки входов будут обозначены символами соответствующих операций.

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

Примеры использования блока Product при выполнении скалярных и поэлементных операций показаны на 9.6.4.

Рис. 9.6.4. Примеры использования блока Product при выполнении скалярных и поэлементных операций

[Скачать пример] 

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

Рис. 9.6.5. Примеры использования блока Product при выполнении матричных операций

[Скачать пример] 

9.6.4. Блок определения знака сигнала Sign

Назначение:

Определяет знак входного сигнала.

Параметры:

Нет.

Блок работает в соответствии со следующим алгоритмом:

Если входной сигнал блока положителен, то выходной сигнал равен 1.

Если входной сигнал блока отрицателен, то выходной сигнал равен -1.

Если входной сигнал блока равен 0, то выходной сигнал также равен 0.

Рис. 9.6.6. иллюстрирует работу блока Sign.

Рис. 9.6.6. Пример использования блока Sign

[Скачать пример] 

9.6.5. Усилители Gain и Matrix Gain

Назначение:

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

Параметры:

Gain – Коэффициент усиления.

Multiplication – Способ выполнения операции. Может принимать значения (из списка):
  -
Element-wise K*u– Поэлементный.
  -
Matrix K*u – Матричный. Коэффициент усиления является левосторонним операндом.
  -
Matrix u*K – Матричный. Коэффициент усиления является правосторонним операндом.

Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Блоки усилителей Gain и Matrix Gain есть один и тот же блок, но с разными начальными установками параметра Multiplication.

Параметр блока Gain может быть положительным или отрицательным числом, как больше, так и меньше 1. Коэффициент усиления можно задавать в виде скаляра, матрицы или вектора, а также в виде вычисляемого выражения.

В том случае если парметр Multiplication задан как Element-wise K*u, то блок выполняет операцию умножения на заданный коэффициент скалярного сигнала или каждого элемента векторного сигнала. В противном случае блок выполняет операцию матричного умножения сигнала на коэффициент заданный матрицей.

По умолчанию коэффициент усиления является действительным числом типа double.

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

При вычислении выходного сигнала блок Gain использует следующие правила:

Если входной сигнал действительного типа, а коэффициент усиления комплексный, то выходной сигнал будет комплексным.

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

Примеры использования блока Gain при выполнении скалярных и поэлементных операций показаны на 9.6.7.

Рис. 9.6.7. Примеры использования блока Gain.

[Скачать пример] 

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

Примеры использования блока Matrix Gain при выполнении матричных операций показаны на рис. 9.6.8.

Рис. 9.6.8. Примеры использования блока Matrix Gain

[Скачать пример]  

9.6.6. Ползунковый регулятор Slider Gain

Назначение:

Обеспечивает изменение коэффициента усиления в процессе расчета.

Параметры:

Low – Нижний предел коэффициента усиления.

High – Верхний предел коэффициента усиления.

Для изменения коэффициента усиления блока Slider Gain необходимо передвинуть ползунок регулятора. Перемещение ползунка вправо приведет к увеличению коэффициента усиления, перемещение влево – к уменьшению. Изменение коэффициента усиления будет выполняться в пределах диапазона заданного параметрами Low и High.

Если щелкнуть с помощью мыши на левой или правой стрелках шкалы регулятора, то коэффициент усиления изменится на 1% от установленного диапазона. Если щелкнуть с помощью мыши на самой шкале регулятора слева или справа от ползунка, то коэффициент усиления изменится на 10% от установленного диапазона. Можно также просто задать требуемое значение коэффициента в среднем окне блока.

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

Примеры использования блока Slider Gain показаны на рис. 9.6.9.

Рис. 9.6.9. Примеры использования блока Slider Gain

[Скачать пример]  

9.6.7. Блок скалярного умножения Dot Product

Назначение:

Выполняет вычисление скалярного произведения (свертку) двух векторов.

Параметры:

Нет.

Блок выполняет вычисление выходного сигнала в соответствии с выражением: ,
где
u1 и u2 – входные векторы,
conj – операция вычисления комплексно-сопряженного числа,
sum – операция вычисления суммы.

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

Примеры, иллюстрирующие работу блока Dot Product, показаны на рис. 9.6.10.

Рис. 9.6.10. Примеры использования блока Dot Product

[Скачать пример]  

9.6.8. Блок вычисления математических функций Math Function

Назначение:

Выполняет вычисление математической функции.

Параметры:

Function – Вид вычисляемой функции (выбирается из списка):
 
exp – Экспоненциальная функция
 
log – Функция натурального логарифма
 
10^u – Вычисление степени 10
 
log10 – Функции логарифма
 
magnitude^2 – Вычисление квадрата модуля входного сигнала
 
square – Вычисление квадрата входного сигнала
 
sqrt – Квадратный корень
 
pow – Возведение в степень
 
conj – Вычисление комплексно-сопряженного числа
 
reciprocal – Вычисление частного от деления входного сигнала на 1
  hypot –
Вычисление корня квадратного из суммы квадратов входных сигналов (гипотенузы прямоугольного треугольника по значениям катетов)
 
rem – Функция, вычисляющая остаток от деления первого входного сигнала на второй
 
mod – Функция, вычисляющая остаток от деления с учетом знака
 
transpose – Транспонирование матрицы
 
hermitian – Вычисление эрмитовой матрицы.

Output signal type – Тип выходного сигнала (выбирается из списка):
 
auto – Автоматическое определение типа
 
real –Действительный сигнал
 
complex- Комплексный сигнал.

 

Тип выходного сигнала в зависимости от типа входного сигнала, вычисляемой функции и параметра блока Output signal type приведен в таблице 9.6.1.

Таблица 9.6.1.

Примеры использования блока Math Function показаны на рис. 9.6.11.

Рис. 9.6.11. Примеры использования блока Math Function

[Скачать пример]  

9.6.9. Блок вычисления тригонометрических функций Trigonometric Function

Назначение:

Выполняет вычисление тригонометрической функции.

Параметры:

Function – Вид вычисляемой функции (выбирается из списка): sin, cos, tan, asin, acos, atan, atan2, sinh, cosh и tanh. 

Output signal type – Тип выходного сигнала (выбирается из списка):
  - auto – Автоматическое определение типа.
  - real –Действительный сигнал.
  - complex-
Комплексный сигнал.

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

Примеры использования блока Trigonometric Function показаны на рис. 9.6.12.

Рис. 9.6.12. Примеры использования блока Trigonometric Function

[Скачать пример] 

9.6.10. Блок вычисления действительной и (или) мнимой части комплексного числа Complex to Real-Imag

Назначение:

Вычисляет действительную и (или) мнимую часть комплексного числа.

Параметры:

Output – Выходной сигнал (выбирается из списка):

Real – Действительная часть

Image – Мнимая часть

RealAndImage – Действительная и мнимая часть.

Входной сигнал блока может быть скалярным, векторным или матричным сигналом.

Примеры использования блока Complex to Real-Imag показаны на рис. 9.6.13.

Рис. 9.6.13. Примеры использования блока Complex to Real-Imag

[Скачать пример] 

9.6.11. Блок вычисления модуля и (или) аргумена комплексного числа Complex to Magnitude-Angle

Назначение:

Вычисляет модуль и (или) аргумент комплексного числа.

Параметры:

Output – Выходной сигнал (выбирается из списка):

MagnitudeМодуль.

AngleАргумент.

MagnitudeAndAngleМодуль и аргумент.

Входной сигнал блока может быть скалярным, векторным или матричным сигналом.

Примеры использования блока Complex to Magnitude-Angle показаны на рис. 9.6.14.

Рис. 9.6.14. Примеры использования блока Complex to Magnitude-Angle

[Скачать пример] 

9.6.12. Блок вычисления комплексного числа по его действительной и мнимой части Real-Imag to Complex

Назначение:

Вычисляет комплексное число по его действительной и мнимой части.

Параметры:

Input – Входной сигнал (выбирается из списка):
Real – Действительная часть.
Image – Мнимая часть.
RealAndImage – Действительная и мнимая часть.

Image part – Мнимая часть. Параметр доступен, если параметр Input объявлен как Real.

Real part – Действительная часть. Параметр доступен, если параметр Input объявлен как Image.

Входные сигналы блока могут быть скалярными, векторными или матричными. Параметры Image part и Real part должны задаваться как векторы или матрицы, если входной сигнал является вектором или матрицей.

Примеры использования блока Real-Imag to Complex показаны на рис. 9.6.15.

Рис. 9.6.15. Примеры использования блока Real-Imag to Complex

[Скачать пример] 

9.6.13. Блок вычисления комплексного числа по его модулю и аргументу Magnitude-Angle to Complex

Назначение:

Вычисляет комплексное число по его модулю и аргументу.

Параметры:

Input – Входной сигнал (выбирается из списка):
  - Magnitude – Модуль.
  - Angle – Аргумент.
  - MagnitudeAndAngle – Модуль и аргумент.

Angle – Аргумент. Параметр доступен, если параметр Input объявлен как Magnitude.

Magnitude – Модуль. Параметр доступен, если параметр Input объявлен как Angle.

Входные сигналы блока могут быть скалярными, векторными или матричными.

Параметры Angle и Magnitude должны задаваться как векторы или матрицы, если входной сигнал является вектором или матрицей.

Примеры использования блока Magnitude-Angle to Complex показаны на рис. 9.6.16.

Рис. 9.6.16. Примеры использования блока Magnitude-Angle to Complex

[Скачать пример] 

9.6.14. Блок определения минимального или максимального значения MinMax

Назначение:

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

Параметры:

Function - Выходной параметр. Выбирается из списка:
  - min – Минимальное значение.
  - max – Максимальное значение.

Number of input ports – Количество входных портов.

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

Примеры использования блока MinMax показаны на рис. 9.6.17.

Рис. 9.6.17. Примеры использования блока MinMax

[Скачать пример] 

9.6.15. Блок округления числового значения Rounding Function

Назначение:

Выполняет операцию округления числового значения.

Параметры:

Function – Способ округления (выбирается из списка):

floor – Округление до ближайшего меньшего целого.

ceil – Округление до ближайшего большего целого.

round – Округление до ближайшего целого.

fix – Округление отбрасыванием дробной части.

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

Выходной сигнал блока будет иметь тип double или single.

Примеры использования блока Rounding Function показаны на рис. 9.6.18.

Рис. 9.6.18. Примеры использования блока Rounding Function

[Скачать пример]

9.6.16. Блок вычисления операции отношения Relational Operator

Назначение:

Блок сравнивает текущие значения входных сигналов.

Параметры:

Relational Operator – Тип операции отношения (выбирается из списка):

= = - Тождественно равно.

~ = - Не равно.

< - Меньше.

< = - Меньше или равно. 

> = - Больше или равно.

> - Больше.

В операции отношения первым операндом является сигнал, подаваемый на первый (верхний) вход блока, а вторым операндом – сигнал, подаваемый на второй (нижний) вход. Выходным сигналом блока является 1, если результат вычисления операции отношения есть “ИСТИНА” и 0, если результат – “ЛОЖЬ”.

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

Для операций = = (тождественно равно) и ~ = (не равно) допускается использовать комплексные входные сигналы.

Входные сигналы также могут быть логического типа (boolean).

Примеры использования блока Relational Operator показаны на рис. 9.6.19.

Рис. 9.6.19. Примеры использования блока Relational Operator

[Скачать пример]

9.6.17. Блок логических операций Logical Operation

Назначение:

Реализует одну из базовых логических операций.

Параметры: 

Operator – Вид реализуемой логической операции (выбирается из списка):

AND – Логическое умножение (операция И).

OR – Логическое сложение (операция ИЛИ).

NAND – Операция И-НЕ.

NOR – Операция ИЛИ-НЕ.

XOR – Исключающее ИЛИ (операция сложения по модулю 2).

NOT – Логическое отрицание (НЕ).

Number of input ports – Количество входных портов.

Выходным сигналом блока является 1, если результат вычисления логической операции есть “ИСТИНА” и 0, если результат – “ЛОЖЬ”.

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

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

Входные сигналы могут быть как действительного, так и логического типа (boolean).

Примеры использования блока Logical Operation показаны на рис. 9.6.20.

Рис. 9.6.20. Примеры использования блока Logical Operation

[Скачать пример]

9.6.18. Блок побитовых логических операций Birwise Logical Operator

Назначение:

Реализует одну из базовых логических операций по отношению к целому числу в двоичном представлении.

Параметры: 

Bitwise operator – Вид реализуемой логической операции (выбирается из списка):

AND – Логическое умножение (операция И).

OR – Логическое сложение (операция ИЛИ).

XOR – Исключающее ИЛИ (операция сложения по модулю 2).

NOT – Логическое отрицание (НЕ).

SHIFT_LEFT – Поразрядный сдвиг влево.

SHIFT_RIGHT – Поразрядный сдвиг вправо.

Second operandВторой операнд. Задается шестнадцатеричным числом в символьном виде.

Одним из операндов блока Birwise Logical Operator является сигнал, подаваемый на вход блока, а вторым – параметр блока Second operand.

Входными сигналами блока должны быть беззнаковые переменные типа uint8, uint16 или uint32.

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

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

Примеры использования блока Birwise Logical Operator показаны на рис. 9.6.21.

Рис. 9.6.21. Примеры использования блока Birwise Logical Operator

[Скачать пример]

9.6.19. Блок комбинаторной логики Gombinatorical Logic

Назначение:

Преобразует входные сигналы в соответствии с таблицей истинности.

Параметры:

Truth table – Таблица истинности.

Блок Combinatorical Logic обеспечивает преобразование входного сигнала в соответствии с правилами, определяемыми таблицей истинности. Таблица истинности представляет собой список возможных выходных значений блока. Такое описание работы устройств принято в теории конечных автоматов. Число строк в таблице истинности определяется соотношением:

,
где
number of inрuts – число входных сигналов,
number of rows – число строк таблицы истинности.

Входные сигналы при составлении таблицы истинности считаются заданными. Они определяют индекс (номер) строки, в которой записываются выходные значения блока. Индекс каждой строки определяется выражением:

,
где
row index – индекс строки,
m – количество входных сигналов (элементов во входном векторе),
u(1) – первый входной сигнал (первый элемент входного вектора),
u(m) – последний входной сигнал (последний элемент входного вектора).

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

.

Ниже приведен пример формирования таблицы истинности операции логического И (AND) для двух операндов:

Таблица 9.6.2

Вход 2

Вход 1

Выражение для
индекса строки

Значение
индекса строки

Таблица истинности
(Выход)

0

0

1

0

1

0

2

0

0

1

3

0

1

1

4

1

На рис. 9.6.22 показан пример реализации операции логического И с помощью блока Combinatorical Logic. Параметр блока Truth table задан выражением [0;0;0;1].

Рис. 9.6.22. Пример использования блока Combinatorical Logic

[Скачать пример]

9.6.20. Блок алгебраического контура Algebraic Constraint

Назначение:

Выполняет поиск корней алгебраических уравнений.

Параметры:

Initial guess – Начальное значение выходного сигнала.

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

На рис. 9.6.23 показан пример решения системы нелинейных уравнений вида:

.

Поскольку данная система уравнений имеет два решения, то начальные значения блоков Algebraic Constraint заданы в виде векторов. Для первого (верхнего) блока начальное значение задано вектором [1 -1], а для второго (нижнего) блока – вектором [-1 1].

Рис. 9.6.23. Пример использования блока Algebraic Constraint

[Скачать пример]

Блок Algebraic Constraint может использоваться также и для решения нелинейных матричных уравнений. На рис. 9.6.24 показан пример решения нелинейного матричного уравнения вида:

.

Рис. 9.6.23. Пример использования блока Algebraic Constraint для решения нелинейного матричного уравнения.

[Скачать пример]

9.7. Signal&Systems - блоки преобразования сигналов и вспомогательные блоки

9.7.1. Мультиплексор (смеситель) Mux

Назначение: 

Объединяет входные сигналы в вектор.

Параметры: 

Number of Inputs - Количество входов.

Display option - Способ отображения. Выбирается из списка:

bar - Вертикальный узкий прямоугольник черного цвета.

signals - Прямоугольник с белым фоном и отображением меток входных сигналов.

none - Прямоугольник с белым фоном без отображения меток входных сигналов.

Входные сигналы блока могут быть скалярными и (или) векторными.

Если среди входных сигналов есть векторы, то количество входов можно задавать как вектор с указанием числа элементов каждого вектора. Например, выражение [2 3 1] определяет три входных сигнала, первый сигнал - вектор из двух элементов, второй сигнал - вектор из трех элементов, и последний сигнал - скаляр. В том случае, если размерность входного вектора не совпадает с указанной в параметре Number of Inputs, то после начала расчета Simulink выдаст сообщение об ошибке. Размерность входного вектора можно задавать как -1 (минус один). В этом случае размерность входного вектора может быть любой.

Параметр Number of Inputs можно задавать также в виде списка меток сигналов, например: Vector1, Vector2, Scalar. В этом случае метки сигналов будут отображаться рядом с соответствующими соединительными линиями.

Сигналы, подаваемые на входы блока должны быть одного типа (действительного или комплексного).

Примеры использования блока Mux показаны на рис. 9.7.1.

Рис. 9.7.1. Примеры использования блока Mux

[Скачать пример]

9.7.2. Демультиплексор (разделитель) Demux 

Назначение: 

Разделяет входной векторный сигнал на отдельные составляющие.

Параметры: 

Number of Outputs - Количество выходов.

Bus Selection Mode (флажок) - Режим разделения векторных сигналов.

Входным сигналами в обычном режиме является вектор, сформированный любым способом. Выходными сигналами являются скаляры или векторы, количество которых и размерность определяется параметром Number of Outputs и размерностью входного вектора.

Если количество выходов P (значение параметра Number of Outputs) равно размерности входного сигнала N, то блок выполняет разделение входного вектора на отдельные элементы.

Если количество выходов P меньше, чем размерность входного сигнала N, то размерность первых P-1 выходных сигналов равна отношению N/P, округленному до ближайшего большего числа, а размерность последнего выходного сигнала равна разности между размерностью входного сигнала и суммой размерностей первых P-1 выходов. Например, если размерность входного сигнала равна 8, а количество выходов равно 3, то первые два выходных вектора будут иметь размерность ceil(8/3) = 3, а последний выходной вектор будет иметь размерность 8 - (3+3) = 2.

Параметр Number of Outputs может быть задан также с помощью вектора, определяющего размерность каждого выходного сигнала. Например, выражение [2 3 1] определяет три выходных сигнала, первый сигнал - вектор из двух элементов, второй сигнал - вектор из трех элементов, и последний сигнал - скаляр. Размерность можно также задавать как -1 (минус один). В этом случае размерность соответствующего выходного сигнала определяется как разность между размерностью входного вектора и суммой размерностей заданных выходных сигналов. Например, если размерность входного вектора равна 6, а параметр Number of Outputs задан выражением [1 -1 3], то второй выходной сигнал будет иметь размерность 6 - (3+1) = 2.

Примеры использования блока Demux показаны на рис. 9.7.2.

Рис. 9.7.2. Примеры использования блока Demux

[Скачать пример]

В режиме Bus Selection Mode блок Demux работает не с отдельными элементами векторов, а с векторными сигналами в целом. Входной сигнал в этом режиме должен быть сформирован блоком Mux или другим блоком Demux. Параметр Number of Outputs в этом случае задается в виде скаляра, определяющего количество выходных сигналов, либо в виде вектора, каждый элемент которого определяет количество векторных сигналов в данном выходном сигнале. Например, при входном сигнале, состоящем из трех векторов параметр Number of Outputs, заданный вектором [2 1], определит два выходных сигнала, первый из которых будет содержать два векторных сигнала, а второй - один.

Примеры использования блока Demux в режиме Bus Selection Mode показаны на рис. 9.7.3.

Рис. 9.7.3. Примеры использования блока Demux в режиме Bus Selection Mode

[Скачать пример]

9.7.3. Блок шинного формирователя Bus Creator 

Назначение: 

Формирует шину из сигналов различных типов.

Параметры: 

Signal naming options - Способ именования сигнала. Выбирается из списка:

Inherit bus signal names from input ports - Наследовать имена входных сигналов.

Require input signal names to match signals below - Требуется ввести имена сигналов.

Number of inputs ports - Количество входных портов.

Signals in bus - Список сигналов, объединяемых в шину.

Rename selected signal - Новое имя выделенного сигнала. Параметр доступен, если выбрана опция Require input signal names to match signals below.

Блок позволяет объединять любые сигналы (векторные, матричные, комплексные, действительные и целые разных типов) в единую шину. Такая шина позволяет сократить количество соединительных линий в модели. Для разделения шины на отдельные составляющие необходимо использовать блок Bus Selector.

Окно параметров блока позволяет отыскать блок, который является источником сигнала. Для такого поиска необходимо выделить название сигнала в списке Signals in bus и нажать с помощью мыши кнопку Find. Блок являющийся источником выбранного сигнала будет выделен цветом.

На рис. 9.7.4 показан пример формирования шины с помощью блока Bus Creator и окно параметров этого блока. Там же показан, выделенный цветом, источник сигнала signal 2 - блок Constant3, найденный с помощью изложенной выше процедуры.

Рис. 9.7.4. Пример использования блока Bus Creator.

[Скачать пример]

9.7.4. Блок шинного селектора Bus Selector 

Назначение: 

Выделяет из шины требуемые сигналы.

Параметры: 

Signals in the bus - Имеющиеся в шине сигналы (входные сигналы).

Selected signals - Выделенные сигналы (выходные сигналы).

Muxed output (флажок) - Объединение выходных сигналов в один.

Шина может быть сформирована блоком Mux или Bus Creator.

Для извлечения сигнала из шины необходимо открыть окно параметров блока, выделить сигнал в окне Signals in the bus и, с помощью кнопки Select, скопировать имя сигнала в окно Selected signals. Для удаления сигнала из списка Selected signals необходимо выделить его имя в правом списке окна параметров блока и, затем, воспользоваться кнопкой Remove.

С помощью кнопок Up и Down можно изменить порядок расположения сигналов в шине, перемещая их в окне Selected signals вверх или вниз, соответственно.

Установка параметра Muxed output позволяет объединить сигналы в шину.

На рис. 9.7.5 показаны примеры использования блока Bus Selector и окно его параметров.

Рис. 9.7.5. Примеры использования блока Bus Selector.

[Скачать пример]

9.7.5. Блок селектора Selector 

Назначение:

Выбирает из вектора или матрицы требуемые элементы.

Параметры: 

Input Type – Тип входного сигнала. Выбирается из списка:

vector – Вектор.

matrix – Матрица.

Список параметров блока изменяется в зависимости от типа входного сигнала.

Source of element indices – Источник индексов элементов вектора. Выбирается из списка:

internal – Внутренний. Индексы выбираемых элементов вектора задаются параметром Elements.

external – Внешний. Индексы элементов вектора задаются с помощью внешнего входного сигнала.

Elements – Список индексов элементов входного вектора, передаваемых на выход блока. Задается в виде вектора. Значение параметра –1 (минус один) предписывает выбор всех элементов вектора.

Input port width – Размерность входного вектора.

Source of row indices – Источник индексов строк элементов матрицы.

Rows – Список индексов строк матрицы.

Source of column indices – Источник индексов столбцов элементов матрицы.

Columns – Список индексов столбцов матрицы.

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

E – Вход сигнала, задающего индексы выбираемых элементов вектора.

R – Вход сигнала, задающего индексы строк матрицы.

C – Вход сигнала, задающего индексы столбцов матрицы.

Блок выбирает во входном векторе или матрице и передает на выход только те сигналы, которые определены в параметрах блока или заданы внешним входным сигналом.

На рис. 9.7.6 приведены примеры использования блока Selector для различных вариантов настройки блока.

Рис. 9.7.6. Примеры использования блока Selector.

[Скачать пример]

9.7.6. Блок присвоения новых значений элементам массива Assignment

Назначение:

Заменяет элементы вектора или матрицы.

Параметры:

Input Type – Тип входного сигнала. Выбирается из списка:

vector – Вектор.

matrix – Матрица.

Список параметров блока изменяется в зависимости от типа входного сигнала.

Source of element indices – Источник индексов элементов вектора. Выбирается из списка:

internal – Внутренний. Индексы выбираемых элементов вектора задаются параметром Elements.

external – Внешний. Индексы элементов вектора задаются с помощью внешнего входного сигнала.

Elements – Список индексов элементов входного вектора, передаваемых на выход блока. Задается в виде вектора. Значение параметра –1 (минус один) предписывает выбор всех элементов вектора.

Source of row indices – Источник индексов строк элементов матрицы.

Rows – Список индексов строк матрицы.

Source of column indices – Источник индексов столбцов элементов матрицы.

Columns – Список индексов столбцов матрицы.

Блок выполняет замену отдельных элементов первого входного массива на элементы второго входного массива в соответствии со списком индексов. Список индексов может задаваться как параметр блока или считываться из внешнего управляющего сигнала.

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

E – Вход сигнала, задающего индексы выбираемых элементов вектора.

R – Вход сигнала, задающего индексы строк матрицы.

C – Вход сигнала, задающего индексы столбцов матрицы.

На рис. 9.7.7 приведены примеры использования блока Assignment для различных вариантов настройки блока.

Рис. 9.7.7. Примеры использования блока Assignment.

[Скачать пример]

9.7.7. Блок объединения сигналов Merge

Назначение:

Блок выполняет объединение входных сигналов в единый векторный сигнал.

Параметры:

Number of inputs – Количество входов.

Initial output – Начальное значение выходного сигнала. Если этот параметр не задан, то на выход блока проходит сигнал, значение которого было вычислено последним.

Allow unequal port widths (флажок) Разрешить неодинаковую размерность входных портов.

Input port offsets – Смещение входного сигнала. Задается в виде вектора, каждое значение которого определяет расположение соответствующего сигнала в выходном векторе.

Блок передает на выход значение сигнала вычисленное последним.

С помощью параметра Input port offsets можно регулировать расположение входных сигналов в результирующем векторе.

Размерность выходного сигнала определяется в соответствии с выражением:

,

где

wk – размерность k-го входного сигнала,
ok – смещение k-го входного сигнала.

На рис. 9.7.8 приведен пример использования блока Merge для объединения двух векторов. Параметр Input port offsets в примере задан вектором [0 3].

Рис. 9.7.8. Пример использования блока Merge для объединения входных сигналов.

[Скачать пример]

Следующий пример (рис. 9.7.9) демонстрирует свойство блока пропускать на выход сигнал, который был вычислен последним. В примере использованы блоки управляемых подсистем Enabled Subsystem, которые выполняют вычисления только в том случае, если на управляющий вход подсистемы подан не нулевой сигнал. В данном примере подсистема не выполняет какие-либо вычисления, а лишь пропускает сигнал со своего входа на выход. Таким образом, на выход блока Merge поочередно проходят гармонический либо пилообразный сигналы.

Рис. 9.7.9. Пример использования блока Merge

[Скачать пример]

9.7.8. Блок объединения сигналов в матрицу Matrix Concatenation

Назначение:

Блок выполняет объединение (конкатенацию) входных векторов или матриц.

Параметры:

Number of inputs – Количество входов.

Concatenation method – Способ объединения. Выбирается из списка:

Horizontal – Горизонтальный. Массивы объединяются добавлением новых массивов справа.

Vertical – Вертикальный. Массивы объединяются добавлением новых массивов снизу.

Примеры использования блока Matrix Concatenation приведены на рис. 9.7.10.

Рис. 9.7.10. Примеры использования блока Matrix Concatenation.

[Скачать пример]

9.7.9. Блок передачи сигнала Goto

Назначение:

Блок выполняет передачу сигнала к блоку From.

Параметры: 

Tag – Идентификатор сигнала.

Tag visibility – Признак видимости. Выбирается из списка:

local – Сигнал передается в пределах локальной подсистемы.

scoped – Сигнал передается в пределах локальной подсистемы и подсистемах нижнего уровня иерархии.

global – Сигнал передается в пределах всей модели.

Использование блока Goto совместно с блоком From обеспечивает передачу сигнала без линии связи. Для передачи могут использоваться сигналы любого типа.

В зависимости от выбранного параметра Tag visibility изменяется внешний вид блока:

Идентификатор сигнала помещается в квадратные скобки, если признак видимости имеет значение local. Например, [A], где A – идентификатор сигнала.

Идентификатор сигнала помещается в фигурные скобки, если признак видимости имеет значение scoped. Например, {A}.

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

На рис. 9.7.11. показан “беспроводной” способ передачи сигнала от источника синусоидального сигнала к блоку Scope в подсистему.

Рис. 9.7.11. Применение блока Goto.

[Скачать пример]

9.7.10. Блок приема сигнала From 

Назначение:

Блок выполняет прием сигнала от блока Goto.

Параметры:

Goto tag – Идентификатор принимаемого сигнала. Должен совпадать с идентификатором указанным в соответствующем блоке Goto.

Использование блока From совместно с блоком Goto обеспечивает передачу сигнала без линии связи.

Признак видимости сигнала отображается на пиктограмме блока таким же способом, что и у блока Goto.

В модели может быть сколь угодно много блоков From, принимающих сигнал от одного блока Goto.

На рис. 9.7.12. показан пример использования блоков From в модели. В примере один блок Goto передает сигнал трем блокам From (двум в основной модели и одному в подсистеме).

Рис. 9.7.12. Применение блока From.

[Скачать пример]

9.7.11. Блок признака видимости сигнала Goto Tag Visibility

Назначение:

Блок отображает признак видимости сигнала передаваемого блоком Goto.

Параметры:

Goto tag – Идентификатор сигнала передаваемого блоком Goto.

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

Пример использования блока показан на рис. 9.7.13.

Рис. 9.7.13. Применение блока Goto Tag Visibility.

[Скачать пример]

9.7.12. Блок создания общей области памяти Data Store Memory

Назначение:

Блок создает поименованную область памяти для хранения данных.

Параметры:

Data store паmе – Имя области памяти.

Initial value — Начальное значение.

Interpret vector parameters as 1-D (флажок) – Интерпретировать вектор параметров данных как одномерный вектор.

Блок используется совместно с блоками Data Store Write (запись данных) и Data Store Read (считывание данных).

Параметр Initial value задает не только начальное значение сигнала, но и его размерность. Например, если начальное значение сигнала задано матрицей [0 1; 2 3], то сохраняемый сигнал должен быть матрицей 2х2.

Если блок Data Store Memory расположен в модели верхнего уровня, то заданную им область памяти можно использовать как в самой модели, так и во всех подсистемах нижнего уровня иерархии. Если блок Data Store Memory расположен в подсистеме, то заданную им область памяти можно использовать в данной подсистеме и всех подсистемах нижнего уровня иерархии.

Блок работает с действительными сигналами типа double.

Пример использования блока Data Store Memory совместно с блоками Data Store Write и Data Store Read показан на рис. 9.7.14 (п.9.17.14).

9.7.13. Блок записи данных в общую область памяти Data Store Write

Назначение:

Блок записывает данные в поименованную область памяти.

Параметры:

Data store паmе – Имя области памяти.

Sample time Шаг модельного времени.

Операция записи выполняется для значения сигнала полученного на предыдущем шаге расчета.

В модели могут использоваться несколько блоков Data Store Write, выполняющих запись в одну область памяти. Однако, если, запись производится на одном и том же шаге расчета, то результат будет не предсказуем.

Пример использования блока Data Store Write совместно с блоками Data Store Memory и Data Store Read показан на рис. 9.7.14 (п.9.17.14).

9.7.14. Блок считывания данных из общей области памяти Data Store Read

Назначение:

Блок считывает данные из поименованной области памяти.

Параметры:

Data store паmе – Имя области памяти.

Sample time Шаг модельного времени.

Операция считывания выполняется на каждом шаге расчета.

В модели могут использоваться несколько блоков Data Store Read, выполняющих считывание данных из одной и той же области памяти. Пример использования блока Data Store Read совместно с блоками Data Store Memory и Data Store Write показан на рис. 9.7.14. В примере используется триггерная подсистема, выполняющая вычисления по переднему фронту управляющего сигнала. Таким образом, запись значений в общую область памяти происходит только в моменты изменения управляющего сигнала в положительном направлении. В остальные моменты времени значения данных в области памяти не изменяются.

Рис. 9.7.14. Использование блоков Data Store Memory, Data Store Write и Data Store Read.

[Скачать пример]

9.7.15. Блок преобразования типа сигнала Data Type Conversion

Назначение:

Блок преобразует тип входного сигнала.

Параметры: 

Data type – Тип данных выходного сигнала. Может принимать значения (выбираются из списка): auto, double, single, int8, int16, int32, uint8, uint16, uint32 и boolean.

Saturate on integer overflow (флажок) – Подавлять переполнение целого. При установленном флажке ограничение сигналов целого типа выполняется корректно.

Значение auto параметра Data type используется в том случае, если необходимо установить тип данных такой же, как у входного порта блока получающего сигнал от данного блока.

Входной сигнал блока может быть действительным или комплексным. В случае комплексного входного сигнала выходной сигнал также будет комплексным.

Блок работает со скалярными, векторными и матричными сигналами.

На рис. 9.7.15. показаны примеры использования блока Data Type Conversion.

Рис. 9.7.15. Использование блока Data Type Conversion

[Скачать пример]

9.7.16. Блок преобразования размерности сигнала Reshape 

Назначение:

Блок изменяет размерность векторного или матричного сигнала.

Параметры:

Output dimensionality – Вид размерности выходного сигнала. Выбирается из списка:

1-D array – Одномерный массив (вектор).

Column vector – Вектор-столбец.

Row vector – Вектор-строка

Customize – Матрица или вектор заданной размерности. Для векторного выходного сигнала параметр задается как скаляр, определяющий число элементов выходного вектора. Для матричного выходного сигнала параметр задается как вектор, определяющий количество строк и столбцов выходной матрицы. Значение параметра должно соответствовать количеству элементов во входном массиве. В случае матричных сигналов данные выбираются из столбцов входной матрицы и последовательно заносятся в столбцы выходной матрицы.

Output dimensions – Значение размерности выходного сигнала. Параметр доступен, если вид размерности установлен как Customize.

Примеры использования блока Reshape показаны на рис. 9.7.16.

Рис. 9.7.16. Примеры использования блока Reshape

[Скачать пример]

9.7.17. Блок определения размерности сигнала Width 

Назначение:

Вычисляет размерность входного сигнала.

Параметры:

Нет.

Входным сигналом блока может быть действительный или комплексный сигнал любого типа.

Выходной сигнал блока имеет тип double.

Примеры использования блока Width показаны на рис. 9.7.17.

Рис. 9.7.17. Примеры использования блока Width

[Скачать пример]

9.7.18. Блок определения момента пересечения порогового значения Hit Crossing

Назначение:

Определяет момент времени, когда входной сигнал пересекает заданное пороговое значение.

Параметры:

Hit crossing offset – Порог. Значение, пересечение которого входным сигналом требуется идентифицировать.

Hit crossing direction – Направление пересечения. Выбирается из списка:

rising – Возрастание.

failing – Убывание.

either – Оба направления.

Show output port (флажок) Показать выходной порт. В том случае, если этот флажок снят, то точка пересечения сигналом порогового уровня находится, но выходной сигнал блоком не генерируется.

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

Пример использования блока Hit Crossing показан на рис. 9.7.18. Блок определяет моменты пересечения в обоих направлениях синусоидальным сигналом уровня 0.5.

Рис. 9.7.18. Пример использования блока Hit Crossing

[Скачать пример]

9.7.19. Блок установки начального значения сигнала IC

Назначение:

Задает начальное значение сигнала.

Параметры:

Initial value – Начальное значение.

Выходной сигнал блока IC равен значению параметра Initial value на первом шаге расчета вне зависимости от величины входного сигнала блока. На остальных расчетных шагах входной сигнал проходит на выход блока без каких-либо изменений.

Пример использования блока IC показан на рис. 9.7.19. В примере начальное значение сигнала задано равным 0.5. Шаг расчета задан равным .

Рис. 9.7.19. Пример использования блока IC

[Скачать пример]

9.7.20. Блок проверки сигнала Signal Specification

Назначение:

Выполняет проверку сигнала на соответствие заданным для сигнала параметрам.

Параметры:

Dimension - Размерность сигнала. Задается скаляром, если входной сигнал векторный или матрицей вида [m n] (m – количество строк, n – количество столбцов), если входной сигнал – матрица. Если значение параметра задано как –1 (минус 1), то проверка не производится.

Sample time – Шаг модельного времени. Задается вектором вида [period  offset], где period – значение шага модельного времени, offset – смещение. Если значение параметра задано как –1 (минус 1), то проверка не производится. Можно также задавать значение –1 (минус 1) и отдельно для параметров period или offset. В этом случае не будет проводиться проверка именно этих параметров.

Data Туре - Тип данных. Выбирается из списка: auto (проверка не производится), double, single, int8, uint8, int16, uint16, int32, uint32 или boolean.

Signal typeТип сигнала. Выбирается из списка: auto (проверка не производится), real или complex.

На пиктограмме блока отображаются проверяемые параметры сигнала и их значения. Пример использования блока Signal Specification показан на рис. 9.7.20.

Рис. 9.7.20. Пример использования блока Signal Specification

[Скачать пример]

9.7.21. Датчик свойств сигнала Probe

Назначение:

Блок позволяет получить численные значения параметров сигнала.

Параметры:

Probe width (флажок) – Определение числа элементов в векторном или матричном сигнале.

Probe Sample time (флажок) – Определение значения эталонного времени.

Probe Complex Signal (флажок) – Определение типа сигнала (возвращает 1, если сигнал представлен в комплексном виде, и 0 в противном случае).

Probe signal dimension (флажок) – Определение размерности сигнала.
Контролируются те параметры, для которых установлены флажки. Числом отмеченных флажков задается число выходов блока.

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

Пример использования блока Probe показан на рис. 9.7.21.

Рис. 9.7.21. Пример использования блока Probe

[Скачать пример]

9.7.22. Блок, задающий количество итераций Function-Call Generator

Назначение:

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

Параметры:

Sample time – Шаг модельного времени.

Number of iterations – Количество итераций.

Блок используется совместно с управляемыми подсистемами Function-Call Subsystem или Triggered Subsystem. Для управляющих блоков внутри этих подсистем параметр Trigger type должен иметь значение function-call.

Пример использования блока Function-Call Generator показан на рис. 9.7.22. В примере использована управляемая подсистема, выходной сигнал которой увеличивается на единицу при каждом ее вызове. Для первой подсистемы блок Function-Call Generator задает количество итераций на каждом шаге равное 1, а для второй – равное 3.

Рис. 9.7.22. Пример использования блока Function-Call Generator

[Скачать пример]

9.7.23. Информационный блок Model Info

Назначение:

Блок отображает информацию о модели.

Параметры:

Model properties – Свойства модели:

Created – Дата и время создания модели.

Creator – Данные об авторе

Modified by – Данные о пользователе вносившем изменения.

ModifiedDate – Дата изменения.

ModifiedComment – Описание изменений.

ModelVersion – Версия модели.

Description – Описание модели.

LastModificationDate – Дата последнего изменения.

Horizontal text allignment – Способ выравнивания текста по горизонтали. Выбирается из списка:

Center – По центру.

Left – По левому краю.

Right – По правому краю.

Show block frame (флажок) Отобразить рамку блока.

Для отображения данных на пиктограмме блока необходимо с помощью кнопки скопировать нужный параметр из окна Model properties в окно редактирования. В блоке может отображаться статическая информация, которую пользователь вносит сам (например, данные об авторе, описание модели и т.п.) и динамически обновляемая информация (например, дата создания модели, дата последней модификации и т.п.). Динамически обновляемая информация представляется в окне блока как ссылка на переменную, которая ее содержит. Ссылка имеет вид %<имя_переменной>. Например, ссылка %<LastModificationDate> означает, что в требуемой позиции будет выведено значение переменной LastModificationDate, содержащей дату последней модификации модели.

На пиктограмме блока отображается также часть информации заданная с помощью команды Model Properties меню File окна модели.

Пример использования блока Model Info показан на рис. 9.7.23. Там же показано окно параметров данного блока.

Рис. 9.7.23. Пример использования блока Model Info

[Скачать пример]

9.8. Function & Tables – блоки функций и таблиц

9.8.1. Блок задания функции Fcn

Назначение: 

Задает выражение в стиле языка программирования C . 

Параметры: 

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

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

Входной сигнал. Входной сигнал в выражении обозначается u, если он является скаляром. Если входной сигнал – вектор, необходимо указывать номер элемента вектора в круглых скобках. Например, u(1) и u(3) – первый и третий элементы входного вектора.

Константы.

Арифметические операторы (+ – * /).

Операторы отношения (= = != > < >= <=).

Логические операторы (&& | | !).

Круглые скобки.

Математические функции: abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt, tan, и tanh.

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

Операторы отношения и логические операторы возвращают значения в виде логического нуля (FALSE) или логической единицы (TRUE).

Операторы, допускаемые к использованию в выражении, имеют следующий приоритет (в порядке убывания):

( )

+ – (унарные)

Возведение в степень

!

/

+ – (бинарные)

> < <= >=

= !=

&&

| |

Блок не поддерживает матричные и векторные операции. Выходной сигнал блока всегда – скаляр.

Примеры использования блока Fcn показаны на рис. 9.8.1.

Рис. 9.8.1. Примеры использования блока Fcn

[Скачать пример]

9.8.2. Блок задания функции MATLAB Fcn

Назначение:

Задает выражение в стиле языка программирования MATLAB.

Параметры: 

MATLAB function – Выражение на языке MATLAB.

Output dimensions – Размерность выходного сигнала. Значение параметра –1 (минус один) предписывает блоку определять размерность автоматически.

Output signal type – Тип выходного сигнала. Выбирается из списка:

real – Действительный сигнал.

complex – Комплексный сигнал.

auto – Автоматическое определение типа сигнала.

Collapse 2-D results to 1-D – Преобразование двумерного выходного сигнала к одномерному.

Входной сигнал в выражении обозначается u, если он является скаляром. Если входной сигнал – вектор, необходимо указывать номер элемента вектора в круглых скобках. Например, u(1) и u(3) – первый и третий элементы входного вектора. Если выражение состоит из одной функции, то ее можно задать без указания параметров. Выражение может содержать также собственные функции пользователя, написанные на языке MATLAB и оформленные в виде m-файлов. Имя m-файла не должно совпадать с именем модели (mdl-файлом).

Рис. 9.8.2 демонстрирует применение блока MATLAB Fcn. В примере используется функция My_Matlab_Fcn_1, вычисляющая сумму и произведение двух элементов входного вектора. Текст функции (файл My_Matlab_Fcn_1.m) приведен ниже:

function y=My_Matlab_Fcn_1(x,k);
y(1)=x*k;
y(2)=x + k;

Выражение для вызова функции, заданное параметром MATLAB function, имеет вид: My_Matlab_Fcn_1(u(1),u(2)) .

Рис. 9.8.2. Примеры использования блока MATLAB Fcn

[Скачать пример]

9.8.3. Блок задания степенного многочлена Polynomial

Назначение:

Задает степенной многочлен.

Параметры:

Polynomial coefficients – Вектор коэффициентов полинома. Коэффициенты расположены в векторе по убыванию степени независимой переменной. Например, для полинома х2+2х+5 необходимо задать вектор коэффициентов [1 2 5]. Коэффициенты должны быть действительного типа.

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

На рис. 9.8.3 показаны примеры использования блока Polynomial. В примерах для первого полиномиального блока коэффициенты заданы вектором [1 2 5], а для второго – [1 2 0 5].

Рис. 9.8.3. Примеры использования блока Polynomial

[Скачать пример] 

9.8.4. Блок одномерной таблицы Look-Up Table

Назначение:

Задает в табличной форме функцию одной переменной.

Параметры: 

Vector of input values – Вектор значений входного сигнала. Может быть задан в виде дискретных значений (например, [1 2 7 9]), либо в виде непрерывного диапазона (например, [0:10]). Элементы вектора или граница диапазона могут быть заданы в виде вычисляемого выражения, например [tan(5) sin(3)].

Vector of output values – Вектор выходных значений, соответствующий вектору входных значений.

Блок работает в соответствии со следующими правилами:

Если входной сигнал равен одному из элементов вектора входных значений (Vector of input values), то выходное значение блока будет равно соответствующему элементу вектора выходных значений (Vector of output values). Например, пусть вектор входных значений равен [0 1 2 5], а вектор выходных значений [-5 –10 3 100], тогда при входном сигнале равном 1 выходной сигнал будет равен –10.

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

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

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

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

На рис. 9.8.4 показан пример использования блока Look-Up Table. В примере вектор входных значений равен [-5:5], а вектор выходных значений равен tanh([-5:5]).

Рис. 9.8.4. Пример использования блока Look-Up Table

[Скачать пример]

9.8.5. Блок двумерной таблицы Look-Up Table(2D)

Назначение:

Задает в табличной форме функцию двух переменных.

Параметры: 

Row – Строка. Вектор значений первого аргумента. Задается аналогично параметру Vector of input values одномерной таблицы. Элементы вектора должны быть упорядочены по возрастанию.

Column – Столбец. Вектор значений второго аргумента. Задается аналогично предыдущему параметру.

Table – Таблица значений функции. Задается в виде матрицы. Количество строк должно быть равно числу элементов вектора Row, а количество столбцов – числу элементов вектора Column.

Правила формирования таблицы значений функции показаны в Табл.9.8.1.

Таблица 9.8.1.

Второй аргумент (Column)

3

7

9

Первый

аргумент

(Row)

2

10

20

30

4

40

50

60

8

70

80

90

Для приведенной таблицы значения параметров блока будут следующими:

Row – [2 4 8] ,
Column – [3 7 9] ,
Table – [10 20 30;40 50 60;70 80 90] .

Пример использования блока Look-Up Table(2D) показан на рис. 9.8.5. Параметры блока заданы в соответствии с Табл. 9.8.1.

Рис. 9.8.5. Пример использования блока Look-Up Table(2D)

[Скачать пример]

9.8.6. Блок многомерной таблицы Look-Up Table (n-D) 

Назначение:

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

Параметры:

Number of table dimensions – Количество размерностей таблицы (аргументов функции). Значение параметра выбирается из списка: 1, 2, 3, 4, More…(Много).

First input (row) breakpoint set – Вектор значений первого аргумента (строка). Задается аналогично параметру Row двумерной таблицы.

Second (column) input breakpoint set – Вектор значений второго аргумента (столбец). Задается аналогично предыдущему параметру.

Third input breakpoint set – Вектор значений третьего аргумента. Параметр доступен, если количество размерностей таблицы задано больше 2.

Fourth input breakpoint set – Вектор значений четвертого аргумента. Параметр доступен, если количество размерностей таблицы задано больше 3.

Fifth..Nth input breakpoint sets (cell array) – Массив значений пятого и остальных аргументов (массив ячеек). Параметр доступен, если количество размерностей таблицы задано больше 4.

Explicit number of dimensions – Точное количество размерностей таблицы (аргументов функции). Параметр доступен и его необходимо задавать, если параметр Number of table dimensions имеет значение More.

Index search method – Метод поиска по индексам. Принимает значения из списка:

Evenly Spaced Points – Поиск для равноотстоящих индексов. Дает наилучший результат по скорости поиска, если векторы аргументов имеют равноотстоящие друг от друга значения (например, [10 20 30]).

Linear Search – Линейный поиск. Дает наилучший результат, если значения входных сигналов на текущем шаге расчета отличаются от предыдущих значений незначительно.

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

Begin index searches using previous index results (флажок) Начинать поиск, используя результаты предыдущего поиска.

Use one (vector) input port instead of N ports (флажок) Использовать многомерный входной порт вместо нескольких одномерных.

Table data – Таблица значений функции. Задается по правилам формирования многомерных массивов.

Interpolation method – Метод интерполяции. Выбирается из списка:

None – Интерполяция не выполняется.

Linear – Линейная интерполяция.

Cubic Spline – Кубическая сплайн-интерполяция.

Extrapolation method – Метод экстраполяции. Выбирается из списка: None, Linear или Cubic Spline.

Action for out of range input – Реакция на выход входного сигнала за границы вектора значений аргумента. Выбирается из списка:

None – Реакция отсутствует.

Warning – Вывод предупреждающего сообщения в командной строке MATLAB.

Error – Вывод сообщения об ошибке в командной строке MATLAB и остановка расчета.

Пример использования блока Look-Up Table (n-D) для задания функции двух аргументов показан на рис. 9.8.6. Параметры блока заданы в соответствии с Табл. 9.8.1. Для расчета выходных значений задана кубическая сплайн-интерполяция.

Рис. 9.8.6. Пример использования блока Look-Up Table (n-D)

[Скачать пример] 

9.8.7. Блок таблицы с прямым доступом Direct Loop-Up Table (n-D)

Назначение:

Задает многомерную таблицу с прямым доступом к ее элементам. Индексация элементов начинается с нуля.

Параметры:

Number of table dimensions – Количество размерностей таблицы (аргументов функции). Значение параметра выбирается из списка: 1, 2, 3, 4, More…(Много).

Explicit number of dimensions – Точное количество размерностей таблицы (аргументов функции). Параметр доступен, и его необходимо задавать, если параметр Number of table dimensions имеет значение More.

Inputs select this object from table – Задать вид выходного сигнала. Выбирается из списка:

Element – Элемент. Если на выходе блока необходимо получить отдельный элемент таблицы, то на вход блока должны подаваться значения всех индексов элемента.

Column – Столбец. Если на выходе необходимо получить столбец, то на вход блока необходимо подавать на один индекс меньше, по сравнению с предыдущим вариантом.

D Matrix – Матрица. В этом случае на вход блока подается на два индекса меньше, по сравнению с первым вариантом.

Make table an input – Таблица значений функции задается через отдельный вход блока, а не параметром Table data.

Table data – Таблица значений функции. Задается по правилам формирования многомерных массивов.

Action for out of range input – Реакция на выход входного сигнала за границы вектора значений аргумента. Выбирается из списка:

None – Реакция отсутствует.

Warning – Вывод предупреждающего сообщения в командной строке MATLAB.

Error – Вывод сообщения об ошибке в командной строке MATLAB и остановка расчета.

Примеры использования блока Look-Up Table (n-D) для задания функции двух аргументов показаны на рис. 9.8.7. В первом случае таблица значений функции ([10 20 30;40 50 60;70 80 90]) задана в параметрах блока, а во втором –подается через отдельный вход (установлен флажок Make table an input)

Рис. 9.8.7. Пример использования блока Direct Loop-Up Table (n-D)

[Скачать пример] 

9.8.8. Блок работы с индексами PreLook-Up Index Search

Назначение:

Вычисляет значение индекса и относительную величину входного сигнала. Используется совместно с блоком Interpolation (n-D) using PreLook-Up.

Параметры:

Breakpoint data – Вектор узловых точек. Данный параметр аналогичен вектору входного сигнала блоков задающих табличные функции.

Index search method - Метод поиска индексов. Выбирается из списка:

Evenly Spaced Points – Поиск для равноотстоящих индексов.

Linear Search – Линейный поиск.

Binary Search – Двоичный поиск.

Begin index search using previous index result (флажок) – Начало поиска индекса с последнего результата.

Output only the index (флажок) – Вывод только индексов.

Process out of range inputТип процесса при выходе входного сигнала за заданные пределы. Выбирается из списка:

Clip to Range – Ограничить предельным значением.

Linear ExtrapolationЛинейная экстраполяция.

Action for out of range input – Реакция на выход входного сигнала за границы вектора узловых точек. Выбирается из списка:

None – Реакция отсутствует.

Warning – Вывод предупреждающего сообщения в командной строке MATLAB.

Error – Вывод сообщения об ошибке в командной строке MATLAB и остановка расчета.

Выходным сигналом блока является вектор, первый элемент вектора – найденный индекс, а второй – относительная величина входного сигнала. Блок находит индекс того элемента, значение которого не превышает величину входного сигнала. Например, для вектора узловых точек [0 5 10 20 50 100] и входного сигнала равного 55 найденный индекс будет равен 4 .

Относительная величина входного сигнала рассчитывается в соответствии с выражением:

,

где

x – входной сигнал,

i – найденный индекс,

A – вектор узловых точек.

Для приведенного выше примера относительная величина входного сигнала будет равна 0.1.

Пример поясняющий работу блока, показан на рис. 9.8.8.

Рис. 9.8.8. Пример использования блока PreLook-Up Index Search

[Скачать пример] 

9.8.9. Блок интерполяции табличной функции Interpolation (n-D) using PreLook-Up

Назначение:

Вычисляет значение табличной функции по значению индекса и относительной величине входного сигнала. Используется совместно с блоками PreLook-Up Index Search.

Параметры:

Number of table dimensions – Количество размерностей таблицы (аргументов функции). Значение параметра выбирается из списка: 1, 2, 3, 4, More…(Много).

Explicit number of dimensions – Точное количество размерностей таблицы (аргументов функции). Параметр доступен, и его необходимо задавать, если параметр Number of table dimensions имеет значение More.

Table data – Таблица значений функции. Задается по правилам формирования многомерных массивов.

Interpolation method – Метод интерполяции. Выбирается из списка:

None – Интерполяция не выполняется.

Linear – Линейная интерполяция.

Extrapolation method – Метод экстраполяции. Выбирается из списка: None или Linear.

Action for out of range input – Реакция на выход входного сигнала за границы вектора значений аргумента. Выбирается из списка:

None – Реакция отсутствует.

Warning – Вывод предупреждающего сообщения в командной строке MATLAB.

Error – Вывод сообщения об ошибке в командной строке MATLAB и остановка расчета.

Пример поясняющий работу блока, показан на рис. 9.8.9. Таблица значений функции задана матрицей [10 20 30;40 50 60;70 80 90].

Рис. 9.8.9. Пример использования блока Interpolation (n-D) using PreLook-Up

[Скачать пример] 

Раздел библиотеки Function & Tables содержит еще два блока - S-Function и S-Function Builder. Они будут подробно рассмотрены в разделе, посвященном созданию S-функций.

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

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

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

Позволяет создавать и отлаживать фрагменты модели по отдельности, что повышает технологичность создания модели.

Позволяет создавать собственные библиотеки.

Дает возможность синхронизации параллельно работающих подсистем.

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

Дает возможность связывать подсистему с каким-либо m-файлом, обеспечивая запуск этого файла при открытии подсистемы (нестандартное открытие подсистемы).

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

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

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

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

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

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

Скопировать нужную подсистему из библиотеки Subsystem в модель.

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

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

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

[Скачать пример]

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

[Скачать пример]

9.9.1. Виртуальная и монолитная подсистемы Subsystem и Atomic Subsystem

Доступ к окну параметров подсистемы осуществляется через меню Edit командой Block Parameters…

Параметры:

Show port labels – Показать метки портов.

Treat as atomic unit (флажок) – Считать подсистему монолитной. Таким образом, блоки виртуальной и монолитной подсистем – это один и тот же блок, отличающийся значением данного параметра.

Access – Доступность подсистемы для изменений. Выбирается из списка:

ReadWrite – Пользователь может открывать и изменять подсистему.

ReadOnly – Пользователь может открывать подсистему только для просмотра.

NoReadOrWrite – Пользователь не может открывать и изменять подсистему.

Name of error callback function – Имя функции используемой для обработки ошибок возникающих в данной подсистеме.

Остальные параметры подсистемы доступны при разработке приложений с использованием Real-Time Workshop и рассмотрены в документации на это приложение.

Находящийся в библиотеке блок Subsystem (или Atomic Subsystem) содержит входной и выходной порты и линию связи между ними.

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

9.9.2. Управляемая уровнем сигнала подсистема Enabled Subsystem 

Подсистема Enabled Subsystem (в дальнейшем E-подсистема) активизируется при наличии положительного сигнала на управляющем входе. Если входной сигнал векторный, то подсистема активизируется, если хотя бы один элемент принимает положительное значение. Величина выходного сигнала в том случае, если система заблокирована, определяется настройками выходных портов подсистемы (блоки Outport). В том случае если параметр Output when disabled (вид сигнала на выходе подсистемы) выходного порта имеет значение held, то выходной сигнал подсистемы равен последнему рассчитанному ею значению, если же этот параметр имеет значение reset, то выходной сигнал подсистемы равен значению задаваемому параметром Initial output (начальное значение).

Свойства E-подсистемы определяются параметрами блока Enable, который может находиться в любом месте данной подсистемы. Его параметры перечислены ниже.

Параметры:

States when enabling – Состояние при запуске. Параметр задает состояние подсистемы при каждом запуске. Выбирается из списка:

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

reset – Использовать начальное (исходное) состояние.

Show output port (флажок) Показать выходной порт. При установленном флажке на пиктограмме блока Enable появляется дополнительный выходной порт, сигнал с которого может быть использован для управления блоками внутри подсистемы.

На рис. 9.9.3 показан пример модели с подсистемой и схема этой подсистемы. В примере параметр States when enabling блока Enable имеет значение held. Параметр Output when disabled первого выходного порта подсистемы имеет значение reset, а второго – held. Как видно из временных диаграмм при выключении подсистемы сигнал первого выходного порта равен начальному значению (нулю), а сигнал второго выходного порта равен последнему рассчитанному значению в момент активности подсистемы.

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

[Скачать пример]

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

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

[Скачать пример]

9.9.3. Управляемая фронтом сигнала подсистема Triggered Subsystem

Подсистема Triggered Subsystem (в дальнейшем T-подсистема) включается фронтом (перепадом уровня) управляющего сигнала и выполняет вычисления только на том шаге моделирования, где произошло это изменение. Если входной сигнал векторный, то подсистема активизируется, если хотя бы в одном элементе изменяется уровень сигнала. Возврат T-подсистемы в исходное состояние не производится (подсистема сохраняет последнее значение до следующего запуска), поэтому параметр States when enabling выходных портов имеет значение held, и недоступен для изменения.

В T-подсистеме могут использоваться блоки, для которых модельное время является наследуемым параметром от предыдущего блока (например, Gain или Logical Operator), а также дискретные блоки, для которых параметр sample time имеет значение –1 (минус один).

Свойства T-подсистемы определяются параметрами блока Trigger, который может находиться в любом месте данной подсистемы. Его параметры перечислены ниже.

Параметры:

Trigger type Тип триггера. Выбирается из списка:

rising – Активизация подсистемы положительным фронтом.

falling – Активизация подсистемы отрицательным фронтом.

either – Активизация подсистемы как положительным, так и отрицательным фронтом.

function-call – Активизация подсистемы определяется логикой работы заданной S-функции.

Show output port (флажок) Показать выходной порт.

На рис. 9.9.5 показан пример модели с T-подсистемой. Сама T-подсистема содержит лишь один усилитель с коэффициентом передачи равным 1. Как видно из временных диаграмм, подсистема срабатывает по положительному фронту управляющего сигнала. Выходной сигнал подсистемы остается неизменным до следующего положительного фронта управляющего сигнала.

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

[Скачать пример]

9.9.4. Управляемая уровнем и фронтом сигнала подсистема Enabled and Triggered Subsystem

Подсистема Enabled and Triggered Subsystem (в дальнейшем ET-подсистема) включается фронтом сигнала поступающего на T-вход системы при наличии положительного сигнала на E-входе системы. Так же как и Triggered Subsystem эта подсистема выполняет вычисления только на том шаге моделирования, где произошло изменение управляющего сигнала на T-входе. Параметр States when enabling блока Enable не оказывает влияния на работу ET-подсистемы.

Оба управляющих сигнала могут быть векторными.

Пример ET-подсистемы дан на рис. 9.9.6.

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

[Скачать пример]

9.9.5. Управляемая S-функцией подсистема Function-call subsystem

Function-call subsystem (в дальнейшем FC-подсистема) является T-подсистемой, предназначенной для использования совместно с S-функцией написанной на языке C. Используя специальные средства, можно обеспечить выполнение подсистемы во время выполнения S-функции. На время выполнения FC-подсистемы работа S-функции останавливается, а по окончании выполнения FC-подсистемы работа S-функции возобновляется. Таким образом, FC-подсистема обеспечивает создание S-функций, запускающих подсистемы составленные из Simulink-блоков. Механизм создания таких S-функций описан в документации Simulink, посвященной созданию S-функций.

Для работы с FC-подсистемой можно использовать также Function-Call Generator и средства пакета событийного моделирования Stateflow.

9.9.6. Блок условного оператора If

Назначение:

Обеспечивает формирование управляющих сигналов для подсистем If Action

Subsystem. Блок является аналогом оператора if-else языка программирования C.

Параметры:

Number of inputs – Количество входов.

If expression – Условное выражение. Условное выражение может включать в себя следующие знаки: <. <=, ==, ~=, >, >=, &, |, [ ], а также унарный минус. Если записанное условное выражение истинно, то на выходном If-порту блока формируется управляющий сигнал.

Elseif expressions – Одно или список альтернативных условных выражений разделенных запятыми, вычисляющихся, если условное выражение If expression ложно. Каждому условному выражению, записанному в списке Elseif expressions соответствует выходной Elseif-порт на котором формируется управляющий сигнал, если соответствующее условное выражение истинно. При этом алгоритм вычисления альтернативных условных выражений таков, что если одно из альтернативных условных выражений окажется истинным, то следующие в списке выражения не проверяются. Альтернативное условное выражение может включать в себя те же знаки, что и выражение If expression.

Show else condition (флажок) – Показать Else-порт. На Else-порту формируется управляющий сигнал, если условное выражение и все альтернативные условные выражения ложны.

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

Если входные сигналы блока являются скалярами, то для их обозначения в выражениях используется запись вида u1, u2 ,u3 и т.д. Если входные сигналы векторные, то для обозначения элементов вектора используются выражения вида u1(1), u1(2), u2(1), u2(2) и т.д.

На рис. 9.9.7 показан пример использования блока If совместно с подсистемами If Action Subsystem. В примере первая подсистема пропускает через себя входной сигнал если входной сигал блока If больше 1, вторая – если входной сигнал меньше –1 (минус один), и третья – если входной сигнал лежит в интервале от -1 до +1.

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

if (u1 > 1) {
If Action Subsystem 1;
}
elseif (u1 < -1){
If Action Subsystem 2;
}
else {
If Action Subsystem 3;
}

Рис. 9.9.7 Использование блока If совместно с подсистемами If Action Subsystem

[Скачать пример]

9.9.7. Блок переключателя Switch Case

Назначение:

Обеспечивает формирование управляющих сигналов для подсистем Case Action Subsystem. Блок является аналогом оператора Switch языка программирования C.

Параметры:

Case conditions – Список значений входных сигналов (целое число). Каждому значению соответствует отдельный выходной Case-порт. Если значение входного сигнала, поступающего на вход блока Switch Case, совпадает с каким либо значением из списка, то на соответствующем выходе блока формируется управляющий сигнал. Если входной сигнал не является целым, то его дробная часть отбрасывается. В выражении Case conditions можно использовать квадратные скобки, если необходимо вырабатывать управляющий сигал на каком-либо порту для нескольких значений входного сигнала. Например, выражение {1,[7,9]} задает два выходных Case-порта. На первом из них управляющий сигнал формируется, если входной сигнал блока равен 1