exponenta event banner

Устранение неполадок результатов линеаризации в линеаризаторе модели

В этом примере показано, как использовать помощник по линеаризации для отладки линеаризации модели маятника в линеаризаторе модели.

Настройка модели

Откройте модель Simulink.

mdl = 'scdpendulum';
open_system(mdl)

Исходное условие угла маятника - 90 градусов против часовой стрелки от вертикального неустойчивого равновесия 0 градусов. Исходное условие угловой скорости маятника - 0 град/с. Номинальный крутящий момент для поддержания этого состояния составляет -49,05 Н м. Эта конфигурация сохраняется как исходное состояние модели.

Открыть модель линеаризатора и модель линеаризации

Чтобы открыть Линеаризатор модели (Model Linearizer), в окне Модель симуляции (Simulink model) на вкладке Приложения (Apps) щелкните Линеаризатор модели (Model Linearizer).

Для линеаризации модели в исходном состоянии модели в линеаризаторе модели на вкладке Линейный анализ (Linear Analysis) щелкните Вид (Bode).

Программа линеаризует модель и строит график ее частотной характеристики.

Как видно из графика Боде, система линеаризована до нуля таким образом, что крутящий момент не влияет на угол или угловую скорость. Это можно объяснить с помощью помощника по линеаризации.

Линеаризация модели с включенным помощником

Чтобы релинеаризовать модель и создать консультанта, выберите Помощник по линеаризации (Linearization Advisor) и щелкните График модели (Bode Plot) 1.

Программа линеаризует модель, создает linsys2_advisor документ и открывает вкладку Помощник (Advisor).

Выделить траекторию линеаризации

Чтобы показать путь линеаризации для текущей линеаризации, на вкладке Помощник (Advisor) щелкните Подсветить путь линеаризации (Highlight Linearization Path).

  • Синий цвет численно влияет на линеаризацию модели.

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

Для удобства показаны только блоки под маятниковой подсистемой.

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

Исследование потенциально проблемных блоков с помощью Advisor

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

Для просмотра дополнительной информации о линеаризации конкретного блока в соответствующей строке таблицы щелкните Информация о блоке (Block Info).

В этом случае консультант сообщает о трех блоках: блоке насыщения и двух блоках тригонометрической функции. Сначала исследуйте блок насыщения, так как он имеет диагностику. Для этого в первой строке таблицы щелкните Информация о блоках (Block Info).

Существует два диагностических сообщения для блока «Насыщенность». Первое сообщение указывает, что блок линеаризован вне его нижнего предела насыщения, равного -49, так как входная рабочая точка -49.05. В сообщении также указывается, что блок может быть линеаризован как коэффициент усиления, который будет линеаризовать блок как 1 независимо от входной рабочей точки. Для этого сначала щелкните линеаризацию блока как коэффициент усиления, который подсвечивает соответствующий параметр в диалоговом окне блока. Затем выберите параметр Обработать как коэффициент усиления при линеаризации.

Второе сообщение указывает, что линеаризация этого блока приводит к линеаризации модели до нуля. Как показано в разделе Линеаризация (Linearization), блок линеаризуется до нуля. Поэтому изменение линеаризации блока является хорошим первым шагом к получению линеаризации ненулевой модели.

Релинеаризация модели

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

Чтобы релинеаризовать модель, на вкладке Линейный анализ (Linear Analysis) щелкните График модели (Bode Plot) 1. Документ Bode Plot 1 обновляется, показывая ненулевой ответ linsys3.

В соответствующем документе linsys_advisor3 блок «Насыщенность» больше не отображается. Однако два тригонометрических функциональных блока все еще показаны.

Выделите путь линеаризации.

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

Чтобы понять, почему эти блоки не способствуют линеаризации, перейдите к блокам из linsys3_advisor документа. Например, щелкните Информация о блоке (Block Info) во второй строке таблицы.

Для этого тригонометрического функционального блока линеаризация равна нулю, а входная рабочая точка равна.$\pi/2 = 1.5708$

Можно найти линеаризацию блока аналитически, взяв первую производную sin функция по отношению к входам:

$$\frac{\partial}{\partial u} \sin(u) = \cos(u)$$

Следовательно, при оценке при$u = \pi/2$ линеаризации блока он равен нулю. Источником входного сигнала является первый выходной сигнал интегратора второго порядка, который зависит от состояния тета. Поэтому этот блок линеаризуется до нуля, если, $\theta = \pi/2 + k\pi$где -$k$ целое число. Это же условие относится и к другой тригонометрической функции в подсистеме angle_wrap.

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

Выполнить предварительно созданные запросы помощника

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

  • Наличие диагностических сообщений относительно линеаризации блоков.

  • Линеаризовано до нуля.

  • Имеют замещенные линеаризации.

Чтобы выполнить другой предварительно созданный запрос, на вкладке Помощник в коллекции Запросы щелкните запрос. Например, щелкните Нулевая пара ввода-вывода на траектории (Zero I/O Pair on Path).

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

Создание и выполнение пользовательских запросов

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

В диалоговом окне Построитель запросов:

  1. Укажите имя запроса как sisopert.

  2. В раскрывающемся списке выберите Has 'Ny' Outputs', и указать 1 в поле «Выходные данные».

  3. Чтобы добавить в запрос другой компонент, нажмите кнопку Добавить в запрос.

  4. Во втором выпадающем списке выберите Has 'Nu' Inputs', и указать 1 в поле «Входные данные».

  5. Нажмите кнопку Добавить в запрос.

  6. В третьем раскрывающемся списке выберите Perturbation.

Щелкните Выполнить запрос (Run Query).

В linsys3_advisor документе показаны блоки, соответствующие указанным критериям запроса, и запрос sisopert добавляется в галерею запросов.

Чтобы удалить запрос sisopert, на вкладке Помощник щелкните Удалить запрос и выберите sisopert.

Мастер экспорта и создание сценария MATLAB

Также можно отладить линеаризации модели с помощью функций командной строки помощника по линеаризации. Чтобы экспортировать объект Advisor в рабочую область MATLAB, щелкните Экспорт (Export). Затем в диалоговом окне «Экспорт консультантов» выберите один или несколько консультантов для экспорта. Например, выберите linsys3_advisor.

Щелкните Экспорт (Export).

Кроме того, можно создать сценарий MATLAB, который автоматизирует линеаризацию, извлечение консультанта, создание пользовательских запросов и выполнение запросов. Чтобы создать этот сценарий, нажмите кнопку Export split и выберите Generate Script.

bdclose(mdl)

См. также

Приложения

Связанные темы