Выполнение и модульный тест объектов диаграммы 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. На панели «Символы» введите значение 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. Чтобы остановить анимацию графика, удалите объект диаграммы Stateflow s:

    delete(s)

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

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

См. также

| |

Похожие темы