Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:MATLAB Simulink. Компьютерное моделирование экономики
.pdf
6.13. Signal Routing — маршрутизация сигналов
Рис. 6.110. Применение переключателя Switch в подсистеме Banks
бразильского кризиса какао
На рис. 6.110 показан пример применения блока Switch в модели бразильского кризиса.
Подсистема Banks (рис. 5.21) раскрывается двойным щелчком
мыши. Ссуда (линия GivenLoan) выдается, если рентабельность
производителя — заемщика (RntbUnit) выше действующей средней банковской процентной ставки по кредитам (BnksInterest).
Размер ссуды не превышает обеспечения в виде основного капитала заемщика FixFnd.
6.13.8. Блок многовходового переключателя Multiport
Switch
Назначение:
Выполняет
переключение входных сигналов по сигналу управ-
ления, задающему номер активного входного порта.
Параметры:
Number of inputs — количество входов.
Блок многовходового переключателя Multiport Switch, пропускает на выход сигнал с того входного порта, номер которого равен
текущему значению управляющего сигнала. Если управляющий
сигнал не является сигналом целого типа, то блок Multiport Switch
производит отбрасывание дробной части числа, при этом в командном окне Matlab появляется предупреждающее сообщение.
211

6. Блоки библиотек Simulink
6.13.9. Блок передачи сигнала Goto
Назначение:
выполняет передачу сигнала к блоку From.
Áëîê
Рис. 6.111. Окно параметров блока Goto
Параметры:
Tag — идентификатор сигнала.
Tag visibility — признак видимости. Выбирается из списка:
— local — сигнал передается в пределах локальной подсистемы.
— scoped — сигнал передается в пределах локальной подсисте-
ìû
и подсистемах нижнего уровня иерархии.
— global — сигнал передается в пределах всей модели.
Использование
блока Goto совместно с блоком From обеспечивает передачу сигнала без линии связи. Для передачи могут использоваться сигналы любого типа.
В зависимости от выбранного параметра Tag visibility изменяет-
ся внешний вид блока:
Идентификатор сигнала помещается в квадратные скобки, если
признак видимости имеет значение local. Например, [A], где A —
идентификатор сигнала.
Идентификатор сигнала помещается в фигурные скобки, если
признак видимости имеет значение scoped. Например, {A}.
Идентификатор сигнала отображается на пиктограмме блока
без дополнительных символов, если признак видимости имеет
значение global.
212

6.13. Signal Routing — маршрутизация сигналов
Применение блоков Goto и From. При исследовании модели у
нас возникает желание отобразить в блоках Scope много переменных. При этом множество сигнальных линий очень затемняют содержание (причинно-следственные связи модели). Для передачи
информации без линий используем блоки Goto и From. Например, в модели прогнозирования цен на нефть от каждого сигнала
отходят стрелочки с блоками Goto. На блок Scope с именем Oil_1
направляем сигналы от соответствующих блоков From.
6.13.10. Блок приема сигнала From
Назначение:
выполняет прием сигнала от блока Goto.
Áëîê
Рис. 6.112. Окно параметров блока From
Параметры:
Goto tag — идентификатор принимаемого сигнала. Должен совпадать с идентификатором, указанным в соответствующем блоке
Goto.
Использование блока From совместно с блоком Goto обеспечивает передачу сигнала без линии связи.
Признак видимости сигнала отображается на пиктограмме блока таким же способом, что и у блока Goto.
В модели может быть сколь угодно много блоков From, принимающих сигнал от одного блока Goto.
Применение блока From дано в описании блока Goto.
213

6. Блоки библиотек Simulink
6.13.11. Goto Tag Visibility — блок признака видимости
сигнала
Назначение:
отображает признак видимости сигнала, передаваемого
Блок
блоком Goto в иерархии подсистем.
Параметры:
Goto tag — идентификатор сигнала, передаваемого блоком Goto.
Блок необходимо включать в состав модели или подсистемы в
том случае, если для передаваемых сигналов задана область видимости scoped. Блок помещается в те подсистемы, на которые распространяется область видимости передаваемых данных. Блок не
участвует в передаче сигнала, а лишь отображает имя передаваемого сигнала.
6.13.12. Data Store Memory — блок создания общей
области
памяти
Назначение:
Áëîê
создает поименованную область памяти для хранения
данных.
214
Рис. 6.113. Окно параметров блока Data Store Memory

6.13. Signal Routing — маршрутизация сигналов
Параметры:
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.
Поля RTW используются для управления компиляцией в языки
С, С++ и др.
6.13.13. Data Store Write — блок записи данных в общую
область
памяти
Назначение:
Áëîê
записывает данные в поименованную область памяти.
Параметры:
Data store паmе — имя области памяти.
Sample time — шаг модельного времени.
Операция записи выполняется для значения сигнала, получен-
ного на предыдущем шаге расчета.
В модели могут использоваться несколько блоков Data Store
Write, выполняющих запись в одну область памяти. Однако если
запись производится на одном и том же шаге расчета, то результат
будет не предсказуем.
6.13.14. Data Store Read — блок считывания данных
из
общей области памяти
Назначение:
Блок
считывает данные из поименованной области памяти.
215

