Протестируйте уникальное строение графика

Рабочая точка является снимком состояния Simulink® модель в определенное время во время симуляции. For a 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 Параметры Конфигурации и перейдите к панели 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 двигатель работает при установившемся значении 2500 об/мин.

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

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

    1. Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели Data Import/Export.

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

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

    4. Нажмите OK.

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

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

  1. Включите загрузку рабочей точки.

    1. Откройте диалоговое окно Model Параметры Конфигурации и перейдите к панели 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');

    Совет

    Если график появляется подсвеченным в окне модели, можно задать путь блока используя gcb (Simulink):

    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), когда состояние активно, и false (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. Кроме того, вы не можете задать новое значение, которое попадает за пределы области значений, заданных параметрами Minimum и Maximum. Для получения дополнительной информации смотрите Правила изменения значений данных.

  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. Запустите симуляцию.

    Двигатель реагирует следующим образом:

Похожие темы