Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
otvety_balashov.docx
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
479.44 Кб
Скачать

23.Использование локальных переменных при программировании в системе Matlab пакете Simulink. Динамическое задание размеров векторов входных и выходных переменных. Использование локальных переменных

Часто в ходе процесса моделирования S-функции требуется хранить некоторые данные. Т. к. S-функция является функцией системы MATLAB, то локальные переменные должны быть инициализированы при каждом вызове S-функции. Существует возможность хранения данных между вызовами с использованием глобальных переменных. При этом может существовать только один экземпляр данной S-функции в модели. В противном случае различные экземпляры S-функции будут разделять между собой одну и ту же область данных.

Более предпочтительным является подход, использующий параметр UserData блока S-Finction, который содержит ссылку на данные S-функции. При использовании параметра UserData в моделируемой системе могут существовать различные экземпляры данной S-функции, поскольку каждый экземпляр блока S-функции имеет свой собственный параметр UserData. Параметр UserData может быть скалярной величиной, числовым массивом, массивом ячеек или массивом записей, поэтому не существует ограничения на количество или типы данных, которые можно хранить в параметре UserData блока S-функции.

Динамическое задание размеров векторов входных и выходных переменных

Многие блоки системы Simulink работают с входными данными переменной размерности. Например, блок Gain в качестве входной переменной может использовать как скалярную величину, так и вектор произвольной размерности. В последнем случае необходимо в поле с именем Numlnputs структуры sizes задать значение -1. S-функция может определить размерность вектора входа, когда параметр flag равен 1, 2, 3 или 4, используя выражение:

size_input = size(u);

Если размерность вектора выхода или число непрерывных или дискретных компонентов вектора состояния зависит от размерности вектора входа, необходимо задать в соответствующем поле структуры sizes значение -1. В этом случае размерность любого из указанных векторов будет приниматься равной размерности входного вектора.

24.Обзор процедур ответных вызовов. Процедуры ответных вызовов

При помощи этих процедур создается графический интерфейс пользователя для моделей системы Simulink, а также добавляется в модели графическая анимация.

Ответные вызовы могут поддерживаться командами, М-функциями и операторами системы MATLAB, которые выполняются по условию, связанному с возникновением определенных событий:

  • открытием модели;

  • установкой переключателя;

  • выбором клавиши или комбинации клавиш и др.

Ответные вызовы целесообразно оформлять в виде М-функций, что позволяет использовать локальные переменные, изолированные от переменных других функций в рабочей области.

Обзор процедур ответных вызовов

В таблице 5 представлен список параметров процедуры ответного вызова, связанных с моделью системы Simulink.

Таблица 5 – Параметры процедуры ответного вызова, соответствующей свойствам модели Simulink

Наименование параметра Описание

CloseFсn Вызывается при закрытии окна модели (выполняется до момента закрытия модели).

InitFcn Вызывается при запуске моделирования (выполняется до момента начала моделирования). Данная процедура может использоваться для инициализации переменных MATLAB, используемых для настройки модели или параметров блока.

PostLoadFcn Процедура ответного вызова при загрузке файла модели (выполняется после операции загрузки). Однократным использованием этой процедуры можно добиться, например, автоматического запуска графического интерфейса пользователя, сразу, как только модель будет загружена

PostSaveFcn Выполняется после операции сохранения

PreLoadFcn Выполняется до момента загрузки модели. Данная процедура может быть использована для инициализации переменных MATLAB, используемых для настройки модели или параметров блока

PreSaveFcn Выполняется до момента сохранения модели

StartFcn Выполняется до момента начала моделирования

StopFcn Выполняется после окончания моделирования.

Таблица 3 – Параметры процедуры ответного вызова, соответствующей свойствам блока

Наименование параметра Описание

CloseFcn Процедура ответного вызова при закрытии блока с использованием команды close_system. Данная процедура выполняется только в том случае, если команда close_system используется для конкретного блока, а не для модели в целом

CopyFcn Процедура ответного вызова при копировании блока (выполняется послеоперации копирования). Данная процедура обеспечивает сохранение параметров блоков, входящих в подсистему, при копировании блока подсистемы. Если ответный вызов был определен для отдельного блока в подсистеме, и эта подсистема была скопирована, то в этом случае данная процедура также будет выполнена

DeleteFcn Процедура ответного вызова при удалении блока (выполняется до операции удаления).

DestroyFcn Процедура ответного вызова при удалении блока (выполняется до операции удаления). Например, при выполнении команды построения модели replace_block заменяемый блок удаляется

InitFcn Процедура ответного вызова при инициализации схемы (выполняется до процесса компиляции структурной схемы и оценки параметров блоков).

LoadFcn Процедура ответного вызова при загрузке файла модели (выполняется после операции загрузки).

ModelCloseFcn Процедура ответного вызова при закрытии окна модели (выполняется до операции закрытия).

MoveFcn Процедура ответного вызова при перемещении или изменении размеров изображения блока.

NameChangeFcn Процедура ответного вызова при смене имени блока. Здесь «имя» означает полный путь к блоку. Если название подсистемы изменится, то все блоки в этой подсистеме окажутся под воздействием данной процедуры.

OpenFcn Процедура ответного вызова при открытии соответствующего окна блок.

ParentCloseFcn Процедура ответного вызова при закрытии подсистемы, содержащей указанный блок.

PreSaveFcn Процедура ответного вызова при сохранении модели в файл (выполняется до операции сохранения).

PostSaveFcn Процедура ответного вызова при сохранении модели в файл (выполняется после операции сохранения).

StartFcn Процедура ответного вызова при запуске моделирования (выполняется после компиляции модели непосредственно перед началом моделирования)

Stop Fсn Процедура ответного вызова при остановке моделирования по любой причине

UndoDelete Процедура ответного вызова при отмене операции удаления блока. Если задана процедура ответного вызова с параметром CopyFcn, то, вероятно, должна также быть задана процедура ответного вызова с параметром UndoDelete

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]