6. Блоки библиотек Simulink
Параметры:
Data store паmе — имя области памяти.
Sample time — шаг модельного времени.
Операция считывания выполняется на каждом шаге расчета.
В модели могут использоваться несколько блоков Data Store
Read, выполняющих считывание данных из одной и той же области памяти.
6.14. User Defined Functions — небиблиотечные
функции, создаваемые пользователем
Рис. 6.114. Библиотека блоков для функций пользователя
6.14.1. Fcn — блок задания функции
Назначение:
Задает
Параметры:
Expression — выражение, используемое блоком для вычисления
выходного сигнала на основании входного. Это выражение составляется по правилам, принятым для описания функций на языке С.
В выражении можно использовать следующие компоненты:
Входной сигнал. Входной сигнал в выражении обозначается u,
если он является скаляром. Если входной сигнал — вектор, необ-
216
выражение в стиле языка программирования C.

6.14. User Defined Functions — небиблиотечные функции
Рис. 6.115. Окно параметров блока Fcn
ходимо указывать номер элемента вектора в круглых скобках. Например, 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).
Операторы, допускаемые к использованию в выражении, име-
ют следующий приоритет (в порядке убывания):
()
+ — (унарные)
=!=
&& Возведение в степень
!
/
+ — (бинарные)
><<=>=
||
217

6. Блоки библиотек Simulink
Блок не поддерживает матричные и векторные операции. Вы-
ходной сигнал блока всегда — скаляр.
Рис. 6.116. Пример параметров блока Fcn в модели рыночного
равновесия
Пример использования блока Fcn показан в модели рыночного
равновесия в блоках вычисления спроса {Demand) и предложения
{Supply). Спрос вычисляется в верхнем блоке модели по формуле:
Dmd = 100 – 10*u,
где u — входной сигнал (цена, Prc, Price).
6.14.2. MATLAB Fcn — блок задания функции MATLAB
Задает выражение в стиле языка программирования MATLAB.
Рис. 6.117. Окно параметров блока MATLAB Fcn
218

6.14. User Defined Functions — небиблиотечные функции
Параметры:
MATLAB function — выражение на языке MATLAB.
Output dimensions — размерность выходного сигнала. Значение
параметра –1 (минус один) предписывает блоку определять размерность автоматически.
Output signal type — тип выходного сигнала. Выбирается из
списка.
6.14.3. S-Funсtion — Simulink-функции, создаваемые
пользователем
Simulink-функции (S-функции, S-functions) являются описани-
блока на одном из языков программирования: MATLAB, C,
ем
C++, Ada или Fortran. Набор стандартных блоков Simulink достаточно обширен, однако в практике моделирования встречаются
ситуации, когда нужного блока нет либо структурное моделирование делает модель слишком сложной. В этом случае необходимо
использовать технологию S-функций для создания нужного блока.
С помощью языков программирования пользователь может создать описание сколь угодно сложного блока и подключить его к
Simulink-модели, при этом, с точки зрения взаимодействия пользователя с моделью, блок на основе S-функции ничем не отличается от стандартного библиотечного блока Simulink. Создаваемые
блоки могут быть непрерывными, дискретными или гибридными.
S-функции, созданные на C, C++, Ada или Fortran компилируются в исполняемые (*.dll) файлы, за счет чего обеспечивается повышенная скорость выполнения таких блоков. Такие S-функции обладают еще и дополнительными возможностями, которые включают работу с разными типами данных (целыми, действительными и
комплексными числами различной степени точности), использование матриц в качестве входных и выходных переменных (MATLAB S-функции могут оперировать только векторами в качестве
входных и выходных переменных), а также больший набор внутренних функций (сallback-методов).
Чаще всего S-функции используются при создании новых библиотечных блоков, обеспечивающих взаимодействие Simulink с
аппаратными средствами компьютера.
219

6. Блоки библиотек Simulink
6.15. Маскирование подсистем
Механизм маскирования подсистем позволяет оформить подсистему как полноценный библиотечный блок, т. е. снабдить подсистему собственным окном параметров, пиктограммой, справочной системой и т. п.
Маскирование подсистем дает пользователю следующие преимущества:
Расширяет возможности пользователя по управлению параметрами модели.
Позволяет создавать более понятный интерфейс подсистемы.
Повышает наглядность блок-диаграммы.
Расширяет возможности построения сложных моделей.
Повышает защищенность модели от несанкционированной модификации.
Для выполнения маскирования имеющейся подсистемы необходимо предварительно выполнить следующие действия:
Определить, какие параметры подсистемы должны задаваться
пользователем в будущем окне параметров. Задать эти параметры
в подсистеме с помощью идентификаторов (имен).
Определить, каким образом параметр должен задаваться в окне
диалога (с помощью строки ввода, выбором из раскрывающегося
списка или установкой флажка).
Разработать эскиз пиктограммы блока.
Создать комментарии (справку) по использованию подсистемы.
Маскирование подсистемы выполняется с помощью Mask Editor (редактор маски).
Для запуска редактора маски необходимо выделить маскируемую подсистему и выполнить команду Mask Subsystem из меню
Edit. Можно также воспользоваться контекстным меню. После запуска Mask Editor на экран будет выведено окно редактора, имеющее 3 вкладки: Icon (Пиктограмма), Initialization (Инициализация), Documentation (Документация). Первая из вкладок обеспечивает создание пиктограммы подсистемы, вторая — дает
возможность создать окно диалога для ввода параметров и третья — позволяет ввести описание блока и создать его справку.
В верхней части всех вкладок имеется поле Mask Type, с помощью которого можно задать имя блока. В нижней части окна имеется 5 кнопок управления редактором:
220
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
