exponenta event banner

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

Операционная точка - это снимок состояния модели 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. Установите флажок Конечные состояния.

    3. Введите имя, например old_sf_car_ctx01.

    4. Установите флажок Сохранить конечную операционную точку.

    5. Нажмите кнопку «Применить».

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

  3. Определите время начала и окончания для этого сегмента моделирования.

    1. В диалоговом окне Параметры конфигурации модели (Model Configuration Parameters) перейдите на панель Решатель (Solver).

    2. В поле «Время начала» введите 0.

    3. В поле «Время остановки» введите 10.

    4. Нажмите кнопку ОК.

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

  4. Начать моделирование.

    При моделировании модели полная рабочая точка сохраняется в переменной при t = 10. old_sf_car_ctx01 в базовой рабочей области MATLAB.

    При t = 10 двигатель работает при установившемся значении 2500 об/мин.

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

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

    1. Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters) и перейдите на панель Импорт/экспорт данных (Data Import/Export).

    2. Снимите флажок Сохранить конечную операционную точку.

    3. Снимите флажок Конечные состояния.

    4. Нажмите кнопку ОК.

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

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

  1. Включить загрузку операционной точки.

    1. Откройте диалоговое окно Параметры конфигурации модели (Model Configuration Parameters) и перейдите на панель Импорт/экспорт данных (Data Import/Export).

    2. Установите флажок Начальное состояние.

    3. Введите переменную, содержащую операционную точку диаграммы: old_sf_car_ctx01.

    4. Нажмите кнопку ОК.

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

  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. В поле «Время остановки» введите 20.

    3. Нажмите кнопку ОК.

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

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

  2. Начать моделирование.

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

Связанные темы