Решатель/Solver Dynamic.Часть 2.Параметры DRLTX,DABSX,SMAX, SMIN, CONTROL

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

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

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

Для контроля этой ошибки в объекте Dynamics используются параметры:

  • DRLTX — относительная составляющая допустимой локальной погрешности;
  • DABSX — абсолютная составляющая допустимой локальной погрешности.

Именно эти параметры оказывают наибольшее влияние на:

  • точность расчета;
  • величину шага интегрирования;
  • вычислительные затраты;
  • скорость получения результата.

Локальная и накопленная погрешности

При численном интегрировании непрерывная интегральная кривая заменяется последовательностью отдельных шагов.

На каждом шаге возникает ошибка аппроксимации, называемая локальной погрешностью интегрирования.

Локальная погрешность характеризует точность выполнения одного конкретного шага по времени.

Однако на следующем шаге расчет продолжается уже с использованием найденного приближенного решения. Поэтому ошибки начинают накапливаться и формируют накопленную (глобальную) погрешность решения.

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

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

Именно по этой причине в PRADIS контролируется локальная погрешность каждого шага интегрирования.


Оценка локальной погрешности

В процессе интегрирования для каждого шага формируется прогнозное и уточненное решение.

В результате на шаге появляются два значения переменной:

  • V^p — прогнозное значение;
  • V^c — скорректированное значение.

Разность между ними используется для оценки локальной погрешности.

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

\Delta_{i+1}=\left|\frac{V^p-V^c}{2}\right|

где:

  • V^p — значение после прогноза;
  • V^c — значение после коррекции.


Рис.2. К определению локальной погрешности на шаге интегрирования

На рисунке показаны:

  • точное решение;
  • интегральная кривая для момента времени t_i ​;
  • интегральная кривая для момента времени t_{i+1};
  • прогнозное значение V^p;
  • скорректированное значение V^c;
  • оценка локальной погрешности.

По сути программа сравнивает результат прогноза и результат коррекции. Чем меньше различие между ними, тем точнее выполнен шаг интегрирования.


Почему уменьшение шага повышает точность

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

Следовательно, уменьшается разность:

V^p-V^c

а вместе с ней уменьшается и оценка локальной погрешности.

Поэтому при недостаточной точности программа автоматически уменьшает шаг интегрирования.

Однако слишком маленький шаг приводит к увеличению времени расчета. Задача алгоритма интегрирования заключается в поиске разумного компромисса между точностью и вычислительными затратами.


Почему недостаточно использовать только абсолютную погрешность

Предположим, скорость процесса составляет:

100 м/с

Тогда ошибка

0.01 м/с

практически не влияет на результат.

Однако для процесса со скоростью

0.001 м/с

та же абсолютная ошибка становится весьма существенной.

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


Почему недостаточно использовать только относительную погрешность

Рассмотрим противоположную ситуацию.

Пусть скорость имеет значение:

0.00001 м/с

Даже очень небольшое абсолютное отклонение в этом случае может привести к огромной относительной ошибке.

В результате программа будет неоправданно уменьшать шаг интегрирования и существенно увеличивать время расчета.

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


Комбинированный критерий точности

Поэтому в PRADIS используется одновременно абсолютная и относительная составляющие допустимой погрешности.

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

[\Delta]=DABSX+DRLTX\cdot|V^c|

где:

  • DABSX — абсолютная составляющая допустимой локальной погрешности;
  • DRLTX — относительная составляющая допустимой локальной погрешности;
  • V^c — скорректированное значение переменной.

При больших значениях переменной

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

DRLTX\cdot|V^c|

то есть контроль точности осуществляется преимущественно по относительной ошибке.

При малых значениях переменной

Доминирует параметр

DABSX

и точность определяется абсолютной составляющей погрешности.

Такой подход позволяет корректно работать как с большими, так и с очень малыми значениями переменных.


Параметры DRLTX и DABSX в объекте Dynamics

Параметры DRLTX и DABSX входят в состав настроек объекта Dynamics и используются для автоматического контроля точности интегрирования.

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

Параметр Значение
DRLTX 0.001
DABSX 0.01

DRLTX

Параметр DRLTX задает относительную составляющую допустимой локальной погрешности.

