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