В этом примере показано, как использовать атомарные субдиаграммы, чтобы уменьшать время компиляции при тестировании последовательности изменений в графике Stateflow®. Атомарные субдиаграммы поддерживаются только в диаграммах Stateflow в моделях Simulink®. Для получения дополнительной информации смотрите, Создают Допускающие повторное использование Субкомпоненты при помощи Атомарных Субдиаграмм.
Эта модель содержит два блока Sine wave: один с частотой 1 радиана в секунду и другим с частотой 2 радианов в секунду.
В графике каждое состояние использует логику сатуратора, чтобы преобразовать входную синусоиду в выходную прямоугольную волну той же частоты.
Поскольку этот пример не использует атомарные субдиаграммы, каждый раз, когда вы вносите изменение в график и запускаете симуляцию, перекомпиляция происходит для целого графика.
В отличие от этого можно преобразовать A
состояния к атомарной субдиаграмме. Когда вы изменяете атомарную субдиаграмму, перекомпиляция происходит только для субдиаграммы а не для целого графика. В результате инкрементные сборки для симуляции требуют, чтобы меньше времени перекомпилировало.
Шаг 1: преобразуйте состояние в атомарную субдиаграмму
Щелкните правой кнопкой по A
состояния и выберите Group & Subchart> Atomic Subchart.
A
состояния изменения в атомарной субдиаграмме и отображениях метка Atomic в верхнем левом углу.
Шаг 2: запустите симуляцию
Перед симуляцией компиляция происходит для целого графика.
Шаг 3: измените атомарную субдиаграмму
Дважды кликните атомарную субдиаграмму A
. Содержимое субдиаграммы появляется в редакторе Stateflow.
В Pos
состояния, измените действие записи в
y1 = 2;
В Neg
состояния, измените действие записи в
y1 = -2;
Шаг 4: перезапустите симуляцию
После изменений в A
, перекомпиляция происходит только для атомарной субдиаграммы а не целого графика.