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
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-порту блока формируется управляющий сигнал.
|