Можно импортировать асинхронные данные о событиях в подсистему вызова функций через блок Inport. Для автономных симуляций фиксированного шага можно задать:
Моменты времени, в которых каждое асинхронное событие имеет место
Количество асинхронных событий в каждом моменте времени
Можно ввести асинхронные данные в командной строке MATLAB® или на панели Data Import/Export диалогового окна Configuration Parameters. В любом случае много ограничений применяются к формату данных.
Выражение для параметра Data Import/Export> Input должно быть списком, разделенным запятыми таблиц.
Таблица, соответствующая входному порту, выводящему асинхронные события, должна быть вектор-столбцом, содержащим временные стоимости для асинхронных событий.
Временной вектор асинхронных событий должен иметь двойной тип данных и монотонно увеличение.
Все данные времени должны быть целочисленными множителями образцового размера шага.
Чтобы задать несколько вызовов функции в установленный срок продвигаются, необходимо повторить временную стоимость соответственно. Другими словами, если вы хотите задать три асинхронных события в t = 1 и два события в t = 9, затем необходимо перечислить 1
три раза и 9
дважды во временном векторе. (t = [1 1 1 9 9]'
)
Таблица, соответствующая нормальному порту ввода данных, может иметь любой другой поддерживаемый формат.
Смотрите Данные о Загрузке к Входным портам Корневого Уровня (Simulink) для получения дополнительной информации.
В этой модели подсистема вызова функций используется, чтобы отследить общее количество асинхронных событий и умножить набор входных параметров на 2.
К входным данным через диалоговое окно Configuration Parameters,
Select Simulation > Configuration Parameters > Data Import/Export.
Выберите параметр the Input.
В данном примере введите следующую команду в окно MATLAB:
>> t = [1 1 5 9 9 9]', u = [[0:10]' [0:10]']
Здесь, t является вектор-столбцом, содержащим времена асинхронных событий для блока In1 Inport, в то время как tu является таблицей входных значений по сравнению со временем для блока In2 Inport.
По умолчанию 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. В любое другое время вывод сохранен в его предыдущем значении