Уменьшение значения параметра приводит к:

  • повышению точности расчета;
  • уменьшению шага интегрирования;
  • увеличению числа шагов;
  • увеличению числа итераций;
  • увеличению времени расчета.

Увеличение значения параметра дает противоположный эффект — расчет выполняется быстрее, но возрастает накопленная погрешность решения.

DABSX

Параметр DABSX задает абсолютную составляющую допустимой локальной погрешности.

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

Уменьшение значения DABSX приводит к более строгому контролю точности, а увеличение — к ускорению расчета за счет допуска большей ошибки на шаге интегрирования.


Влияние параметров DRLTX и DABSX на результаты расчета

Для оценки влияния параметров DRLTX и DABSX была выполнена серия расчетов колебательной системы без физического демпфирования.

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

Полученные результаты сравнивались с точным решением.



Рис.3. Влияние параметров DRLTX и DABSX на результаты расчета

На рисунке представлены:

  1. Точное решение.
  2. Решение для DRLTX = 1e-4, DABSX = 1e-5.
  3. Решение для DRLTX = 2e-3, DABSX = 2e-4.
  4. Решение для DRLTX = 1e-2, DABSX = 1e-3.

По мере ослабления требований к точности возрастает численное демпфирование, а амплитуда колебаний начинает уменьшаться быстрее, чем в точном решении.

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


Результаты численного эксперимента

№ расчета № графика на рис.3 DRLTX DABSX Амплитуда 5-го колебания Шагов Итераций
1 1·10⁻⁵ 1·10⁻⁶ 0.97205 8243 9468
2 2 1·10⁻⁴ 1·10⁻⁵ 0.91414 2624 4627
3 5·10⁻⁴ 5·10⁻⁵ 0.81775 1184 2258
4 1·10⁻³ 1·10⁻⁴ 0.75199 843 1634
5 3 2·10⁻³ 2·10⁻⁴ 0.66763 600 1163
6 4 1·10⁻² 1·10⁻³ 0.40105 277 538

Следует учитывать, что приведенные результаты относятся к конкретной тестовой задаче и используются для демонстрации влияния параметров DRLTX и DABSX.

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


Анализ результатов

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

При переходе от расчета №1 к расчету №6:

  • количество шагов уменьшается с 8243 до 277;
  • количество итераций уменьшается с 9468 до 538;
  • амплитуда пятого колебания уменьшается с 0.97205 до 0.40105.

Таким образом, количество шагов уменьшается почти в 30 раз, а число итераций — почти в 18 раз.

Одновременно возрастает накопленная ошибка решения, что проявляется в заметном снижении амплитуды колебаний и увеличении численного демпфирования.


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

Для первичной отладки модели

Можно использовать менее строгие требования:

DRLTX = 1e-2
DABSX = 1e-3

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

Для большинства инженерных расчетов

Хорошей отправной точкой являются значения:

DRLTX = 1e-3
DABSX = 1e-4

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

Для точных исследований

Рекомендуется использовать:

DRLTX = 1e-4 ... 1e-5
DABSX = 1e-5 ... 1e-6

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


Важное замечание

Следует учитывать, что в объекте Dynamics по умолчанию используется значение:

DABSX = 0.01

Однако это значение не следует рассматривать как универсальное для всех задач.

Для окончательных инженерных расчетов параметры DRLTX и DABSX рекомендуется выбирать с учетом:

  • масштаба анализируемых переменных;
  • длительности процесса;
  • требуемой точности;
  • допустимого времени расчета.

Основные выводы

  • DRLTX контролирует относительную составляющую локальной погрешности.
  • DABSX контролирует абсолютную составляющую локальной погрешности.
  • Вместе они формируют критерий допустимости шага интегрирования.
  • Эти параметры непосредственно влияют на величину шага интегрирования.
  • Более строгие требования к точности увеличивают число шагов и вычислительные затраты.
  • Ослабление требований позволяет ускорить расчет, но сопровождается ростом накопленной ошибки.
  • Для окончательных инженерных расчетов параметры точности рекомендуется подбирать с учетом особенностей модели и проверять устойчивость получаемых результатов.


Явные ограничения на шаг интегрирования (SMAX, SMIN, CONTROL)

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

В объекте Dynamics для управления диапазоном изменения шага интегрирования используются параметры:

  • SMAX — максимальный шаг интегрирования;
  • SMIN — минимальный шаг интегрирования.

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

