Simulink (1087389), страница 15
Текст из файла (страница 15)
Рис. 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 Coefficient – Вектор коэффициентов полинома. Коэффициенты расположены в векторе по убыванию степени независимой переменной. Например, для полинома х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.9. Subsystem – подсистемы.
Подсистема это фрагмент Simulink-модели, оформленный в виде отдельного блока. Использование подсистем при составлении модели имеет следующие положительные стороны:
-
Уменьшает количество одновременно отображаемых блоков на экране, что облегчает восприятие модели (в идеале модель полностью должна отображаться на экране монитора).
-
Позволяет создавать и отлаживать фрагменты модели по отдельности, что повышает технологичность создания модели.
-
Позволяет создавать собственные библиотеки.
-
Дает возможность синхронизации параллельно работающих подсистем.
-
Позволяет включать в модель собственные справочные средства.
-
Дает возможность связывать подсистему с каким-либо m-файлом, обеспечивая запуск этого файла при открытии подсистемы (нестандартное открытие подсистемы).
Использование подсистем и механизма их блоков позволяет создавать блоки, не уступающие стандартным по своему оформлению (собственное окно параметров блока, пиктограмма, справка и т.п.).
Количество подсистем в модели не ограничено, кроме того подсистемы могут включать в себя другие подсистемы. Уровень вложенности подсистем друг в друга также не ограничен.
Связь подсистемы с моделью (или подсистемой верхнего уровня иерархии) выполняется с помощью входных (блок Inport библиотеки Sources) и выходных (блок Outport библиотеки Sinks) портов. Добавление в подсистему входного или выходного порта приводит к появлению на изображении подсистемы метки порта, с помощью которой внешние сигналы передаются внутрь подсистемы или выводятся в основную модель. Переименование блоков Inport или Outport позволяет изменить метки портов, отображаемые на пиктограмме подсистемы со стандартных (In и Out) на те, которые нужны пользователю.