Объект рабочей точки, используемый для линеаризации и системы управления, не включает Simulink® блоки с представлением внутреннего состояния, например:
Memory блоки
Отключенные блоки If Action Subsystem и Switch Case Action Subsystem
Backlash блоки
MATLAB Function блоки с постоянными данными
Rate Transition блоки
Stateflow® блоки
S-Function блоки с состояниями, не зарегистрированными как Continuous или Double Value Discrete
Для примера, если вы вычисляете установившуюся рабочую точку для следующей модели Simulink, полученный объект рабочей точки не включает Backlash состояний блока, потому что эти состояния имеют внутреннее представление. Если вы используете этот объект рабочей точки для инициализации модели Simulink, начальные условия блоков Backlash могут быть несовместимы с рабочей точкой.
Блоки с внутренними состояниями могут вызвать проблемы для статического поиска рабочей точки (обрезка). Там, где нет прямого сквозного соединения, вход в блок в текущем времени не определяет выход блока в текущем времени.
Чтобы исправить эту проблему для Memory, Transport Delay или Variable Transport Delay блоков, выберите опцию Direct feedthrough of input during linearization в диалоговом окне Параметров блоков, прежде чем искать рабочую точку или линеаризировать модель в установившемся состоянии. Эта настройка заставляет такие блоки вести себя так, как если бы они имели коэффициент усиления в единицах во время поиска рабочей точки.
Например, следующая модель включает блок Transport Delay. В этом случае вы не можете найти рабочую точку устойчивого состояния с помощью оптимизации, потому что выход Transport Delay всегда равен нулю. Поскольку опорный сигнал равен 1, вход в блок Объекта должен быть ненулевым, чтобы блок объекта имел выход 1 и находился в установившемся состоянии.
Выберите опцию Direct feedthrough of input during linearization в диалоговом окне Параметров блоков перед поиском рабочей точки. Эта настройка позволяет блоку PID Controller передать ненулевое значение блоку Plant.
Можно также задать опции прямой передачи в командной строке.
Блок | Команда для задания прямого сквозного соединения |
---|---|
Memory | set_param(blockname,'LinearizeMemory','on') |
Transport Delay или Variable Transport Delay | set_param(blockname,'TransDelayFeedthrough','on') |
Для других блоков с внутренними состояниями определите, влияет ли выход блока на производные состояния или желаемые выходные уровни перед вычислением рабочих точек. Если блок влияет на эти производные или выходные уровни, рассмотрите замену его с помощью конфигурируемой подсистемы.