Параметр Значение
SMAX 0.01
SMIN 1e-11

В процессе расчета программа автоматически изменяет шаг интегрирования в зависимости от требований точности, особенностей модели и сходимости решения. При этом величина шага всегда остается в диапазоне, заданном пользователем:

SMIN \leq \Delta t \leq SMAX

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


Начало процесса интегрирования

Расчет начинается с минимального шага интегрирования, равного значению SMIN.

После выполнения первых шагов программа оценивает локальную погрешность и начинает автоматически изменять шаг:

  • если локальная погрешность меньше допустимой — шаг увеличивается;
  • если локальная погрешность превышает допустимую — шаг уменьшается.

При этом:

  • шаг никогда не превышает SMAX;
  • шаг никогда не становится меньше SMIN.

Вся эта процедура выполняется автоматически внутри объекта Dynamics и не требует вмешательства пользователя.


Сообщение R008

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

R008 Заданная величина минимального шага интегрирования
не обеспечивает требуемой точности.

ПОСТАВЛЯЕМЫЕ ДАННЫЕ:
текущее время : <значение>

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

На практике это не всегда означает, что значение SMIN выбрано неверно. Чаще причина связана с особенностями математической модели или резкими изменениями переменных состояния.


В каких случаях уменьшается шаг интегрирования

Шаг интегрирования может уменьшаться по нескольким причинам:

  1. превышение допустимой локальной погрешности;
  2. отсутствие сходимости при решении системы нелинейных уравнений;
  3. рекомендации отдельных моделей элементов.

Поэтому локальная погрешность является лишь одной из причин дробления шага в процессе расчета.


Практика использования параметра SMAX

На практике чаще всего корректируется именно параметр SMAX.

По умолчанию:

SMAX = 0.01

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

Например:

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

Следует учитывать, что чрезмерное увеличение SMAX может привести к:

  • ухудшению сходимости;
  • росту числа итераций;
  • снижению точности решения;
  • увеличению общего времени расчета.

Поэтому увеличение максимального шага не всегда приводит к ускорению вычислений.


Практика использования параметра SMIN

Параметр SMIN изменяется значительно реже.

По умолчанию:

SMIN = 1e-11

В большинстве задач этого значения достаточно.

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

Однако специально уменьшать SMIN при появлении сообщения R008 обычно не рекомендуется.


Почему уменьшение SMIN часто не помогает

Во многих случаях причина возникновения сообщения R008 связана не с самим шагом интегрирования, а с характером решения.

Наиболее типичная ситуация возникает при скачкообразном изменении скорости или другой переменной состояния.

В этом случае:

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

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


Иллюстрация проблемы


Рис.4. Дробление шага интегрирования в случае скачкообразного изменения потенциала

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

На рисунке:

  • V^p — прогнозное решение;
  • V^с — скорректированное решение;
  • \Delta t_{\min} — минимально допустимый шаг интегрирования.

Локальная погрешность определяется разностью:

\left|V^p(i+1) - V^c(i+1)\right|

Если эта величина превышает допустимое значение, программа пытается уменьшить шаг:

\Delta t \rightarrow \Delta t_{\min}

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

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


Способы решения проблемы

Способ 1. Ослабление требований к точности

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

  • DRLTX — относительной допустимой локальной погрешности;
  • DABSX — абсолютной допустимой локальной погрешности.

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

Недостаток подхода состоит в том, что менее строгие требования к точности будут действовать и на остальных участках расчета.


Способ 2. Использование параметра CONTROL

Второй способ заключается в использовании параметра:

CONTROL

Значение по умолчанию в объекте Dynamics:

CONTROL = 1e-9

Параметр задает нижнюю границу уменьшения шага по критерию локальной погрешности.

Фактически пользователь сообщает программе:

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

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


Особенности параметра CONTROL

CONTROL ограничивает только локальную погрешность

Необходимо помнить, что параметр CONTROL действует только при уменьшении шага по критерию локальной погрешности.

Шаг может стать меньше значения CONTROL, если это вызвано:

  • плохой сходимостью системы нелинейных уравнений;
  • рекомендациями моделей элементов.

При этом шаг никогда не станет меньше значения SMIN.


Рекомендуемое начальное значение

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

CONTROL = 1e-6

