Объект рабочей точки, используемый для линеаризации и системы управления, не включает эти блоки Simulink® с представлением внутреннего состояния:
Транспортная Задержка и Переменные Транспортные блоки Задержки
Отключенный, Если Подсистема Действия и блоки Subsystem Действия Случая Переключателя
Блоки обратной реакции
Блоки MATLAB function с персистентными данными
Блоки Перехода уровня
Блоки Stateflow®
Блоки s-function с состояниями, не указанными как Непрерывное или Двойное Дискретное Значение
Например, если вы вычисляете установившуюся рабочую точку для следующей модели Simulink, получившийся объект рабочей точки не включает состояния блока Обратной реакции, потому что эти состояния имеют внутреннее представление. Если вы используете этот объект рабочей точки инициализировать модель Simulink, начальные условия блоков Обратной реакции могут быть несовместимыми с рабочей точкой.
Сгенерируйте список блоков, которые имеют представления внутреннего состояния.
sldiagnostics(sys,'CountBlocks')
где sys
является именем модели. Эта команда также возвращает количество случаев каждого блока.
Блоки с внутренними состояниями могут вызвать проблемы для установившегося поиска рабочей точки (обрезка). Где нет никакого прямого сквозного соединения, вход к блоку в текущее время не определяет вывод блока в текущее время.
Чтобы устранить эту проблему для Памяти, Транспортная Задержка или Переменные Транспортные блоки Задержки, выбирает опцию Direct feedthrough of input during linearization в диалоговом окне Block Parameters перед поиском рабочей точки или линеаризацией модели в устойчивом состоянии. Эта установка заставляет такие блоки вести себя, как будто у них есть усиление одного во время поиска рабочей точки.
Например, следующая модель включает блок Transport Delay. В этом случае вы не можете найти рабочую точку устойчивого состояния с помощью оптимизации, потому что вывод Транспортной Задержки всегда является нулем. Поскольку ссылочный сигнал равняется 1, вход к блоку Plant должен быть ненулевым, чтобы заставить блок объекта иметь вывод 1 и быть в устойчивом состоянии.
Выберите опцию Direct feedthrough of input during linearization в диалоговом окне Block Parameters перед поиском рабочей точки. Эта установка позволяет блоку PID Controller передавать ненулевое значение блоку Plant.
Можно также установить прямые проходные опции в командной строке.
Блок | Команда, чтобы задать прямое сквозное соединение |
---|---|
Memory | set_param(blockname,'LinearizeMemory','on') |
Транспортная задержка или переменная транспортная задержка | set_param(blockname,'TransDelayFeedthrough','on') |
Для других блоков с внутренними состояниями определите, влияет ли вывод блока на производные состояния или желаемые уровни на выходе прежде, чем вычислить рабочие точки. Если блок влияет на эти производные или уровни на выходе, рассмотрите заменяющий его с помощью конфигурируемой подсистемы.