exponenta event banner

Создание тестового кабеля для генерации вызовов функций

После создания компонента модели для инициализации, сброса и завершения состояния блоков (см. раздел Использование функций инициализации, сброса и завершения) модель можно поместить в испытательный расчетный электрический жгут. Тестовый жгут - это модель Simulink ®, которая используется для разработки, тестирования и отладки компонента модели .

Чтобы создать тестовый электрический жгут, обратитесь к модели export-function, содержащей компонент модели в новой модели, а затем добавьте диаграмму Stateflow ® для моделирования планировщика событий вызова функции.

Ссылка на модель Export-Function

Модель export-function содержит компонент модели для тестирования. Чтобы создать модель функции экспорта, см. раздел Создание модели функции экспорта.

  1. Создайте модель Simulink. Сохранить эту модель с именем Test_Model.

  2. Задать параметры конфигурации для типа решателя как Fixed-step, Решатель для autoи Фиксированный размер шага до 1.

  3. Добавление блока модели. Откройте диалоговое окно «Параметры блока». В текстовом поле Имя модели (Model name) введите имя модели export-function. В этом примере введите Model02.

  4. Проверьте ссылочный компонент модели, подключив блок генератора вызовов функций к Run порт. Подключите блок константы к Signal In порт и блок Scope для Signal Out порт.

  5. Выполните моделирование, чтобы проверить правильность моделирования модели из родительской модели. Когда модель моделируется без портов событий вызова функции, блок Initialize Function выполняется в начале моделирования, а блок Terminate Function - в конце моделирования.

  6. Откройте порты ввода вызова функции в блоке модели. Щелкните правой кнопкой мыши блок «Модель» и выберите «Параметры блока». В диалоговом окне «Параметры блока» установите флажки «Показать порт инициализации модели», «Показать порт сброса модели» и «Показать порт завершения модели».

  7. Удалите блок генератора вызовов функций и обновите модель, нажав Ctr-D.

    При активации входного порта initialize function-call в блоке Model модель должна получить вызов initialize function в initialize порт перед его выполнением. Прием вызова функции запускает выполнение процедуры инициализации модели по умолчанию, а затем выполнение содержимого блока Initialize Function.

    Прием вызова функции на Reset порт инициирует выполнение содержимого блока Reset Function.

    Прием вызова функции на Terminate порт запускает выполнение содержимого блока Terminate Function, а затем выполнение процедуры завершения модели по умолчанию. Затем модель прекращает работу. Для повторного выполнения модели необходимо повторно инициализировать модель путем отправки события вызова функции в initialize порт.

Моделирование планировщика событий

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

  1. Добавление диаграммы Stateflow. Щелкните схему модели и начните ввод Chart. В списке поиска выберите.

  2. Откройте диаграмму и добавьте два блока состояний, один над другим.

  3. Добавьте переход по умолчанию и подключите его к верхнему блоку состояния. Отредактируйте метку:

    {step = 0}
  4. Добавьте переход от верхнего блока к нижнему. Отредактируйте метку:

    [step == 2]/{Initialize}

  5. Добавьте переход от нижнего блока к нижнему. Отредактируйте метку:

    [step == 5]/{Reset}

  6. Добавьте переход от нижнего блока к верхнему. Отредактируйте метку:

    [step == 9]/{Terminate}

  7. Отредактируйте содержимое верхнего блока:

    Inactive
    entry: step = step + 1;
    during: step = step + 1;

  8. Отредактируйте содержимое нижнего блока:

    Running
    entry: step = step + 1; Run;
    during: step = step + 1; Run;

Подключить диаграмму к тестовой модели

Создайте порты вывода вызова функции на диаграмме для управления и запуска компонента модели.

  1. Откройте обозреватель моделей. На вкладке Моделирование (Modeling) и в разделе Модель (Design) выберите Модель (Model) Рабочее пространство (Workspace )..

  2. Создать переменную индекса. В меню выберите Добавить > Данные. В диалоговом окне «Данные» введите Step для имени.

  3. Создание портов вывода вызова функции. Для каждого создаваемого события вызова функции выберите Добавить > Событие, а в диалоговом окне Событие введите и выберите следующие значения.

    Ввод в текстовое поле событияЗадать областьУстановить триггер
    InitializeOutput to SimulinkFunction call
    ResetOutput to SimulinkFunction call
    TerminateOutput to SimulinkFunction call
    RunOutput to SimulinkFunction call

  4. Перейдите на верхний уровень модели. Подключите Initialize, Reset, Terminate, и Run порты на диаграмме к initialize, reset, terminate, и Run входные порты в блоке Model.

  5. Запустить моделирование.

    Модель не может выполняться до второго временного шага, когда состояние блока инициализируется равным 4. На пятом шаге времени вызов функции сброса в порт сброса инициирует выполнение блока функции сброса. На девятом шаге времени подсистема прекращает выполнение, и состояние блока остается постоянным.

    Если модель получает вызов функции для выполнения перед вызовом функции инициализации, возникает ошибка моделирования.

См. также

Блоки

Связанные темы