После анализа результатов это значение можно корректировать:

  • уменьшать для повышения точности;
  • увеличивать для повышения устойчивости и скорости расчета.

Основные выводы

  • SMAX задает максимально допустимый шаг интегрирования.
  • SMIN задает минимально допустимый шаг интегрирования.
  • Значения по умолчанию составляют SMAX = 0.01 и SMIN = 1e-11.
  • Расчет всегда выполняется в пределах диапазона SMIN ≤ Δt ≤ SMAX.
  • Сообщение R008 означает, что минимальный шаг не обеспечивает требуемую точность.
  • Уменьшение SMIN далеко не всегда позволяет решить проблему.
  • Для локальных проблем со скачкообразными изменениями решения чаще эффективнее использовать параметр CONTROL.
  • Значение CONTROL по умолчанию равно 1e-9, однако для первых расчетов часто удобно использовать значение порядка 1e-6.
  • Настройка параметров SMAX, SMIN и CONTROL позволяет находить компромисс между точностью, устойчивостью и временем расчета.


Управление гашением высокочастотных колебаний (CONTROL и WEIGHT)

Общие сведения

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

Например:

  • соударения;
  • отскоки;
  • резкие переходные процессы;
  • локальные высокочастотные колебания.

Не всегда такие события нужно рассчитывать с высокой точностью на всем временном интервале.

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

Высокочастотные составляющие при этом могут быть несущественными для инженерного анализа. Часто они являются паразитными и в реальной конструкции быстро затухают из-за:

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

Для таких случаев используется параметр CONTROL.


Назначение параметра CONTROL

Параметр CONTROL позволяет ограничить уменьшение шага интегрирования по критерию локальной погрешности.

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

При этом шаг интегрирования может стать меньше значения CONTROL только в двух случаях:

  1. если возникла несходимость процесса решения системы нелинейных уравнений;
  2. если уменьшение шага рекомендовано моделью элемента.

Кроме своей прямой функции — ограничения нижней границы шага по критерию локальной погрешности — параметр CONTROL обеспечивает принудительное гашение высокочастотных колебаний.


Тестовый пример

Чтобы показать влияние параметров CONTROL и WEIGHT , рассмотрим тестовую систему с большим диапазоном собственных частот.

Система представляет собой набор пружинных маятников.

Для всех маятников:

масса груза = 1 кг

но жесткости пружин различаются.

Табл.1. Параметры маятников

№ маятника Жесткость пружины Период колебаний
1 4 3.14 с = T
2 400 T/10
3 40 000 T/100
4 1·10⁶ T/500
5 4·10⁶ T/1000

Возбуждение маятников задается начальной скоростью:

Начальная скорость = 1 м/с


Постановка задачи

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

T и T/10

То есть необходимо достаточно точно рассчитать процессы с периодами T и T/10 .

Процессы с периодом:

T/100
и выше по частоте будем считать паразитными.

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

Задача состоит в том, чтобы:

  • сохранить достаточную точность для процессов с периодом T и T/10 ;
  • не тратить чрезмерное количество вычислений на высокочастотные составляющие;
  • по возможности отфильтровать паразитные частоты.

Исходная тестовая программа

В документации данный пример задается при помощи PSL-описания.

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

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

$ DATA :
 Жесткость Pi    = 4     {T = 3.14     с}
 Жесткость Pi10  = 400   {T = 3.14/10  с}
 Жесткость Pi100 = 40000 {T = 3.14/100 с}
 Жесткость Pi500 = 1 E6  {T = 3.14/500 с}
 Жесткость Pi1000= 4 E6  {T = 3.14/1000с}
 Масса           = 1;      Начальная скорость   = 1.
                                                                 
$ FRAGMENT : Камертон

# BASE : 1
# STRUCT :
Пружина 1'K (1 2; Жесткость Pi    ); 
Пружина 2'K (1 3; Жесткость Pi10);
Пружина 3'K (1 4; Жесткость Pi100 );
Пружина 4'K (1 5; Жесткость Pi500); 
Пружина 5'K (1 6; Жесткость Pi1000); 
  'VN ( 2; Начальная скорость);  'VN ( 3; Начальная скорость); 
  'VN ( 4; Начальная скорость);  'VN ( 5; Начальная скорость); 
  'VN ( 6; Начальная скорость)
 Масса 1'M (2;Масса);  Масса 2'M(3;Масса);
 Масса 3'M (4;Масса);  Масса 4'M(5;Масса); Масса 5'M(6;Масса)
