Протестируйте уникальную конфигурацию диаграммы

Рабочая точка является снимком состояния состояния модели Simulink® в определенное время во время симуляции. Для графика Stateflow® рабочая точка включает:

  • Действие состояний графика

  • Значения графика локальные данные

  • Значения выходных данных графика

  • Значения персистентных данных в функциях MATLAB® и блоках Таблицы истинности

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

Цель примера

Предположим, что вы хотите протестировать ответ модели old_sf_car к внезапному изменению в значении для gear.

Эта модель моделирует в течение 30 секунд, но вы хотите видеть то, что происходит, когда значение gear изменяется в t = 10. Можно моделировать модель, сохранить рабочую точку в t = 10, загрузить и изменить рабочую точку, и затем моделировать снова между t = 10 и 20.

ШагЗадачаСсылка
1Задайте рабочую точку для своего графика.Задайте рабочую точку
2Загрузите рабочую точку и измените значения.Загрузите рабочую точку и измените значения
3Протестируйте измененную рабочую точку путем выполнения модели.Протестируйте измененную рабочую точку

Задайте рабочую точку

  1. Откройте модель old_sf_car.

  2. Позвольте сохранить рабочей точки.

    1. Откройте диалоговое окно Model Configuration Parameters и перейдите к панели Data Import/Export.

    2. Установите флажок Final states.

    3. Введите имя, такое как old_sf_car_ctx01.

    4. Установите флажок Save final operating point.

    5. Нажмите Apply.

     Программируемый эквивалент

  3. Задайте запуск и времена остановки для этого сегмента симуляции.

    1. В диалоговом окне Model Configuration Parameters перейдите к панели Solver.

    2. Для Start time введите 0.

    3. Для Stop time введите 10.

    4. Нажмите OK.

     Программируемый эквивалент

  4. Запустите симуляцию.

    Когда вы моделируете модель, вы сохраняете полную рабочую точку в t = 10 в переменной old_sf_car_ctx01 в базовом рабочем пространстве MATLAB.

    В t = 10, механизм действует в установившемся значении 2 500 об/мин.

  5. Отключите сохранение рабочей точки.

    Этот шаг препятствует тому, чтобы вы перезаписали рабочую точку вы сохраненный на предыдущем шаге.

    1. Откройте диалоговое окно Model Configuration Parameters и перейдите к панели Data Import/Export.

    2. Снимите флажок Save final operating point.

    3. Снимите флажок Final states.

    4. Нажмите OK.

     Программируемый эквивалент

Загрузите рабочую точку и измените значения

  1. Позвольте загрузить рабочей точки.

    1. Откройте диалоговое окно Model Configuration Parameters и перейдите к панели Data Import/Export.

    2. Установите флажок Initial state.

    3. Введите переменную, которая содержит рабочую точку вашего графика: old_sf_car_ctx01.

    4. Нажмите OK.

     Программируемый эквивалент

  2. Задайте указатель на объект для значений рабочей точки графика shift_logic.

    В командной строке введите:

    blockpath = 'old_sf_car/shift_logic';
    c = old_sf_car_ctx01.get(modelOperatingPoint, 'blockpath');

    Совет

    Если график кажется подсвеченным в окне модели, можно задать блок path с помощью gcb:

    c = old_sf_car_ctx01.get(gcb);

     Копия и ссылочные рабочие точки с методом get

  3. Посмотрите на содержимое рабочей точки.

    c = 
    
      Block:    "shift_logic"    (handle)    (active)
      Path:     old_sf_car/shift_logic
    
      Contains:
    
        + gear_state         "State (AND)"          (active)
        + selection_state    "State (AND)"          (active)
          gear               "Block output data"    double [1, 1]
          

    Рабочая точка вашего графика содержит список состояний и данных в иерархии.

  4. Подсветите состояния, которые активны в вашем графике в t = 10.

    В командной строке введите:

    c.highlightActiveStates;

    В графике все активные состояния кажутся подсвеченными.

    Совет

    Чтобы проверять, активно ли одно состояние, можно использовать метод isActive. Например, введите:

    c.gear_state.fourth.isActive

    Эта команда возвращает true (1), когда состояние активно и ложное (0) в противном случае. Для получения информации о других методах см. Методы для Взаимодействия с Рабочей точкой Графика.

  5. Измените активное подсостояние selection_state к downshifting.

    Используйте эту команду:

    c.selection_state.downshifting.setActive;

    Недавно активное подсостояние кажется подсвеченным в графике.

  6. Измените значение выходных данных gear.

    При вводе c.gear в командной строке, вы видите список свойств данных, подобных этому:

    >> c.gear
    
    ans = 
    
          Description: 'Block output data'
             DataType: 'double'
                 Size: '[1, 1]'
                Range: [1x1 struct]
         InitialValue: [1x0 double]
                Value: 4
     

    Можно изменить значение gear с 4 до 1 путем ввода

    c.gear.Value = 1;
    Однако вы не можете изменить тип данных или размер gear. Кроме того, вы не можете задать новое значение, которое выходит за пределы области значений, установленной параметрами Maximum и Minimum. Для получения дополнительной информации см. Правила для Изменения Значений данных.

  7. Сохраните измененную рабочую точку.

    Используйте эту команду:

    old_sf_car_ctx01 = old_sf_car_ctx01.set(blockpath, c);

Протестируйте измененную рабочую точку

  1. Задайте новое время остановки для сегмента симуляции, чтобы протестировать.

    1. В диалоговом окне Model Configuration Parameters перейдите к панели Solver.

    2. Для Stop time введите 20.

    3. Нажмите OK.

    Вы не должны вводить новое время начала, потому что симуляция продолжается от того, где она кончила.

     Программируемый эквивалент

  2. Запустите симуляцию.

    Механизм реагирует можно следующим образом:

Похожие темы