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

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

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

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

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

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

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

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

    edit sf_chart.sfx

  2. В панели Символов введите значение u = 1 и нажимают Run . График выполняет свой переход по умолчанию и:

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

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

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

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

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

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

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

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

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

  7. Чтобы остановить анимацию графика, нажмите Stop .

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

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

Можно выполнить автономный график в MATLAB, не открывая редактора 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:

    delete(s)

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

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

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

| |

Похожие темы