# OUTPUT :
Скорость 1' V(2; 1); Скорость 2' V(3; 1); Скорость 3' V(4; 1)
Скорость 4' V(5; 1); Скорость 5' V(6; 1)

$ RUN :
Процесс колебаний 'SHTERM (END=3.1416,DRLTX=1.E-5,DABSX=1.E-5;
       Скорость 1=(-9,1),Скорость 2=(-7,3),
       Скорость 3=(-5,5),Скорость 4=(-3,7),Скорость 5=(-1,9))


$ PRINT :
Результаты 'DISP (;
       Скорость 1=(-9,1),Скорость 2=(-7,3),
       Скорость 3=(-5,5),Скорость 4=(-3,7),Скорость 5=(-1,9))
$ END


Расчет без параметра CONTROL

Рис.2.a. Расчет тестового примера без задания CONTROL

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

На рисунке видно следующее:

  1. Гармоники с периодом T/1000 и T/500 за время одного периода самых низкочастотных колебаний гасятся полностью.
  2. Амплитуда колебаний с периодом T/100 уменьшается примерно в 2 раза.
  3. Амплитуды гармоник с периодами T/10 и T практически не изменяются.

Затухающий характер решения определяется выбранным методом интегрирования.

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

Этот эффект похож на эффект, возникающий при слишком большом значении параметра OUT .

Для получения решения на Рис.2.а. было затрачено:

280720 шагов интегрирования и 557258 итераций


Расчет с параметром CONTROL

Теперь для той же модели зададим параметр CONTROL .

Величина CONTROL принимается в 10 раз меньше периода самых высокочастотных колебаний:

CONTROL = 3.141592 E-4

Исходная тестовая программа для задания на расчет

В документации данный пример задается при помощи PSL-описания.

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

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

$ RUN :
Процесс колебаний'SHTERM(END=3.1416,DRLTX=1.E-5,DABSX=1.E-5,
                    CONTROL=3.141592 E-4;
   Скорость 1=(-9,1),Скорость 2=(-7,3),
   Скорость 3=(-5,5),Скорость 4=(-3,7),Скорость 5=(-1,9))

        $ PRINT :

Результаты 'DISP (;
   Скорость 1=(-9,1),Скорость 2=(-7,3),
   Скорость 3=(-5,5),Скорость 4=(-3,7),Скорость 5=(-1,9))
$ END

Рис.2.б. Расчет с параметром CONTROL

Результаты показывают, что погрешность расчета колебаний с периодом T/10 возрастает быстрее.

За 10 колебаний с периодом T/10 накопленная ошибка составила:

25 % от первоначальной амплитуды

Амплитуда десятого колебания составила:

0.745 м/с

При этом все высокочастотные составляющие были практически сразу отфильтрованы.

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

9961 шаг и 17743 итерации

Таким образом, затраты времени на решение уменьшились примерно в 30 раз.

Плата за такое ускорение — увеличение погрешности расчета наиболее высокочастотной из интересующих гармоник. Однако в данном примере это увеличение не является чрезмерным.


Важные ограничения для CONTROL

Следует помнить:

  1. Значение CONTROL не может превышать значение SMAX .
  2. Задание CONTROL меньше SMIN допустимо, но бессмысленно.

Если CONTROL < SMIN , то при попытке программы раздробить шаг, равный SMIN , расчет будет остановлен, и параметр CONTROL не сработает.


Совместная настройка CONTROL и WEIGHT

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

Для этого используется сочетание параметров:

CONTROL и WEIGHT

По умолчанию:

WEIGHT = 1

Такое значение обеспечивает затухание за один период колебаний, период которых на порядок превышает величину CONTROL .

Чем меньше задается значение CONTROL , тем больше должно быть значение WEIGHT , чтобы обеспечить гашение примерно той же полосы паразитных частот.

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

CONTROL^2 \cdot WEIGHT = \mathrm{const}

Чем больше значение этого произведения, тем более широкий спектр частот и более эффективно будет гаситься.

При одинаковом значении произведения:

  • чем больше WEIGHT ;
  • и чем меньше CONTROL ;
    тем более избирательным становится эффект гашения.

Это означает:

  • низкие частоты рассчитываются точнее;
  • высокие частоты гасятся сильнее;
  • вычислительные затраты возрастают.

Сравнение различных сочетаний CONTROL и WEIGHT

Результаты сравнения решений для четырех сочетаний параметров приведены в таблице 2.3.

Графики результатов:

  • расчет 1 — рис. 2.б;
  • расчет 2 — рис. 2.а;
  • расчет 3 — визуально мало отличается от рис. 2.6а и отдельно не приводится;
  • расчет 4 — рис. 2.б.

Табл.2. Влияние параметров CONTROL и WEIGHT на точность результатов и вычислительные затраты

N N рисунка CONTROL WEIGHT Амплитуда 10-го колебания 2-го маятника Шагов Итераций
1 2.5.б. T/10⁴ 1 0.745 9961 17743
2 2.6.а. T/10⁵ 50 0.767 22866 34938
3 - T/10⁶ 5000 0.829 25138 39278
4 2.6.б. T/10⁶ 1000 0.900 38705 73238

Рис.3. Результаты для различных значений CONTROL и WEIGHT

Рис.3.а.

CONTROL равен 1/100 минимального периода,
WEIGHT = 50

Рис.3.б.

CONTROL равен 1/1000 минимального периода,
WEIGHT = 1000

Высокочастотные колебания примерно соответствуют результатам Рис.2.б.

На Рис.3.б. они затухают несколько меньше.


Анализ таблицы 2

По таблице видно, что изменение сочетания CONTROL и WEIGHT влияет одновременно на:

  • точность расчета интересующей гармоники;
  • степень подавления высоких частот;
  • число шагов интегрирования;
  • количество итераций.

Расчет 1 требует:

9961 шаг
17743 итерации

и дает амплитуду десятого колебания второго маятника:

0.745

Расчет 2 повышает точность:

амплитуда = 0.767

но требует уже:

22866 шагов
34938 итераций

Расчет 3 дает амплитуду:

0.829

при:

25138 шагах
39278 итерациях

Расчет 4 дает наиболее точный результат для второй гармоники:

амплитуда = 0.900

но требует наибольших вычислительных затрат:

38705 шагов
73238 итерации

Практический смысл параметров CONTROL и WEIGHT

Приведенный пример не охватывает всех возможных ситуаций.

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

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

Например, для решения без CONTROL потребовалось:

280720 шагов
557258 итераций

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

Поэтому параметр CONTROL часто играет роль не только настройки вида:

"меня не интересуют колебания с периодом меньше определенной величины"

но и более практического ограничения:

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

CONTROL как компромисс между точностью и шагом

Иногда значение CONTROL является результатом компромисса между шагом интегрирования и точностью.

Задавая CONTROL , расчетчик фактически сообщает программе:

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

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


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

При первых оценочных расчетах можно начать с невысокой точности.

Например, задавать локальную точность не выше:

1–5 % от амплитудного значения характерных скоростей или потенциалов

После этого следует оценить поведение интегратора.

Если при увеличении точности программа начинает отслеживать слишком высокие частоты и использовать слишком мелкий шаг, можно включить параметр CONTROL .

Рекомендуется задавать CONTROL примерно:

  • того же порядка, что и шаг, за который “цепляется” программа;
  • либо немного меньше этого шага.

Также можно использовать сочетание CONTROL и WEIGHT :

  • задать CONTROL на один-два порядка меньше проблемного шага;
  • одновременно увеличить WEIGHT .

Такой подход позволяет точнее рассчитывать низкочастотные составляющие и сильнее подавлять паразитные высокочастотные колебания.


Основные выводы

  • CONTROL ограничивает уменьшение шага интегрирования по критерию локальной погрешности.
  • CONTROL может использоваться для гашения высокочастотных паразитных колебаний.
  • WEIGHT управляет степенью демпфирования высокочастотных составляющих совместно с CONTROL .
  • Для сохранения характера фильтрации используется приближенное правило CONTROL² · WEIGHT = const .
  • Чем меньше CONTROL и больше WEIGHT , тем более избирательным становится гашение.
  • Улучшение точности низкочастотных процессов сопровождается увеличением вычислительных затрат.
  • В практических задачах CONTROL часто является компромиссом между точностью и временем расчета.