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

Возможности

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

  • Время точек в котором происходит каждое асинхронное событие

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

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

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

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

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

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

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

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

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

Для получения дополнительной информации смотрите Загрузку данных во входные порты корневого уровня.

Пример

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

  1. Чтобы ввести данные с помощью диалогового окна Параметры конфигурации модели (Model Configuration Parameters),

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

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

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

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

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

Похожие темы