Управление точностью интегрирования

Управление точностью интегрирования по времени (DRLTX, DABSX)

Назначение параметров

Параметры DRLTX и DABSX определяют допустимую локальную погрешность (ЛП) на шаге интегрирования. Локальная погрешность оценивается для каждой степени свободы как половина разности между прогнозируемым (явный прогноз) и скорректированным (неявная коррекция) значениями потенциальной переменной (скорости, температуры, давления и т.п.).

Формула для вычисления допустимой локальной погрешности:

∆ = DABSX + DRLTX × |Vc|

где |Vc| — абсолютное значение скорректированной потенциальной переменной на текущем шаге.

Физическая интерпретация

Параметр

Тип

Что контролирует

Когда доминирует

DABSX

Абсолютная

Минимальная гарантированная точность

В области малых значений |Vc| (скорости близки к нулю)

DRLTX

Относительная

Точность относительно текущего значения

В области больших значений |Vc|

Правила выбора DABSX

Значение DABSX должно выбираться исходя из амплитуды наименьших (по абсолютной величине) потенциальных переменных, для которых требуется высокая точность.

Примеры ориентировочных значений:

Область применения

Диапазон значений переменной

Рекомендуемое DABSX

Механика (скорости)

0.001 … 0.1 м/с

0.0001 … 0.001

Механика (скорости)

0.1 … 10 м/с

0.001 … 0.01

Механика (скорости)

10 … 1000 м/с

0.01 … 0.1

Теплотехника (температура)

1 … 100 °C

0.01 … 0.1

Электротехника (напряжение)

0.1 … 10 В

0.001 … 0.01

Гидравлика (давление)

0.1 … 10 МПа

0.001 … 0.01

Правила выбора DRLTX

Параметр DRLTX задаёт относительную точность в долях от текущего значения переменной. Значение 0.001 соответствует относительной погрешности 0.1%.

Рекомендуемые диапазоны:

Требуемая точность

DRLTX

Оценочный (грубый) расчёт

0.01 … 0.05

Рабочий (средний) расчёт

0.001 … 0.005

Точный (финальный) расчёт

0.0001 … 0.0005

Анализ затухающих процессов длительностью > 10⁴ периодов

1e-6 … 1e-5

Взаимное влияние параметров

  • Если DABSX >> DRLTX × |Vc| — доминирует абсолютная составляющая. Расчет грубый в области малых значений, но может быть излишне точным в области больших значений.

  • Если DABSX << DRLTX × |Vc| — доминирует относительная составляющая. Высокая точность в области больших значений, но возможны проблемы в области малых значений (избыточное дробление шага).

  • Рекомендуемое соотношение: DABSX ≈ DRLTX × |Vc|_min, где |Vc|_min — характерное минимальное значение переменной в интересующей области процесса.

Влияние на вычислительные затраты

Уменьшение DRLTX или DABSX в 10 раз приводит, как правило, к увеличению количества шагов интегрирования в 2–5 раз (в зависимости от жесткости системы). Для систем с широким частотным спектром влияние может быть более существенным.

Управление шагом интегрирования (SMAX, SMIN, CONTROL, WEIGHT)

Назначение и область применения

В процессе численного интегрирования системы дифференциальных уравнений вычислительное ядро PRADIS использует алгоритм автоматического выбора шага интегрирования. Указанный алгоритм опирается на оценку локальной погрешности (см. подраздел 2.5), успешность сходимости метода Ньютона при решении системы нелинейных уравнений (см. подраздел 2.8), а также на рекомендации, поступающие от отдельных моделей элементов.

Для ограничения диапазона, в котором может изменяться шаг интегрирования, пользователю предоставляются ключевые параметры SMAX (максимально допустимый шаг) и SMIN (минимально допустимый шаг). Кроме того, параметры CONTROL и WEIGHT позволяют управлять поведением алгоритма в областях с высокочастотными составляющими решения, а также задавать нижнюю границу уменьшения шага по критерию локальной погрешности.

Параметры SMAX и SMIN

SMAX определяет верхнюю границу шага интегрирования. Независимо от оценок локальной погрешности и рекомендаций моделей элементов, шаг не может превышать значение SMAX. Параметр SMIN задаёт нижнюю границу шага. При попытке алгоритма уменьшить шаг ниже SMIN выдается диагностическое сообщение R 008, и выполнение текущей программы интегрирования прекращается.

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

Значение SMIN по умолчанию (1e-11) в большинстве случаев изменять не рекомендуется. Увеличение SMIN может применяться в ситуациях, когда потеря шагов по несходимости решения СнЛУ происходит исключительно из-за того, что отдельные модели элементов рекомендуют неоправданно малый шаг.

Параметр CONTROL

Параметр CONTROL выполняет две функции:

  1. Задаёт нижнюю границу уменьшения шага по критерию локальной погрешности. Если для обеспечения заданной пользователем точности (DRLTX, DABSX) требуется шаг, меньший CONTROL, то требование к точности считается выполненным, и дальнейшее дробление шага не производится. При этом вычислительный процесс продолжается с шагом, равным CONTROL.

  2. Совместно с параметром WEIGHT обеспечивает принудительное демпфирование (гашение) высокочастотных составляющих решения.

Важно: параметр CONTROL ограничивает уменьшение шага только по критерию локальной погрешности. По другим причинам (несходимость решения СнЛУ, рекомендации моделей элементов) шаг может уменьшаться ниже значения CONTROL, но не ниже SMIN.

Значение CONTROL по умолчанию равно 0, что означает отсутствие указанного ограничения.

Параметр WEIGHT. Механизм частотно-зависимого демпфирования

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

В документации указано эмпирическое правило:

При WEIGHT = 1 за один период колебаний гасятся колебания с периодом, примерно на порядок меньшим величины CONTROL.

Более формально: эффективное демпфирование наблюдается для колебаций, частота которых превышает величину ~1 / (10 × CONTROL). Увеличение WEIGHT приводит к более интенсивному и избирательному подавлению высокочастотной составляющей.

Для сохранения частотной характеристики фильтра при изменении CONTROL рекомендуется придерживаться соотношения:

> CONTROL² × WEIGHT ≈ const

То есть при уменьшении CONTROL в 10 раз значение WEIGHT должно быть увеличено примерно в 100 раз.

Влияние CONTROL и WEIGHT на вычислительные затраты и точность

В документации приведён тестовый пример, содержащий пять колебательных контуров с периодами T, T/10, T/100, T/500 и T/1000 (см. подраздел 2.7). Результаты демонстрируют:

  • При отсутствии заданного CONTROL (или CONTROL = 0) программа интегрирования отслеживает все частоты. Количество шагов может составлять сотни тысяч, а время расчёта — десятки минут даже для моделей малой размерности.

  • При задании CONTROL, ограничивающего минимальный шаг на уровне ~T/10000, и WEIGHT = 1 количество шагов сокращается на порядок. При этом высокочастотные составляющие (T/500, T/1000) затухают в течение нескольких периодов.

  • Увеличение WEIGHT до 50–100 при соответствующем уменьшении CONTROL позволяет подавить высокочастотные составляющие практически мгновенно, дополнительно сократив число шагов. Платой является некоторое увеличение погрешности для наиболее высокочастотных из интересующих пользователя гармоник.

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

Цель расчёта

CONTROL

WEIGHT

Примечание

Максимальная точность; допустимы большие вычислительные затраты

0 (по умолчанию)

1 (по умолчанию)

Отслеживаются все частоты

Предварительный (оценочный) расчёт; быстрый анализ

1e-5 … 1e-4

10 … 100

Высокочастотные составляющие подавляются

Длительный расчёт с жёсткими ограничениями по времени

~T_min / 10

100 … 1000

T_min — минимальный период интересующих колебаний

Тонкая фильтрация узкой полосы частот

малый (1e-6 и менее)

большой (1000 и более)

Высокая избирательность; затраты растут

Ограничения и совместимость

  • Значение CONTROL не может превышать SMAX. Задание CONTROL < SMIN допустимо, но нецелесообразно: в этом случае ограничение по локальной погрешности никогда не срабатывает.

  • Значение WEIGHT может быть любым неотрицательным числом. При WEIGHT = 0 параметр CONTROL не оказывает влияния на демпфирование.

  • Параметры CONTROL и WEIGHT совместно работают только для неявных схем интегрирования (SCHEME = 0 или 1). Для явной схемы (SCHEME = 2) их использование не предусмотрено.

Пример диагностики

При срабатывании ограничения CONTROL в процессе расчёта в файл SYSPRINT.TXT может быть выведена следующая информация:

Time=.5000000 Step=.100E-07 NStep= 56
1 -> Pv=.50E+06 Vold= 1.00 Aold=.100E+12 Vp=.100E+04 Vc=1.00
ЛП превышает норму.
Переход на следующий шаг интегрирования. Выбор шага определяется
значением параметра CONTROL.

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

Замечания по взаимодействию CONTROL, WEIGHT и точности

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

При возникновении сообщения R 008 (заданный SMIN не обеспечивает требуемой точности) не следует пытаться уменьшать SMIN. Вместо этого целесообразно задать CONTROL порядка 1e-6 … 1e-8 и, при необходимости, скорректировать WEIGHT в соответствии с приведённым выше соотношением.

Управление точностью решения системы нелинейных уравнений (DRLTU, DABSU, DRLTI, DABSI)

Общие положения

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

  • по аргументу (приращение независимой переменной) — параметры DRLTU, DABSU;

  • по невязке (отклонение правой части от нуля) — параметры DRLTI, DABSI.

Критерий сходимости по аргументу (DRLTU, DABSU)

Формула для вычисления допустимого приращения независимой переменной:

[dU] = DABSU + DRLTU × |U|

где:

  • U — текущее значение независимой переменной (скорость, температура и т.п.);

  • |U| — её абсолютное значение.

Назначение:

Параметр

Контролирует

DABSU

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

DRLTU

Относительную величину изменения переменной. Важен при больших значениях U.

Физический смысл: критерий по аргументу гарантирует, что метод Ньютона вышел на «плато» решения, где дальнейшие уточнения не меняют значение переменной более чем на заданную величину.

Критерий сходимости по невязке (DRLTI, DABSI)

Формула для вычисления допустимой абсолютной невязки:

[ΣF] = DABSI + DRLTI × Σ|F|

где:

  • Σ|F| — сумма абсолютных значений потоковых переменных (сил, токов, расходов), подводимых к степени свободы от всех моделей элементов.

Назначение:

Параметр

Контролирует

DABSI

Абсолютную величину нарушения баланса (невязки). Влияет на точность выполнения законов сохранения (равновесия сил, баланса токов).

DRLTI

Относительную величину нарушения баланса относительно суммарного потока.

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

Таблица параметров точности решения СнЛУ

Параметр

Тип

Объект контроля

Значение по умолчанию

Диапазон

DABSU

Абсолютный

Аргумент

0.01

>0

DRLTU

Относительный

Аргумент

0.001

>0

DABSI

Абсолютный

Невязка

0.1

>0

DRLTI

Относительный

Невязка

0.001

>0

Приоритет и логика проверки

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

  1. |dU| < DABSU + DRLTU × |U| (критерий по аргументу)

  2. |ΣF| < DABSI + DRLTI × Σ|F| (критерий по невязке)

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

Рекомендации по выбору параметров

Сценарий

DABSU

DRLTU

DABSI

DRLTI

Обоснование

Стандартный механический расчёт

1e-3 … 1e-2

1e-3

1e-2 … 1e-1

1e-3

Баланс между скоростью и точностью

Расчёт с жёсткими пружинами (большие силы)

1e-4 … 1e-3

1e-4

1e-1

1e-3

Ужесточение по аргументу для сходимости

Гидравлические системы (малые расходы)

1e-6 … 1e-5

1e-3

1e-6 … 1e-5

1e-3

Ужесточение по абсолютным значениям

Электрические схемы (малые токи)

1e-9 … 1e-8

1e-3

1e-9 … 1e-8

1e-3

Масштабирование под величины токов

Проблемы сходимости (потеря шагов)

Увеличить в 10 раз

1e-2

Увеличить в 10 раз

1e-2

Ослабление критериев

Финальный точный расчёт

Уменьшить в 10 раз

1e-4

Уменьшить в 10 раз

1e-4

Повышение точности

Взаимосвязь параметров точности СнЛУ с параметрами локальной погрешности

Если…

Связь

Рекомендация

DABSU, DRLTU слишком жёсткие

Метод Ньютона требует много итераций, шаг интегрирования не растёт

Ослабить DABSU, DRLTU в 10–100 раз

DABSU, DRLTU слишком мягкие

Накопленная погрешность интегрирования может быть неоправданно велика

Ужесточить до значений, близких к DABSX, DRLTX

DABSI, DRLTI слишком жёсткие

Сложно достичь равновесия, особенно в нелинейных задачах (контакт, трение)

Принять DABSI ≈ (10 … 100) × DABSX

DABSI, DRLTI слишком мягкие

Накопленный дисбаланс сил может исказить динамику

DABSI не должно превышать характерные действующие силы

Типовое соотношение: для большинства механических задач рекомендуется DABSI ≈ 10 × DABSX. Это связано с тем, что невязка сил на порядок может превышать погрешность определения скорости из-за жёсткости связей.

Диагностика проблем

Признаки излишней жёсткости критериев:

  • В статистике работы программы наблюдается большое количество потерянных итераций по несходимости СнЛУ.

  • Величина шага интегрирования систематически ниже, чем позволяют оценки локальной погрешности.

  • Сообщения в отладочном выводе (DEBUG=11) показывают Pf >> 1 при Px ≈ 1.

Признаки излишней мягкости критериев:

  • Накопленная погрешность решения (сравнение с аналитическим или эталонным решением) недопустимо велика.

  • Выходные переменные демонстрируют нефизичный «шум» или нестабильность.

  • Сообщения отладочного вывода показывают, что сходимость достигается за 1–2 итерации на шаге, но результат визуально неудовлетворителен.

Взаимодействие параметров точности

Иерархия влияния на вычислительный процесс

Заданная пользователем точность
       │
       ▼
DRLTX, DABSX ──────────────► Определяют минимальный шаг интегрирования
       │                     (локальная погрешность)
       │
       ▼
DRLTU, DABSU ──────────────► Определяют сходимость метода Ньютона
       │                     по аргументу
       │
       ▼
DRLTI, DABSI ──────────────► Определяют сходимость метода Ньютона
                             по невязке (балансу)

Правило «золотого сечения»

Для большинства практических задач рекомендуется следующее соотношение между параметрами:

DABSX ≈ DABSU / 10 ≈ DABSI / 100

DRLTX ≈ DRLTU ≈ DRLTI

Типичные ошибки и их проявления

Ошибка

Проявление

Исправление

DABSX слишком мало по сравнению с DABSU

Потери шагов по локальной погрешности, хотя метод Ньютона сходится хорошо

Увеличить DABSX или уменьшить DABSU

DABSI слишком мало по сравнению с DABSX

Метод Ньютона не сходится даже при мелком шаге, хотя локальная погрешность мала

Увеличить DABSI в 10–100 раз

DRLTU / DRLTI слишком мягкие

Сходимость достигается за 1–2 итерации, но результат неточный

Уменьшить относительные составляющие

Все параметры слишком жёсткие

Расчёт не идёт (останов по R 006 или R 008)

Последовательно ослаблять: сначала DABSI, затем DABSU, затем DABSX