Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Мат.мет.АРЭС МАРЭС / Методические указания к выполнению курсовой работы / Методические указания к выполнению курсовой работы.pdf
Скачиваний:
39
Добавлен:
28.05.2015
Размер:
758.92 Кб
Скачать

39.

2.3.Численное интегрирование

Кчисленному интегрированию приходится прибегать, прежде всего, при решении на ЭВМ уравнений состояния (например, система дифференциальных уравнений (20), описывает состояние n = 1). Уравнение состояния в общем случае имеет вид:

d

X(t) = AX(t) +BU(t) = F(X,t)

(27)

 

dt

где X(t)– вектор переменных состояния (они являются неизвестными), U(t)– вектор внешних воздействий (наперед заданные функции),

A и B – матрицы коэффициентов (определяются параметрами элементов и топологией цепи).

Общее описание методов численного интегрирования дано в разделе 5 пособия [3]. Кроме того, в разделе 7.4 показано преимущество неявных методов численного интегрирования перед явными, заключающееся в том, что в явных методах может возникать неустойчивость вычислительного процесса, а в неявных — нет.

Среди неявных методов широкое распространение получила так называемая формула трапеций, которая для уравнения (27) вытекает из примерного тождества

Xi+1 Xi 1 (F(Xi ,ti )+F(Xi+1,ti+1 )) h 2

Здесь h = ti+1 ti — шаг интегрирования, Xi = X(ti ) , Xi+1 = X(ti+1) . Разрешив это уравнение относительно Xi+1, получим следующую рекуррентную формулу:

 

 

 

 

h

1

 

 

 

h

 

h

 

 

h

1

B(Ui +Ui+1 )=

 

Xi+1

=

1

 

A

 

1

+

 

A Xi +

 

 

1

 

A

(28)

2

2

 

2

 

 

 

 

 

 

 

 

 

2

 

 

 

 

= K1Xi +K2 (Ui +Ui+1 )

© А. Кудинов, 2006, ТГУ, каф.ПЭ

40.

Здесь матричные коэффициенты K1 и K2 при заданном шаге интегрирования h постоянны, и рассчитываются один раз:

 

 

h

 

 

1

 

 

 

h

 

K1 =

1

 

 

A

 

1

+

 

A

2

 

2

 

 

 

 

 

 

 

 

 

 

 

 

h

 

 

 

h

1

 

 

 

 

K2 =

 

 

1

 

 

A

 

B

 

 

 

 

2

 

 

 

 

 

2

 

 

 

 

 

 

 

 

Задавшись начальными условиями X0 = X(t0 ) , по формуле (28), полагая i

= 0,1,2,… найдем значения

вектора

X в

дискретные моменты времени

ti = t0 +ih . Некоторое неудобство формулы (28) заключается в том, что машин-

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

Метод Эйлера для (i+1)-го шага интегрирования использует следующее

рекуррентное выражение:

 

 

 

 

Xi+1 = Xi

+hF(Xi ,ti ), i = 0,1,2,...

(29)

Метод Эйлера-Коши второго порядка реализуется следующей рекуррент-

ной формулой:

 

 

 

 

Xi+1

= Xi +

1

(K1 +K2 ),

(30)

 

 

2

 

 

где векторы поправки K1 и K2 рассчитываются последовательно по выражениям:

K1 = hF(Xi ,ti ),

K2 = hF(Xi +K1,ti +h)

Популярная формула Рунге-Кутта четвертого порядка записывается так:

Xi+1

= Xi +

1

(K1 +2K2 +2K3 +K4 ), где

(31)

6

 

 

 

 

© А. Кудинов, 2006, ТГУ, каф.ПЭ

41.

K1 = hF(Xi ,ti ),

 

 

 

 

 

 

K

2

= hF

X

i

+

1

K

,t

+

h

 

,

 

 

 

 

 

 

2

1

i

2

 

 

 

 

 

 

 

 

 

 

 

 

K3 = hF Xi + 1 K2 ,ti + h ,2 2

K4 = hF(Xi +K3,ti +h)

Формулы Кутта-Гилла четвертого порядка имеют вид [4]:

Xi+1

= Xi +

1

 

 

1

K1

+

3

K2

+

1

K3

+

1

K4

 

,

(32)

 

 

 

 

 

 

 

 

3

2

2

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

K1 = hF(Xi ,ti ),

 

 

 

 

 

 

 

 

 

 

 

 

 

K

2

= hF

X

i

+

 

1

K

1

,t

+

h

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

K

3

= hF

X

i

1

 

K

1

+K

2

,t

+

h

 

,

 

 

 

 

 

 

 

2

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

K

4

= hF

X

i

+

1

K

2

+

1

K

,t

+h

.

 

 

 

 

 

2

 

 

2

 

 

3

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Погрешность шага интегрирования ε пропорциональна hm+1 в формулах (28…32), где m — порядок метода интегрирования. Для метода Эйлера m = 1, для метода трапеций и Эйлера-Коши m = 2, для методов Рунге-Кутта и КуттаГилла m = 4. Чем выше порядок численного метода, тем меньше погрешность шага интегрирования.

Решающим фактором, обусловливающим выбор величины шага интегрирования, является величина возможной ошибки при интегрировании. Для оценки погрешности вычислений при заданном значении шага производят двойной просчет: вначале интегрируют СДУ один раз с шагом h, а затем, при тех же начальных значениях X, два раза с шагом h/2. По полученным значениям Xi,h и Xi,h/2 рассчитывают абсолютную погрешность шага интегрирования:

ε =

Xi,h 2

Xi,h

(33)

1

2m

 

 

© А. Кудинов, 2006, ТГУ, каф.ПЭ

42.

Обратим внимание, что в данном случае ε представляет собой вектор, содержащий погрешности по каждой переменной состояния, входящей в вектор

X. Для сравнения с заданной предельной погрешностью ε0 можно использовать норму вектора ε или наибольший по модулю из его элементов.

В случаях, когда рассчитываемые переменные имеют значения, по модулю большие 1, как правило, пользуются относительной погрешностью, равной отношению абсолютной погрешности к значению переменной. При использовании формулы (33) относительная погрешность должна быть рассчитана по каждой переменной в отдельности:

 

 

JJJJJJJJJJJJJJJJG

 

 

 

 

X

i,h 2

X

i,h

 

 

εотн =

 

 

 

 

 

(34)

 

Xi,h (12m )

 

Здесь используется символ «векторизации», взятый из универсальной системы инженерных расчетов MathCAD. Он обозначает, что указанная процедура деления должна быть выполнена не над векторами в целом, а над их соответствующими элементами.

Для численного интегрирования дифференциальных уравнений, описывающих электромагнитные процессы в системах с вентильными элементами, рассматриваемыми как идеальные ключи, целесообразно использовать формулы Кутта-Мерсона, позволяющие рассчитать предельную погрешность шага

интегрирования без двойного просчёта [4]:

 

Xi+1

= Xi +

1

(K1 +4K4 +K5 ),

(35)

2

 

 

 

 

где

© А. Кудинов, 2006, ТГУ, каф.ПЭ

43.

K

1

=

1

 

 

hF(X

,t

),

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

i

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K

2

=

 

1

hF

X

i

+K

1

,t

 

 

+

h

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

K

3

=

1

hF

X

i

+

 

1

 

K

1

+

 

 

1

 

 

K

2

,t

+

 

h

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

2

 

 

 

 

 

 

 

2

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

K

4

=

1

hF

X

i

+

 

3

K

1

+

 

 

9

 

K

3

,t

+

h

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

 

 

 

8

 

 

 

 

 

 

 

8

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

K

5

=

1

hF

X

i

+

 

3

K

1

 

9

K

3

+

6K

4

,t

+h

.

 

 

 

 

 

 

 

3

 

 

 

 

 

2

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оценка абсолютной погрешности формулы (35) производится по выра-

жению:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

ε =

 

K1

 

 

 

 

K3 +4K4

 

 

K5

 

 

(36)

 

 

 

5

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

При этом правило изменения шага h состоит в следующем: если правая часть (36) превышает предписанную погрешность ε0 , то шаг уменьшается в два раза и вычисления повторяются, а если правая часть (36) меньше, чем 1/32 предписанной погрешности, то шаг может быть удвоен.

Практика использования формул Кутта-Мерсона (35) для численного интегрирования СДУ (27) в многопериодных переходных процессах показала, что при заданной точности ε0 конечный результат получается в 1,2 - 1,6 раз быст-

рее, чем с использованием формул Рунге-Кутта или Кутта-Гилла с двойным просчетом для оценки погрешности вычислений по формуле (33).

В качестве примера приведем текст программы, написанной на языке (Турбо) Си [5], выводящей на экран распечатку мгновенных значений напряжения на конденсаторе и тока катушки при нулевых начальных условиях в схеме, приведенной на рисунке 17. В программе используется формула КуттаМерсона (35) с контролем погрешности (36) и процедура коррекции шага интегрирования, описанная выше.

© А. Кудинов, 2006, ТГУ, каф.ПЭ

44.

L=1

R=0,5

 

IL

 

 

E=10

 

 

 

C=1

UC

Рис. 17. Пример цепи для расчета переходного процесса

Метод переменных состояния приводит к системе уравнений

 

 

dUC

=

 

 

1

I

L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dt

 

 

 

C

 

 

 

 

 

 

 

 

(37)

 

 

 

 

 

 

 

 

 

 

 

 

R

 

 

 

dIL

= −

1

UC

IL + E

 

 

 

 

dt

 

L

L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подстановка численных значений дает

 

 

 

U

 

 

=1,0

I

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

 

 

 

 

 

 

L

 

 

 

 

 

 

 

(38)

 

 

= −1,0

 

 

 

 

0,5

I

 

I

L

 

 

U

C

L

+10

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В приведенной программе переменные состояния UC, IL располагаются в векторе X, их производные — в векторе Y, приращения, получаемые переменными состояния на одном шаге интегрирования — в векторе dX, а абсолютные ошибки интегрирования на одном шаге — в векторе Err. Расчет приращений методом Кутта-Мерсона оформлен в виде универсальной процедуры Cutt_Merson, которой сообщаются текущее время t, указатель на функцию вычисления производных данного состояния (sost1) и количество уравнений N, описывающих данное состояние (иначе — количество переменных состояния). Для уменьшения числа передаваемых между процедурами параметров, многие переменные объявлены как глобальные. Это шаг интегрирования h, указанные выше вектора X, Y, dX, Err, а также вспомогательные вектора X1, k1, k2, k3, k4, k5, используемые процедурой Cutt_Merson.

© А. Кудинов, 2006, ТГУ, каф.ПЭ