Поиск и устранение проблем с линеаризацией блоков

Если вы идентифицируете блоки, представляющие интерес в результатах линеаризации для Simulink® модель путем запроса Linearization Advisor, можно диагностировать отдельные линеаризации блоков. Для получения дополнительной информации о запросах Linearization Advisor и просмотре информации о диагностике блоков, см. Раздел «Идентифицируйте и устраните общие проблемы линеаризации».

Можно также диагностировать индивидуума линеаризации блоков в командной строке с помощью BlockDiagnostic объект. Для получения примера смотрите Поиск и устранение проблем с результатами линеаризации в командной строке.

В Model Linearizer на вкладке Advisor подробная диагностическая информация для линеаризации блоков показывает:

  • Диагностические сводные данные, показывающий любые соответствующие диагностические сообщения и таблицу сводных данных линеаризации.

  • Значение линеаризации блоков.

  • Рабочая точка блока; состояние и входные значения, для которых блок линеаризирован.

Вы можете диагностировать потенциальные проблемы линеаризации, используя эту информацию.

Диагностические сообщения

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

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

  • Блоки без предопределенной точной линеаризации и с сигналами или состояниями без плавающей точки. Такие блоки линеаризируются в нуль и генерируют диагностические сообщения.

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

  • Блоки с по крайней мере одной парой вход/выход, которая линеаризируется до нуля и которая вызывает нулевую пару вход/выход в общей модели линеаризации. Линеаризация имеет нулевую пару вход/выход, когда изменение значения входного сигнала не приводит к соответствующему изменению выхода значения.

  • Блоки, которые не поддерживают линеаризацию, потому что они не имеют предопределенной точной линеаризации и не поддерживают численное возмущение.

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

Сводные данные по линеаризации

Таблица сводных данных линеаризации отображает следующие свойства линеаризации блоков:

  • Block Path - Расположение блока в модели Simulink. Чтобы выделить блок в модели, щелкните путь к блоку.

  • Is On Path - Флаг, указывающий, находится ли блок на пути линеаризации, то есть, по меньшей мере, один вход линеаризации соединяется, по меньшей мере, с одним выходом линеаризации через блок. Если вы ожидаете, что блок будет находиться в пути линеаризации, а он не в пути, проверьте строение точки анализа в вашей модели. Неправильно размещенные входы/выходы линеаризации или открытия цикла могут исключить блоки из пути линеаризации. Точно так же размещение неправильных точек анализа может неожиданно добавить блоки к пути линеаризации.

  • Contributes to Linearization - Флаг, указывающий, вносит ли блок численный вклад в полную линеаризацию модели. Если блок неожиданно не способствует результату линеаризации, исследуйте линеаризацию блока и других блоков в той же ветви пути линеаризации. Для примера, если соседний блок на пути линеаризации линеаризируется до нуля, то правильно линеаризированный блок может быть исключен из результата линеаризации.

  • Linearization method - Метод, используемый для линеаризации модели, заданный как одно из следующего:

Блочная линеаризация

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

Чтобы диагностировать причину неожиданной линеаризации блоков, такой как блок, который линеаризируется до нуля, рассмотрите:

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

  • Рабочая точка блока. Для примера, если вход в блок насыщения находится вне пределов насыщения блока, блок линеаризируется до нуля.

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

Рабочая точка блока

Если блок не линеаризируется должным образом, проверьте рабочую точку. Рабочая точка, в которой блок линеаризируется, состоит из входных и значений состояния. Если рабочая точка для блока неправильна, проверьте, верна ли общая рабочая точка модели. Для получения дополнительной информации см. «Проверка рабочей точки».

Если значение входного сигнала в рабочей точке блока неверно, исследуйте линеаризацию вышестоящих блоков из этого сигнала. Например, рассмотрим блок Product с двумя входами. Рабочая точка этого блока состоит из двух значений входного сигнала. Если любое входное значение равно нулю, путь от другого входа до выхода линеаризируется к нулю.

Если вы ожидаете, что блок Product будет способствовать результату линеаризации для рабочей точки, в которой вы линеаризировали модель, проверяйте линеаризацию для блока, который генерирует нулевой входной сигнал. Для сложных моделей причиной неправильного входного сигнала может быть более одного блока в восходящем направлении.

Общие проблемные блоки

Некоторые блоки Simulink имеют свойства, которые заставляют их плохо линеаризироваться. Часто такие блоки либо линеаризируются до нуля, либо имеют связанные с ними диагностические сообщения линеаризации. Поэтому Linearization Advisor определяет их как потенциально проблемные блоки, когда вкладка Advisor впервые откроется.

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

Тип блокаПроблема линеаризацииВозможное исправление
Блоки, которые не поддерживают линеаризациюНекоторые блоки реализованы без заданных аналитических якобианов и не поддерживают числовые возмущения.Задайте пользовательский блок линеаризацию. Для примеров смотрите Specify Linear System for Block Linearization Using MATLAB Expression и Specificate D-Matrix System for Block Linearization Using Function.
Блоки с разрывамиБлоки с разрывами обычно имеют плохие результаты линеаризации, когда рабочая точка близка к разрыву.
Основанные на событиях подсистемы (триггируемые подсистемы)Блоки в основанных на событиях подсистемах линеаризируются до нуля, потому что такие подсистемы не запускаются во время линеаризации.Когда это возможно, задайте пользовательскую основанную на событиях подсистему линеаризацию как сгруппированную среднюю модель или подсистему периодического вызова функции. Для получения дополнительной информации смотрите Linearize Event-Based Subsystems (Внешне планируемые подсистемы).
Блоки с сигналами без плавающей точкиБлоки, которые имеют входные сигналы или состояния без плавающей точки и не имеют заданных аналитических якобианов, линеаризируются в нуль.Преобразуйте типы данных, не имеющие плавающей точки, в точность двойной точности или одинарную точность. Для получения дополнительной информации смотрите Linearize Blocks with Non-Floating-Point Signals или States.
Блоки, которые линеаризируются с помощью численного возмущения, а не заданных аналитических якобиановБлоки, которые расположены вблизи прерывистых областей, таких как S-Functions, блоки MATLAB function или интерполяционные таблицы, чувствительны к численным уровням возмущения. Если уровень возмущения слишком мал, блок линеаризируется до нуля.Измените численный уровень возмущения блока. Для получения дополнительной информации смотрите Изменение уровня возмущения блоков, возмущенных во время линеаризации.

Похожие темы