Линеаризация сетей Simscape

Можно линеаризировать модели с Simscape™ компонентами с помощью Simulink® Control Design™ программным обеспечением. Как правило, некоторые состояния в сети Simscape имеют зависимости от других состояний через ограничения.

Поиск установившейся рабочей точки

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

  • Основанное на оптимизации обрезка - Задайте ограничения на входах, выходах или состояниях модели и вычислите установившуюся рабочую точку, которая удовлетворяет этим ограничениям.

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

  • Симуляционные снимки - Задайте начальные условия модели вблизи ожидаемой точки равновесия и моделируйте модель, пока она не достигнет устойчивого состояния.

Для получения дополнительной информации смотрите Найти статические рабочие точки для моделей Simscape.

Задайте точки анализа

Чтобы линеаризировать модель, необходимо задать фрагмент модели, которую вы хотите линеаризировать, используя линейные точки анализа; то есть, входы и выходы линеаризации и открытия цикла. Можно только добавить точки анализа к сигналам Simulink.

Чтобы добавить вход линеаризации или открытие цикла к входу компонента Simscape, сначала преобразуйте сигнал Simulink с помощью блока Simulink-PS Converter (Simscape).

Чтобы добавить вывод линеаризации или открытие цикла к выходу компонента Simscape, сначала преобразуйте сигнал Simscape с помощью блока PS-Simulink Converter (Simscape).

Для получения дополнительной информации о добавлении точек линейного анализа смотрите «Задать фрагмент модели для линеаризации».

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

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

Для общих примеров линеаризации смотрите Linearize Simulink Model в рабочей точке модели и Linearize в обрезанной рабочей точке.

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

Сети Simscape могут обычно линеаризироваться в ноль, когда набор системного уравнения Якобианов равен нулю при заданных рабочих условиях. Обычно плохие начальные условия состояний сети вызывают эти нулевые линеаризации.

Пример нулевой линеаризации

Рассмотрим систему, в которой массовый расход жидкости от отверстия переменного сечения управляет положением поршня. Массовый расход жидкости уравнение отверстия переменного сечения является:

q=CdA2μ(pp2+pcr2)0.25

Где:

  • q - массовый расход жидкости.

  • Cd - коэффициент расхода.

  • A - площадь открытия отверстия переменного сечения.

  • μ - плотность жидкости.

  • p - перепад давления через отверстие, p = pa - pb.

  • pcr - критическое давление, которое является функцией pa и pb.

Переменная управления для этой системы является площадью постоянного отверстия, A, которая управляет массовым расходом жидкости. Якобиан массовый расход жидкости относительно управляющей переменной:

qA=Cd2μ(pp2+pcr2)0.25

Линейное уравнение массового расхода жидкости жидкости является:

q¯=Cd2μ(pp2+pcr2)0.25A¯+qμμ¯+(qpcrpcrpa+qp)p¯a+(qpcrpcrpbqp)p¯b

где ·¯ представляет отклонение от номинальной переменной.

В линейном уравнении, если номинальный перепад давления p через отверстие равен нулю, то A¯ не влияет на q¯. То есть, если текущее перепад давления через отверстие равен нулю, площадь постоянного отверстия не влияет на массовый расход жидкости. Поэтому вы не можете управлять положением поршня, используя переменную управления площадью постоянного отверстия.

Чтобы избежать этого условия, линеаризируйте модель о рабочей точке, где перепад давления над отверстием ненулевой (papb).

Советы по поиску и устранению проблем

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

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

  2. Найдите и измените проблемные состояния рабочей точки. Эта опция может оказаться трудной для моделей со многими состояниями.

Используя первый подход, можно убедиться, что состояния модели согласованы с помощью Simulink и Simscape simulation engine. Начальные условия Simscape не обязательно находятся в допустимом состоянии. Механизм Simscape помещает их в непротиворечивое состояние во время симуляции и для обрезки с помощью решателей отделки Simscape.

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

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

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

  1. Линеаризируйте модель с включенным Linearization Advisor и извлеките LinearizationAdvisor объект.

    opt = linearizeOptions('StoreAdvisor',true);
    [linsys,linop,info] = linearize(mdl,io,op,opt);
    advisor = info.Advisor;
  2. Создайте пользовательский объект запроса и выполните поиск диагностической информации для блоков Simscape.

    qSS = linqueryIsBlockType('simscape');
    advSS = find(advisor,qSS);
  3. Чтобы найти проблемные значения состояния, проверяйте рабочую точку блока в каждом BlockDiagnostic объект.

    advSS.BlockDiagnostics(i).OperatingPoint.States

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

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

См. также

Приложения

Функции

Похожие темы