оглавление   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации
Свободно распространяемое бесплатное ПО компьютерного моделирования

Cистема численно-математического моделирования MatLab

Signal Systems - блоки преобразования сигналов и вспомогательные блоки

И.В.Черных

    • 9.7.1. Мультиплексор (смеситель) Mux
    • 9.7.2. Демультиплексор (разделитель) Demux
    • 9.7.3. Блок шинного формирователя Bus Creator
    • 9.7.4. Блок шинного селектора Bus Selector
    • 9.7.5. Блок селектора Selector
    • 9.7.6. Блок присвоения новых значений элементам массива Assignment
    • 9.7.7. Блок объединения сигналов Merge
    • 9.7.8. Блок объединения сигналов в матрицу Matrix Concatenation
    • 9.7.9. Блок передачи сигнала Goto
    • 9.7.10. Блок приема сигнала From
    • 9.7.11. Блок признака видимости сигнала Goto Tag Visibility
    • 9.7.12. Блок создания общей области памяти Data Store Memory
    • 9.7.13. Блок записи данных в общую область памяти Data Store
    • 9.7.14. Блок считывания данных из общей области памяти Data Store
    • 9.7.15. Блок преобразования типа сигнала Data Type Conversion
    • 9.7.16. Блок преобразования размерности сигнала Reshape
    • 9.7.17. Блок определения размерности сигнала Width
    • 9.7.18. Блок определения момента пересечения порогового значения Hit Crossing
    • 9.7.19. Блок установки начального значения сигнала IC
    • 9.7.20. Блок проверки сигнала Signal Specification
    • 9.7.21. Датчик свойств сигнала Probe
    • 9.7.22. Блок, задающий количество итераций Function-Call Generator
    • 9.7.23. Информационный блок Model Info
    • 9.8. Function & Tables – блоки функций и таблиц
    • 9.8.1. Блок задания функции Fcn
    • 9.8.2. Блок задания функции MATLAB Fcn
    • 9.8.3. Блок задания степенного многочлена Polynomial
    • 9.8.4. Блок одномерной таблицы Look-Up Table
    • 9.8.5. Блок двумерной таблицы Look-Up Table(2D)
    • 9.8.6. Блок многомерной таблицы Look-Up Table (n-D)
    • 9.8.7. Блок таблицы с прямым доступом Direct Loop-Up Table (n-D)
    • 9.8.8. Блок работы с индексами PreLook-Up Index Search
    • 9.8.9. Блок интерполяции табличной функции Interpolation (n-D) using PreLook-Up

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-функций.

Свободно распространяемое бесплатное ПО компьютерного моделирования
оглавление   ДМ   экономическая информатика   визуальные среды - 4GL   Теория и практика обработки информации

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

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution