exponenta event banner

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

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

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

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

J = (∂f∂x∂f∂u∂g∂x∂g∂u) = (ABCD).

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

Jx=A=∂f∂x.

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

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

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

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

Из этой системы можно получить шаблон разреженности, который отражает структуру уравнений. Шаблон, логическая матрица, имеет 1 для eachxi, который появляется явно в правой части уравнения. Таким образом, вы получаете:

Jx, шаблон = (101010010)

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

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

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

Примечание

Если для параметра Автоматический решатель задано значение error на панели Диагностика решателя (Solver Diagnostics) можно выбрать решатель, отличный от предложенного Simulink, и получить ошибку.

Ограничения

Эти ограничения связаны с методами якобиана решателя.

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

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

Эвристический метод «авто»

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

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

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

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

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

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

Решатель Якобиан:

Jx = (∂f1∂x1∂f1∂x2∂f1∂x3∂f2∂x1∂f2∂x2∂f2∂x3∂f3∂x1∂f3∂x2∂f3∂x3) = (f1 (x1 + Δx1, x2, x3) f1Δx1f1 (x1, x2 + Δx2, x3) f1Δx2f1 (x1, x2, x3 + Δx3) f1Δx3f2 (x1 + Δx1, x2, x3)

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

Применяя шаблон разреженности и состояния возмущения x1 и x2 вместе, эта матрица сводится к:

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, так и режим быстрого ускорения.

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

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

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

Поддержка создания кода

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