Выберите якобиевский метод для неявного решателя

Для неявных решателей, Simulink® должен вычислить якобиан решателя, который является субматрицей якобиевской матрицы, сопоставленной с непрерывным представлением модели Simulink. В общем случае это непрерывное представление имеет форму:

x˙=f(x,t,u)y=g(x,t,u).

Якобиан, J, сформированный из этой системы уравнений:

J=(fxfugxgu)=(ABCD).

В свою очередь якобиан решателя является субматрицей, Jx.

Jx=A=fx.

Разреженность якобиана

Для многих физических систем якобиан решателя Jx разрежен, означая, что многими элементами Jx является нуль.

Рассмотрите следующую систему уравнений:

x˙1=f1(x1,x3)x˙2=f2(x2)x˙3=f3(x2).

От этой системы можно вывести шаблон разреженности, который отражает структуру уравнений. Шаблон, Булева матрица, имеет 1 для каждогоxi это появляется явным образом на правой стороне уравнения. Поэтому вы получаете:

Jx,pattern=(101010010)

Разреженное возмущение и разреженные аналитические методы могут смочь использовать в своих интересах этот шаблон разреженности, чтобы сократить количество необходимых расчетов и улучшать производительность.

Методы якобиана решателя

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

Примечание

Если вы устанавливаете Automatic solver parameter selection на error в панели Диагностики Решателя, и вы выбираете другой решатель, чем предложенный Simulink, можно получить ошибку.

Ограничения

Методам якобиана решателя сопоставили эти ограничения с ними.

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

  • Если вы выбираете разреженное возмущение, и ваша модель содержит блоки хранилища данных, Simulink применяет полный метод возмущения.

Эвристический метод 'auto'

Настройка по умолчанию для Solver Jacobian method auto. Выбор этого выбора заставляет Simulink определять, какой из остающихся четырех методов лучше всего удовлетворяет вашей модели. Эта блок-схема изображает алгоритм.

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

Полные и разреженные методы возмущения

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

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

x˙1=f1(x1,x3)x˙2=f2(x2)x˙3=f3(x2).

Якобиан решателя:

Jx=(f1x1f1x2f1x3f2x1f2x2f2x3f3x1f3x2f3x3)=(f1(x1+Δx1,x2,x3)f1Δx1f1(x1,x2+Δx2,x3)f1Δx2f1(x1,x2,x3+Δx3)f1Δx3f2(x1+Δx1,x2,x3)f2Δx1f2(x1,x2+Δx2,x3)f2Δx2f2(x1,x2,x3+Δx3)f2Δx3f3(x1+Δx1,x2,x3)f3Δx1f3(x1,x2+Δx2,x3)f3Δx2f3(x1,x2,x3+Δx3)f3Δx3)

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

Путем применения шаблона разреженности и беспокойства состояний x 1 и x 2 вместе, эта матрица уменьшает до:

Jx=(f1(x1+Δx1,x2+Δx2,x3)f1Δx10f1(x1,x2,x3+Δx3)f1Δx30f2(x1+Δx1,x2+Δx2,x3)f2Δx200f3(x1+Δx1,x2+Δx2,x3)f3Δx20)

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

Разреженный метод возмущения, как разреженный аналитический метод, использует UMFPACK, чтобы выполнить линейные алгебраические операции. Кроме того, разреженный метод возмущения поддерживает и RSim и быстрый режим Accelerator.

Полные и разреженные аналитические методы

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

Для получения дополнительной информации о том, как получить доступ и интерпретировать шаблон разреженности в MATLAB®, смотрите Исследование Структуры якобиана Решателя Модели.

Поддержка генерации кода

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