Можно импортировать асинхронные данные о событиях в подсистему вызова функций через блок Inport. Для автономных симуляций с фиксированным шагом можно задать:
Время точек в котором происходит каждое асинхронное событие
Количество асинхронных событий в каждой временной точке
Вы можете ввести свои асинхронные данные в MATLAB® командная строка или на панели Data Import/Export диалогового окна Параметры конфигурации. В любом случае к формату данных применяется ряд ограничений.
Выражение для параметра конфигурации модели параметра Input должно быть разделенным запятыми списком таблиц.
Таблица, соответствующая порту входа, выводящему асинхронные события, должна быть вектором-столбцом, содержащей значения времени для асинхронных событий.
Временные векторы асинхронных событий должны быть двойного типа данных и монотонно увеличиваться.
Данные времени должны быть целочисленными, кратными размеру шага модели.
Чтобы задать несколько вызовов функций в установленный временной шаг, необходимо повторить значение времени соответственно. Другими словами, если вы хотите задать три асинхронных события в t = 1 и два события в t = 9, то вы должны перечислить 1
три раза и 9
дважды в вашем временном векторе. (t = [1 1 1 9 9]'
)
Таблица, соответствующая нормальному входному порту данных, может иметь другой поддерживаемый формат.
Для получения дополнительной информации смотрите Загрузку данных во входные порты корневого уровня.
В этой модели подсистема вызова функций используется для отслеживания общего количества асинхронных событий и для умножения набора входов на 2.
Чтобы ввести данные с помощью диалогового окна Параметры конфигурации модели (Model Configuration Parameters),
Выберите Input.
В данном примере введите следующую команду в окне MATLAB:
>> t = [1 1 5 9 9 9]', tu = [[0:10]' [0:10]']
Здесь t вектора-столбца, содержащая время асинхронных событий для Inport In1 блоков, в то время как tu является таблицей значений входа от времени для Inport In2 блоков.
По умолчанию выбираются Time и Output параметры и выходные переменные называются tout и yout.
Симулируйте модель.
Отображение выхода путем ввода [tout yout]
в командной строке MATLAB и получите:
ans = 0 0 -1 1 2 2 2 2 2 3 2 2 4 2 2 5 3 10 6 3 10 7 3 10 8 3 10 9 6 18 10 6 18
Здесь в первом столбце содержатся времена симуляции.
Второй столбец представляет выход Out1 - общее количество асинхронных событий. Поскольку подсистема вызова функций запускается дважды при t = 1, выход равен 2. Он не вызывается снова до тех пор, пока t = 5, и поэтому не увеличивается до 3 до тех пор. Наконец, он вызывается трижды в 9, поэтому увеличивается до 6.
Третий столбец содержит выход Out2, полученных путем умножения значения входа в каждом времени асинхронного события на 2. В любое другое время выход удерживается при своем предыдущем значении