Поведение рабочей точки

Узнайте, как можно использовать рабочую точку с блоком, S-функциями и изменениями модели.

Измените состояния блока в рабочей точке

  • Использование loggedStates чтобы получить или задать состояния блоков. Если xout является журналом состояний, который Simulink® экспортирует в рабочую область, затем loggedStates поле имеет ту же структуру, что и xout.signals.

  • Невозможно изменить состояния, которые не регистрируются. Simulink не позволяет это изменение, так как это может привести к несоответствию состояния симуляции.

S-функции

Можно использовать API для C-MEX и Level-2 MATLAB® S-функции, позволяющие S-функциям работать со ModelOperatingPoint объект. Для получения информации о том, как реализовать эти API в S-функциях, смотрите Податливость S-функций с ModelOperatingPoint.

S-функции, которые имеют векторы PWork, которые хранят указатели на структуры данных, но не объявляют их уровень податливости рабочей точке или объявляют его неизвестным или запрещенным, не поддерживают рабочую точку. Для получения дополнительной информации смотрите Податливость S-Function с ModelOperatingPoint.

Модель изменений и восстановление рабочей точки

После сохранения рабочей точки модели можно изменить модель и восстановить рабочую точку с этими изменениями.

  • Можно переименовать модель между сохранением и восстановлением ее рабочей точки.

  • Контрольная сумма интерфейса рабочей точки в основном основана на настройках строения в модели и шагах расчета, используемых в модели. Можно внести некоторые неструктурные изменения в модель между сохранением и восстановлением рабочей точки. В диалоговом окне Параметров конфигурации, на панели Diagnostics , используйте диагностику Operating point interface checksum mismatch, чтобы отслеживать такие изменения. Затем можно узнать, соответствует ли контрольная сумма интерфейса восстановленной рабочей точки текущей контрольной сумме интерфейса. См. «Несоответствие контрольной суммы интерфейса рабочей точки».

    Можно внести следующие неструктурные изменения в модель, не влияя на вашу способность восстановить ранее сохраненную рабочую точку:

    Примечание

    Эти изменения могут изменить количество шагов расчета в модели. Это может привести к тому, что контрольная сумма интерфейса модели будет отличаться от рабочей точки, сохраняющей и восстанавливающей контрольную сумму. Сконфигурируйте Operating point interface checksum mismatch diagnostic для отображения warning (по умолчанию), error, или none не сравнивать контрольные суммы.

  • Вы не можете вносить структурные изменения в модель между временем сохранения рабочей точки и временем восстановления симуляции с помощью рабочей точки. Примеры включают, добавление или удаление блока после сохранения рабочей точки, изменение шага расчета модели и изменение типа решателя с переменного шага на фиксированный шаг.

  • Несоответствия могут возникнуть, когда вы пытаетесь симулировать с помощью решателя, который отличается от того, который сгенерировал сохраненную рабочую точку. Simulink позволяет изменять решатель. Для примера можно использовать ode15s решатель, чтобы решить начальный жёсткий фрагмент симуляции и сохранить конечную рабочую точку. Затем можно продолжить симуляцию с восстановленной рабочей точкой, используя ode45. Другими словами, эта диагностика помогает вам увидеть изменения решателя, но не сигнализирует о проблеме с симуляцией.

Примечание

Когда вы используете решатель с переменным шагом с максимальным размером шага, установленным на autoSimulink использует максимальный размер шага от восстановленного ModelOperatingPoint объект для новой симуляции. Чтобы убедиться, что объединенная траектория рабочей точки двух симуляций совпадает с траекторией непрерывной симуляции, задайте значение для максимального размера шага.

Ограничения сохранения и восстановления рабочей точки

Примечание

В некоторых случаях сохранение информации о частичном состоянии избегает некоторых ограничений использования рабочей точки. Сравнение двух способов сохранения данных о состоянии смотрите в Сравнение Рабочей точки и Окончательное логгирование состояния.

Поддержка блоков

Следующие блоки не поддерживают рабочую точку:

  • В блоках Stack и Queue настройкой по умолчанию для опции Push full stack является Dynamic reallocation. Этот параметр по умолчанию не поддерживает ModelOperatingPoint объект. Другие настройки (Ignore, Warning и Error) поддерживают ModelOperatingPoint объект.

  • Simscape™ Multibody™ блоки Первой генерации

Simulink пытается сохранить выход блока как часть рабочей точки. Для S-функций это происходит, даже если функции заявляют, что никакая рабочая точка не требуется. Если выход блока имеет пользовательский тип, Simulink не может сохранить рабочую точку и отображает ошибку. Для получения дополнительной информации об использовании рабочей точки с S-функциями, см. S-Functions.

Модель-ссылка предлагает частичную поддержку рабочей точки. Для получения дополнительной информации смотрите Модели-ссылки.

Симуляция

  • Можно использовать только режим симуляции normal или Accelerator.

  • Вы не можете сохранить рабочую точку в режиме normal mode и восстановить ее в режиме Accelerator, или наоборот.

  • Вы не можете изменить состояния определенных блоков, которые не записаны в журнал. Для получения дополнительной информации смотрите Изменение состояний блока в рабочей точке.

Генерация кода

Функция рабочей точки не поддерживает Simulink Coder™ или Embedded Coder® генерация кода.

Ссылки на модели

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

  • Следующие блоки не поддерживают рабочую точку, когда включены в модель, на которую ссылаются в режиме Accelerator:

    • MATLAB уровня 2 S-Function

    • Система MATLAB

    • Интерполяционная таблица n-D

    • S-функция (с пользовательской рабочей точкой или PWork векторы)

    • К файлу

    • Блоки Simscape

Для получения дополнительной информации смотрите Сведения о состоянии для ссылочных моделей.

Моделируйте функцию

Вы не можете ввести рабочую точку в model функция.

Похожие темы