MATLAB.Exponenta
–Û·Ë͇ Matlab&Toolboxes

Simulink

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

  В оглавление книги \ К следующему разделу \ К предыдущему разделу

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

9.8. Function & Tables – блоки функций и таблиц

9.8.1. Блок задания функции Fcn

Назначение:

Задает выражение в стиле языка программирования C .

Параметры:

Expression – Выражение, используемое блоком для вычисления выходного сигнала на основании входного. Это выражение составляется по правилам, принятым для описания функций на языке С.

В выражении можно использовать следующие компоненты:

  1. Входной сигнал. Входной сигнал в выражении обозначается u, если он является скаляром. Если входной сигнал – вектор, необходимо указывать номер элемента вектора в круглых скобках. Например, u(1) и u(3) – первый и третий элементы входного вектора.
  2. Константы.
  3. Арифметические операторы (+ – * /).
  4. Операторы отношения (= = != > < >= <=).
  5. Логические операторы (&& | | !).
  6. Круглые скобки.
  7. Математические функции: abs, acos, asin, atan, atan2, ceil, cos, cosh, exp, fabs, floor, hypot, ln, log, log10, pow, power, rem, sgn, sin, sinh, sqrt, tan, и tanh.
  8. Переменные из рабочей области. Если переменная рабочей области является массивом, то ее элементы должны указываться с помощью индексов в круглых скобках. Напрмер, A(1,1) - первый элемент матрицы A.

Операторы отношения и логические операторы возвращают значения в виде логического нуля (FALSE) или логической единицы (TRUE).

Операторы, допускаемые к использованию в выражении, имеют следующий приоритет (в порядке убывания):

  1. ( )
  2. + – (унарные)
  3. Возведение в степень
  4. !
  5. /
  6. + – (бинарные)
  7. > < <= >=
  8. = !=
  9. &&
  10. | |

Блок не поддерживает матричные и векторные операции. Выходной сигнал блока всегда – скаляр.

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

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

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

9.8.2. Блок задания функции MATLAB Fcn

Назначение:

Задает выражение в стиле языка программирования MATLAB.

Параметры:

  1. MATLAB function – Выражение на языке MATLAB.
  2. Output dimensions – Размерность выходного сигнала. Значение параметра –1 (минус один) предписывает блоку определять размерность автоматически.
  3. Output signal type – Тип выходного сигнала. Выбирается из списка:
    • real – Действительный сигнал.
    • complex – Комплексный сигнал.
    • auto – Автоматическое определение типа сигнала.
  4. 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

Назначение:

Задает в табличной форме функцию одной переменной.

Параметры:

  1. Vector of input values – Вектор значений входного сигнала. Может быть задан в виде дискретных значений (например, [1 2 7 9]), либо в виде непрерывного диапазона (например, [0:10]). Элементы вектора или граница диапазона могут быть заданы в виде вычисляемого выражения, например [tan(5) sin(3)].
  2. Vector of output values – Вектор выходных значений, соответствующий вектору входных значений.

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

  1. Если входной сигнал равен одному из элементов вектора входных значений (Vector of input values), то выходное значение блока будет равно соответствующему элементу вектора выходных значений (Vector of output values). Например, пусть вектор входных значений равен [0 1 2 5], а вектор выходных значений [-5 –10 3 100], тогда при входном сигнале равном 1 выходной сигнал будет равен –10.
  2. Если входной сигнал не совпадает ни с одним из элементов вектора входных значений, то блок выполняет линейную интерполяцию между двумя ближайшими к нему элементами.
  3. Если входной сигнал выходит за границы вектора входных значений, то блок выполняет линейную экстраполяцию по двум крайним элементам.

График функции, заданный с помощью настроек блока отображается на его пиктограмме.

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

На рис. 9.8.4 показан пример использования блока Look-Up Table. В примере вектор входных значений равен [-5:5], а вектор выходных значений равен tanh([-5:5]).

Рис. 9.8.4. Пример использования блока Look-Up Table

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

9.8.5. Блок двумерной таблицы Look-Up Table(2D)

Назначение:

Задает в табличной форме функцию двух переменных.

Параметры:

  1. Row – Строка. Вектор значений первого аргумента. Задается аналогично параметру Vector of input values одномерной таблицы. Элементы вектора должны быть упорядочены по возрастанию.
  2. Column – Столбец. Вектор значений второго аргумента. Задается аналогично предыдущему параметру.
  3. 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)

Назначение:

Задает в табличной форме функцию многих переменных.

