Импортируйте асинхронные данные о событиях для симуляции

Возможности

Можно импортировать асинхронные данные о событиях в подсистему вызова функций через блок 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.

  1. К входным данным через диалоговое окно Configuration Parameters,

    1. Select Simulation > Configuration Parameters > Data Import/Export.

    2. Выберите параметр the Input.

    3. В данном примере введите следующую команду в окно MATLAB:

      >> t = [1 1 5 9 9 9]', u = [[0:10]' [0:10]']
      Также можно ввести данные как t, tu в панели Импорта/Экспорта Данных:

      Здесь, t является вектор-столбцом, содержащим времена асинхронных событий для блока In1 Inport, в то время как tu является таблицей входных значений по сравнению со временем для блока In2 Inport.

  2. По умолчанию Time и опции Output выбраны, и выходные переменные называют tout и yout.

  3. Моделируйте модель.

  4. Отобразите вывод путем ввода [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. В любое другое время вывод сохранен в его предыдущем значении

Похожие темы