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

Возможности

Можно импортировать асинхронные данные о событиях в подсистему вызова функций через блок Inport. Для автономных симуляций фиксированного шага можно задать:

  • Моменты времени, в которых каждое асинхронное событие имеет место

  • Количество асинхронных событий в каждом моменте времени

Формат входных данных

Можно ввести асинхронные данные в командной строке MATLAB® или на панели Data Import/Export диалогового окна Configuration Parameters. В любом случае много ограничений применяются к формату данных.

  • Выражение для параметра конфигурации модели параметра Input должно быть списком, разделенным запятыми таблиц.

  • Таблица, соответствующая входному порту, выводящему асинхронные события, должна быть вектор-столбцом, содержащим временные стоимости для асинхронных событий.

    • Временной вектор асинхронных событий должен иметь двойной тип данных и монотонно увеличение.

    • Данные времени должны быть целочисленными множителями размера шага модели.

    • Чтобы задать несколько вызовов функции в установленный срок продвигаются, необходимо повторить временную стоимость соответственно. Другими словами, если вы хотите задать три асинхронных события в t = 1 и два события в t = 9, затем необходимо перечислить 1 три раза и 9 дважды в вашем временном векторе. (t = [1 1 1 9 9]')

  • Таблица, соответствующая нормальному порту ввода данных, может иметь другой поддерживаемый формат.

Смотрите Данные о Загрузке к Корневому Уровню Input port для получения дополнительной информации.

Пример

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

  1. К входным данным при помощи диалогового окна Model Configuration Parameters,

    1. Выберите Input.

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

      >> t = [1 1 5 9 9 9]', tu = [[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. В любое другое время выход сохранен в его предыдущем значении

Похожие темы