Параметры:

  1. Number of table dimensions – Количество размерностей таблицы (аргументов функции). Значение параметра выбирается из списка: 1, 2, 3, 4, More…(Много).
  2. First input (row) breakpoint set – Вектор значений первого аргумента (строка). Задается аналогично параметру Row двумерной таблицы.
  3. Second (column) input breakpoint set – Вектор значений второго аргумента (столбец). Задается аналогично предыдущему параметру.
  4. Third input breakpoint set – Вектор значений третьего аргумента. Параметр доступен, если количество размерностей таблицы задано больше 2.
  5. Fourth input breakpoint set – Вектор значений четвертого аргумента. Параметр доступен, если количество размерностей таблицы задано больше 3.
  6. Fifth..Nth input breakpoint sets (cell array) – Массив значений пятого и остальных аргументов (массив ячеек). Параметр доступен, если количество размерностей таблицы задано больше 4.
  7. Explicit number of dimensions – Точное количество размерностей таблицы (аргументов функции). Параметр доступен и его необходимо задавать, если параметр Number of table dimensions имеет значение More.
  8. Index search method – Метод поиска по индексам. Принимает значения из списка:
  • Evenly Spaced Points – Поиск для равноотстоящих индексов. Дает наилучший результат по скорости поиска, если векторы аргументов имеют равноотстоящие друг от друга значения (например, [10 20 30]).
  • Linear Search – Линейный поиск. Дает наилучший результат, если значения входных сигналов на текущем шаге расчета отличаются от предыдущих значений незначительно.
  • Binary Search – Двоичный поиск. Дает наилучший результат, если значения входных сигналов на текущем шаге расчета значительно отличаются от предыдущих значений.
  1. Begin index searches using previous index results (флажок) Начинать поиск, используя результаты предыдущего поиска.
  2. Use one (vector) input port instead of N ports (флажок) Использовать многомерный входной порт вместо нескольких одномерных.
  3. Table data – Таблица значений функции. Задается по правилам формирования многомерных массивов.
  4. Interpolation method – Метод интерполяции. Выбирается из списка:
  • None – Интерполяция не выполняется.
  • Linear – Линейная интерполяция.
  • Cubic Spline – Кубическая сплайн-интерполяция.
  1. Extrapolation method – Метод экстраполяции. Выбирается из списка: None, Linear или Cubic Spline.
  2. 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)

Назначение:

Задает многомерную таблицу с прямым доступом к ее элементам. Индексация элементов начинается с нуля.

Параметры:

  1. Number of table dimensions – Количество размерностей таблицы (аргументов функции). Значение параметра выбирается из списка: 1, 2, 3, 4, More…(Много).
  2. Explicit number of dimensions – Точное количество размерностей таблицы (аргументов функции). Параметр доступен, и его необходимо задавать, если параметр Number of table dimensions имеет значение More.
  3. Inputs select this object from table – Задать вид выходного сигнала. Выбирается из списка:
  • Element – Элемент. Если на выходе блока необходимо получить отдельный элемент таблицы, то на вход блока должны подаваться значения всех индексов элемента.
  • Column – Столбец. Если на выходе необходимо получить столбец, то на вход блока необходимо подавать на один индекс меньше, по сравнению с предыдущим вариантом.
  • D Matrix – Матрица. В этом случае на вход блока подается на два индекса меньше, по сравнению с первым вариантом.
  1. Make table an input – Таблица значений функции задается через отдельный вход блока, а не параметром Table data.
  2. Table data – Таблица значений функции. Задается по правилам формирования многомерных массивов.
  3. 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.

Параметры:

  1. Breakpoint data – Вектор узловых точек. Данный параметр аналогичен вектору входного сигнала блоков задающих табличные функции.
  2. Index search method - Метод поиска индексов. Выбирается из списка:
  • Evenly Spaced Points – Поиск для равноотстоящих индексов.
  • Linear Search – Линейный поиск.
  • Binary Search – Двоичный поиск.
  1. Begin index search using previous index result (флажок) – Начало поиска индекса с последнего результата.
  2. Output only the index (флажок) – Вывод только индексов.
  3. Process out of range input – Тип процесса при выходе входного сигнала за заданные пределы. Выбирается из списка:
  • Clip to Range – Ограничить предельным значением.
  • Linear Extrapolation – Линейная экстраполяция.
  1. 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.

Параметры:

  1. Number of table dimensions – Количество размерностей таблицы (аргументов функции). Значение параметра выбирается из списка: 1, 2, 3, 4, More…(Много).
  2. Explicit number of dimensions – Точное количество размерностей таблицы (аргументов функции). Параметр доступен, и его необходимо задавать, если параметр Number of table dimensions имеет значение More.
  3. Table data – Таблица значений функции. Задается по правилам формирования многомерных массивов.
  4. Interpolation method – Метод интерполяции. Выбирается из списка:
  • None – Интерполяция не выполняется.
  • Linear – Линейная интерполяция.
  1. Extrapolation method – Метод экстраполяции. Выбирается из списка: None или Linear.
  2. 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-функций.

В оглавление книги \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика