Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Численное моделирование динамических систем, описываемых обыкновенными дифференциальными уравнениями. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Пусть решение невозмущенной системы (5.3), (5.4)
L
yy
ет и единственно. Тогда будет справедлива оценка
()ty
существу-
max ( ) ( ) ( ) ( )
ttT
yy yy , (5.9)

0
**
ttKT tdt

 
00
 
выражающая устойчивость на конечном отрезке
T
t
0
, tT
задачи (5.3),
0
(5.4) по начальным значениям и правой части. При этом
()
Tt
()
KT e . Если вместо условия (5.5) использовать условие (5.6),
то оценка (5.9) будет выполнена с
() 1KT при
0
()
Tt
()
KT e
при
0
.
0
0
и с
Частным случаем системы (5.3) является система
() ()tt
A
где
A – квадратная
()mm
матрица с постоянными коэффициентами.
, (5.10)
В теории численных методов решения систем дифференциальных уравнений система (5.10) играет такую же роль, как и уравнение (1.22) для анализа методов численного интегрирования дифференциальных уравнений вида (1.1). Результаты, полученные в разделе 1 с минималь­ными изменениями, обобществляются на случай систем дифференци­альных уравнений с учетом замены в формулах скалярных функций
на
вектор-функции. Так, например, можно показать, что условие принад-
h
лежности вращается в требование принадлежности этой же области всех
1,2,...,im
собственные числа матрицы
области устойчивости метода для одного уравнения пре-
, для системы дифференциальных уравнений, где
i
A (предполагается, что матрица A имеет
h
i
– это
простую структуру). Формулы рассмотренных в предыдущих главах методов Эйлера, Рунге–Кутты и Адамса также остаются неизменными с учетом замены скалярных функций на вектор-функции.
Однако есть и новое. В частности, важным новым свойством зада­чи является ее жесткость. Когда в предыдущих главах упоминалось о слабости явных методов перед жесткими
задачами, имелось в виду
решение этими методами систем дифференциальных уравнений.
,
31
6. ЖЕСТКИЕ ЗАДАЧИ
Хотя на практике жесткие задачи связаны с решением систем диф­ференциальных уравнений, несложно сформулировать задачу с анало­гичными свойствами и для одного уравнения. Для лучшего понимания сути проблемы рассмотрим соответствующий пример. Пусть задача Коши имеет вид:
() 25 () cos 25sinyt yt t t

; (6.1)
Решением этой задачи является функция
0.2t
функция меняется очень быстро (обычно такие участки назы-
(0) 1y
. (6.2)
25
() sin
yt t e

вают переходными), затем существенно медленнее. Пусть при найдено приближенное значение
более

Эйлера начиная с
310
). Будем решать задачу (6.1) с помощью явного метода
0.2t
0
, используя
го значения. Возьмем шаг интегрирования
(0.2) 0.205y (c погрешностью не
в качестве начально-
0.205
y
t
0
0.1h
. График
()yt
зультат численного интегрирования изображены на рис. 7.
Из рис.7 видно, что численное решение ведет себя неустойчивым
25,

образом. Для задачи (6.1) явного метода Эйлера требуется шаг
следовательно, для устойчивости
0.08h
.
Решим эту же задачу явным методом Эйлера с шагом А-устойчивым неявным методом Эйлера с шагами
0.1h
и
Результаты всех расчетов (округленные) приведены в табл. 1.
32
t
. При
и ре-
0.025h
0.2t
и
0.3h
.
Рис. 7. График функции
Я
Я
ние явным методом Эйлера с шагом
Результаты численного интегрирования
()yt
и численное реше-
0.1h
Таблица 1
Точное
t
решение
0.2 0.205 0.205 0.205 0.205 0.205
0.3 0.296 0.287 0.296 0.297
0.4 0.389 0.404 0.390 0.389
0.5 0.479 0.460 0.480 0.479 0.478
0.6 0.565 0.596 0.565 0.564
0.7 0.644 0.600 0.645 0.643
0.8 0.717 0.787 0.718 0.716 0.714
0.9 0.783 0.683 0.784 0.782
1.0 0.841 0.996 0.842 0.840
1.1 0.891 0.664 0.892 0.890 0.886
1.2 0.932 1.277 0.932 0.930
1.3 0.964 0.451 0.964 0.962
1.4 0.985 1.759 0.986 0.984 0.980
1.5 0.997 -0.158 0.998 0.996
вный
метод Эйлера
0.1h
вный
метод Эйлера
0.025h
33
Неявный
метод Эйлера
0.1h
Неявный
метод Эйлера
0.3h
Приведенная в примере ситуация типична для жестких задач. При
y
yy yy
использовании классических явных методов наличие в решении быст­ро меняющейся жесткой компоненты даже на том участке, где ее значение пренебрежимо мало, заставляет выбирать шаг из условия аб­солютной устойчивости. На практике это приводит к неприемлемо ма­лому шагу интегрирования и необходимости использования
неявных
методов.
Вернемся к системе (5.10). Предположим, что
A – матрица про-
стой структуры и все ее собственные значения имеют отрицательные вещественные части ( решение задачи
()ty
 
mm
11
асимптотически устойчиво и представляется в
). В этом случае
Re Re ... Re 0
виде
( ) ...
tce ce ce
где
e
– это собственные векторы матрицы A . Напомним также,
i
 yee e, (6.3)
что решение
max ( ) ( )
ttT

0
ttK

10 2 0 0
112 2
t
называется устойчивым по Ляпунову, если
**
00
, K – константа, и асимптотически
m
mm
() () ()
tt tt tt
    
устойчивым, если дополнительно выполняется условие, что
*
() () 0ttyy
Если среди собственных значений
ственно разными временными постоянными
при
t 
.
имеются значения с суще-
i
1

i
, то через до-
Re
i
вольно короткий интервал времени поведение решения будет опреде­ляться наиболее медленной компонентой (т. е. компонентой с
наибольшей
). Так, если
ведливо приближение
  
21
()
tt

()
tce
10
ye. В то же время применяемый
11
, то при
tt 
02
спра-
Re Re 0
численный метод должен обладать свойством устойчивости, позволя­ющим подавлять наиболее быстро меняющуюся (жесткую) компонен-
()
tt

10
e
e погрешности
ту
11
( ) ...
te e e
   ee e . (6.4)
112 2
() () ()
tt tt tt
   
10 20 0
34
m
mm
Таким образом, можно оценить степень жесткости системы с по-

sst
мощью числа жесткости:
max Re
1

km
s
min Re
1

km
Жесткой будем называть систему, для которой
k
. (6.5)
k
1s 
.
Примером жесткой системы может являться система
7501 2499uuv
Для нее

7497 2503vuv

(0) 0u
2500s
. Если ее интегрировать с помощью явного метода
,
(0) 4v
,
, (6.6)
.
Рунге–Кутты четвертого порядка точности, то условие устойчивости потребует шаг
2.8 10h
4
.
Отметим, что если решение жесткой задачи ищется не на участке жесткости (рис. 7), то явные методы могут быть весьма эффективными (в этой ситуации задачу не считают жесткой). Также заметим, что бо­лее общие современные определения жесткости не исключают наличие
собственных значений при условии, что для них
В случае, если
с положительными вещественными частями
i
Re max Re

ik
km
1
tA=A
, то и

kk
.
()
t
и, следовательно
()
То есть система может оказаться жесткой на одном интервале и не­жесткой – на другом.
Для более общей системы вида (5.3) нет точного определения жесткости. В этом случае обычно говорят о жесткости в окрестности

некоторой точки
, ( )tyt
линеаризованная система вида (5.10) с
, если жесткой является соответствующая

, ( )
A=
tt
fy
y
.
Очевидно, что для решения жестких задач хорошо бы использовать A-устойчивые методы, не накладывающие никаких ограничений на
h
шаг интегрирования
. Однако оказывается, что класс таких методов
весьма узок. Например, доказано, что среди неявных линейных мно­гошаговых методов нет A-устойчивых методов, имеющих порядок точности выше второго. С другой стороны, многие из возникающих на
.
35
практике жестких задач таковы, что для них собственные значения
arg
удовлетворяют неравенству

k
, где
0
,
1,2,...,km
k
Для таких задач требование A-устойчивости методов является чрез­мерным и его можно заменить менее ограничительным требованием A()-устойчивости.
Численный метод решения задачи Коши называют A()-устой-
чивым, если область его абсолютной устойчивости включает угол
arg z
(рис. 8). В частности, при
/2
определение A()-
устойчивости совпадает с определением A-устойчивости.
.
Рис. 8. Определение A()-устойчивости
Известно, что среди явных линейных многошаговых методов нет
0
A()-устойчивых ни при каком
. Однако среди неявных линей-
ных многошаговых методов имеются A()-устойчивые методы высо­кого порядка точности. Важный класс таких методов (формул диффе­ренцирования назад) относится к так называемым чисто неявным ме­тодам:
k
1

yfy
h
j

jnj n n
0
t
(, )
111
36
. (6.7)
Чисто неявные методы получаются в результате замены в системе
y
дифференциальных уравнений при
производной
1n
()t
ее раз-
tt
ностной аппроксимацией, использующей значения функции в точках
t
1nt, n
,...,
. Если для этого используется односторонняя раз-
1nkt
ностная производная, то получается формула дифференцирования назад.
Приведем формулы дифференцирования назад, имеющие разный
k
порядок точности
11 18 9 2
yyyy
nnnn
25 48 36 16 3
  
yyyyy
1123
nnnnn

:
yy
1
nn
h
34

yyy
11
nnn

h
2
 
112

h
6
h
12
(, )
t
fy
11
nn

(, )
fy
,
t
11
nn

t
(, )
fy
11
nn

t
(, )
fy
nn
,

1k
; (6.8)
2k
; (6.9)
3k
,
11
; (6.10)
4k
,
. (6.11)
Метод (6.8) – это A-устойчивый неявный метод Эйлера. Область устойчивости методов (6.9)–(6.10) по­чти целиком содержит левую полу­плоскость
Re 0z
, чего вполне до-
статочно для решения большинства жестких задач. Для примера на рис. 9 показана область устойчивости мето­да (6.10).
Отметим также, что для того что­бы ускорить решение задач с по­мощью неявных схем, рекомендуется для решения нелинейных систем вме­сто метода простой итерации приме­нять метод Ньютона.
Рис. 9. Область устойчивости
)-устойчивого метода (6.10)
A(
37
7. ОСНОВНЫЕ ПРИНЦИПЫ НАПИСАНИЯ ПРОГРАММ
ИМИТАЦИОННОГО МОДЕЛИРОВАНИЯ
Функционирование любой технической (/физической) системы может быть описано системой дифференциальных уравнений. Если это описание достаточно адекватно, то с помощью него можно изучать, как будет меняться поведение системы при изменении ее параметров (хотя бы в некотором диапазоне значений). Каждый расчет в этом слу­чае можно понимать как имитацию работы реальной системы
Как уже говорилось ранее, описание реальных технических систем (даже с определенными упрощениями) включает в себя множество дифференциальных или интегральных уравнений. Последние из них, как правило, также могут быть представлены в дифференциальной форме. Чаще всего, если мы говорим о технических макросистемах (например, экскаватор), все сводится к системе обыкновенных диффе­ренциальных гидравлики или электромеханики.
Сложность системы в целом заставляет представлять ее в виде набора взаимосвязанных подсистем (модулей), которые при необходи­мости также могут быть разбиты на собственные подсистемы. Подоб­ный подход позволяет определить и параметризовать базовые элемен­ты (электродвигатель, поршень, насос и др.), описываемые системой дифференциальных
С точки зрения программирования подобные базовые элементы удобно представлять в виде структур данных (/классов), данными ко­торых являются параметры этих элементов, а методами – процедуры, формирующие соответствующие дифференциальные уравнения и вы­числяющие необходимые интегральные характеристики по уже рас­считанным значениям вычисляемых функций. Очевидно, что, напри­мер, методы, формирующие
уравнений, построенных на законах механики Ньютона,
уравнений небольшой размерности.
дифференциальные уравнения, есть у всех
.
38
таких элементов и соответственно могут быть определены как аб­страктные методы более общего абстрактного класса.
На практике для большинства моделируемых систем достаточно иерархической структуры из четырех уровней. Базовые элементы объ­единяются в модули, обычно называемые устройствами. Устройства объединяются в сборки, также называемые агрегатами. Последние в свою очередь объединяются в системы. Система
может быть или за­конченным объектом исследования или (в сложном случае) взаимо­действовать с другими системами. Классы, соответствующие этим уровням иерархии, должны иметь общего предка, содержащего наборы ссылок на другие элементы, устройства, сборки и, возможно, системы для связи всех подсистем в единую систему.
Следует учесть, что эволюция системы и всех
ее подсистем, как правило, имеет дискретные состояния, называемые фазами. Внутри фазы система эволюционирует непрерывно, т. е. математические моде­ли наполняющих ее элементов не меняются. Для каждой подсистемы должны быть определены критические состояния, при достижении ко­торых произойдет смена фаз, т. е. изменится математическое описание каких-то элементов подсистемы. Достижение подсистемой критиче ского состояния порождает событие, о котором оповещаются другие заинтересованные подсистемы.
При численном моделировании, если, например, используются многошаговые методы, при возникновении события расчет должен быть остановлен, определен новый набор и начальные значения инте­грируемых функций (для большинства они будут текущими), после чего использован самостартующий метод достаточного порядка точно­сти и далее
уже вновь осуществлен переход к многошаговым методам. Для остановки счета в критической точке можно использовать метод половинного деления шага интегрирования (часто эта процедура назы­вается припасовкой). Для выполнения этой процедуры также удобно использовать одношаговые методы.
Часто критические состояния связаны с определенными значения­ми функций (например, ход подвижного элемента ограничен и соот ветственно будет ограничена его функция-координата) или их инте­гралов (например, среднее давление в системе за цикл не должно пре­вышать некоторого значения). Поэтому удобно иметь общий для таких функций и вычисляемых характеристик интерфейс, позволяющий без особого труда идентифицировать возникновение критического состоя­ния. Для этого для таких функций и вычисляемых
характеристик
-
-
39
можно хранить таблицы состояний, содержащие для каждого состоя­ния его граничные (критические) значения, номер текущего состояния, и проверять, не произошло ли пересечение текущим значением гра­ничных значений текущего состояния.
Для систем, содержащих десятки тысяч и более базовых элементов, актуален вопрос распараллеливания вычислений. Важно понимать, что численное интегрирование систем обыкновенных дифференциальных уравнений
, как правило, не может быть эффективно распараллелено по времени. Гораздо эффективнее распараллеливать процедуры, связан­ные с интегрированием одного временного шага (это справедливо как для явных, так и для неявных схем) – при этом максимально сокращая число временных шагов (т. е. увеличивая значения временного шага). Увеличить значение временного шага можно за счет
использования схем с высоким порядком аппроксимации. Однако, если эти схемы включают в себя последовательное вычисление дополнительных эта­пов (стадий), как, например, схемы Рунге–Кутты, то их эффективное распараллеливание будет также затруднено. Если на шаг интегрирова­ния существенно влияет требование устойчивости (что характерно для жестких систем), то следует использовать неявные схемы.
правило, интересующим результатом имитационного модели-
Как рования являются интегральные характеристики (например, время предельного цикла, амплитуда колебаний и т. д.), которые также могут быть получены с достаточной точностью с помощью больших шагов интегрирования. Теряемая при этом информация о происходящих в системе высокочастотных процессах (например, при ударе бойка об ограничитель), как правило, не
создает проблем для получения доста­точного по точности результата, если не нарушается устойчивость вы­числительной схемы. Тем не менее в данном случае все же лучше из­менить саму математическую модель (убрать из нее «лишнюю» индук­тивность).
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]