Выполнитесь и объекты диаграммы Stateflow модульного теста

Автономный график Stateflow® является классом MATLAB®, который задает поведение конечного автомата. Автономные графики реализуют классическую семантику графика с MATLAB как язык действия. Можно программировать график при помощи полной функциональности MATLAB, включая те функции, которые ограничиваются для генерации кода в Simulink®. Для получения дополнительной информации смотрите, Создают диаграммы Stateflow для Выполнения как Объекты MATLAB.

Пример автономной диаграммы Stateflow

Файл sf_chart.sfx содержит автономную диаграмму Stateflow sf_chart. График имеет локальные данные u, x и y.

Этот пример показывает, как выполнить этот график от редактора Stateflow и в Окне Команды MATLAB.

Выполните автономный график от редактора Stateflow

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

  1. Откройте график в редакторе Stateflow:

    edit sf_chart.sfx

  2. В окне Symbols введите значение u = 1 и кликните по значку Run . Редактор создает объект my_sf_chart диаграммы Stateflow и выполняет переход по умолчанию. График:

    • Инициализирует x к значению 0.

    • Делает A состояния активным состоянием.

    • Присвоения y к значению 1.

    • Увеличивает значение x к 1.

    Анимация графика подсвечивает активный A состояния. Окно Symbols отображает значения u = 1, x = 1, и y = 1. График поддерживает свое текущее состояние и локальные данные до следующей команды выполнения.

  3. Кликните по значку Run снова. Поскольку значение u не удовлетворяет условие [u<0] к переходу из A состояния, это состояние остается активным, и значения x и y увеличиваются до 2. Окно Symbols теперь отображает значения u = 1, x = 2, и y = 2.

  4. В окне Symbols введите значение u = −1 и кликните по значку Run . Отрицательное значение данных инициировало переход, чтобы утвердить B. Окно Symbols отображает значения u = −1, x = 1, и y = 3.

  5. Можно изменить значение любых данных о графике в окне Symbols. Например, введите значение x = 3. График будет использовать это значение данных в следующий раз шаг выполнения.

  6. Введите значение u = 2 и кликните по значку Run . Переходы графика назад, чтобы утвердить A. Окно Symbols отображает значения u = 2, x = 4, и y = 5.

  7. Чтобы остановить анимацию графика и удалить объект my_sf_chart диаграммы Stateflow из рабочего пространства MATLAB, кликните по значку Stop .

Чтобы прервать выполнение и шаг посредством каждого действия в графике, добавьте точки останова, прежде чем вы выполните график. Для получения дополнительной информации смотрите Отладку Автономная диаграмма Stateflow.

Выполните автономный график в MATLAB

Можно выполнить автономный график в MATLAB, не открывая редактора Stateflow. Если график открыт, то редактор Stateflow подсвечивает активные состояния и переходы посредством анимации графика.

  1. Откройте график в редакторе Stateflow. В Окне Команды MATLAB, введите:

    edit sf_chart.sfx

  2. Создайте объект диаграммы Stateflow при помощи имени файла sfx для автономного графика как функция. Задайте начальное значение для данных u как пара "имя-значение".

    s = sf_chart('u',1)
    Stateflow Chart
    
       Execution Function
        y = step(s)
    
       Local Data
          u         : 1
          x         : 1
          y         : 1
       Active States: {'A'}
    Эта команда создает объект диаграммы s, выполняет переход по умолчанию и инициализирует значения x и y. Редактор Stateflow анимирует график и подсвечивает активный A состояния.

  3. Чтобы выполнить график, вызовите функцию step. Например, предположите, что вы вызываете функцию step со значением u = 1:

    step(s,'u',1)
    disp(s)
    Stateflow Chart
    
       Execution Function
        y = step(s)
    
       Local Data
          u         : 1
          x         : 2
          y         : 2
       Active States: {'A'}
    Поскольку значение u не удовлетворяет условие [u<0] к переходу из A состояния, это состояние остается активным, и значения x и y увеличиваются до 2.

  4. Выполните график снова, на этот раз со значением u = −1:

    step(s,'u',-1)
    disp(s)
    Stateflow Chart
    
       Execution Function
        y = step(s)
    
       Local Data
          u         : -1
          x         : 1
          y         : 3
       Active States: {'B'}
    Отрицательное значение данных инициировало переход, чтобы утвердить B. Значение x уменьшается к 1, и значение y увеличивается до 3.

  5. Чтобы получить доступ к значению любых данных о графике, используйте запись через точку. Например, можно присвоить значение 3 к локальным данным x путем ввода:

    s.x = 3
    Stateflow Chart
    
       Execution Function
        y = step(s)
    
       Local Data
          u         : -1
          x         : 3
          y         : 3
       Active States: {'B'}
    Автономный график будет использовать это значение данных в следующий раз шаг выполнения.

  6. Выполните график со значением u = 2:

    step(s,'u',2)
    disp(s)
    Stateflow Chart
    
       Execution Function
    
        y = step(s)
    
       Local Data
          u         : 2
          x         : 4
          y         : 5
       Active States: {'A'}
    Переходы графика назад, чтобы утвердить A и изменяют значения x и y.

  7. Чтобы остановить анимацию графика, удалите объект s диаграммы Stateflow из рабочего пространства MATLAB:

    delete(s)

Выполните несколько объектов диаграммы

Можно выполнить несколько объектов диаграммы, заданных тем же автономным графиком. Параллельные объекты диаграммы поддерживают свое внутреннее состояние независимо, но остаются связанными к тому же графику в редакторе. Анимация графика отражает состояние объекта диаграммы, последний раз выполняемого. Выполнение нескольких объектов диаграммы, в то время как редактор Stateflow открыт, может привести к запутывающим результатам и не рекомендуется.

Смотрите также

| |

Похожие темы