Center – По центру.
Left – По левому краю.
Right – По правому краю. Show block frame (флажок) – Отобразить рамку блока. Для отображения данных на пиктограмме блока необходимо с помощью кнопки скопировать нужный параметр из окна Model properties в окно редактирования. В блоке может отображаться статическая информация, которую пользователь вносит сам (например, данные об авторе, описание модели и т.п.) и динамически обновляемая информация (например, дата создания модели, дата последней модификации и т.п.). Динамически обновляемая информация представляется в окне блока как ссылка на переменную, которая ее содержит. Ссылка имеет вид %<имя_переменной>. Например, ссылка % означает, что в требуемой позиции будет выведено значение переменной 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.
Параметры:
|