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

Рабочая точка является снимком состояния состояния модели 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. Запустите симуляцию.

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

Похожие темы