Смекни!
smekni.com

Диференційні рівняння як основа математичного опису енергетичної системиЕкспертна система контролю (стр. 1 из 2)

Диференційні рівняння як основа математичного опису енергетичної системи.Експертна система контролю працездатності енергетичної системи.”


Зміст:

1.1Вихідні данні для реалізації системи звичайних диференційних рівнянь.

1.2. Математична основа засобу Рунге – Кутта.

1.3. Блок схема програми.

1.4. Реалізація програми за засобом Рунге – Кутта.

1.5. Результати реалізації системи диференційних рівнянь за засобом Рунге – Кутта.

1.6. Графічне представлення результатів за засобом Рунге – Кутта.

1.7.Математична основа способу Мілна

1.8.Блок-схема реалізації головного модуля, програми та графічної частини зазасобом Мілна

1.9. Реалізація програми за способом Мілна

1.10.Результати реалізації програми за способом Мілна

1.11. Графічне представлення результатів за способом Мілна

1.12.Висновок по першій частині

2. Реалізація контролю працездатності енергетичної системи

2.1. Архітектура експертних систем

2.2. Математичне моделювання енергетичної систем

2.3. Логічне моделювання контролю працездатності

2.4. Початкові дані для реалізації контролю працездатності енергетичної системи

2.5. Алгоритм реалізації контролю працездатності

2.6. Реалізація контролю працездатності енергетичної системи

2.7.Графічне представлення результатів реалізації

Висновок.


1.1. Вихідні дані для реалізації системи звичайних диференційних рівнянь

Системадиференційних рівнянь :

Початкові умови : А=0, В=1

t(0)=0, x(0)=0, y(0)=0

Задана точність: Е=

Обираємо с=6

1.2 Математична основа засобу Рунге–Кутта

Засіб Рунге -Кутта можливо получити, якщо разкласти у ряд Тейлора значення у(х)

y(x0+h)=y(x0)+h(x0)h3 +hnyn(x0)

xi=x(0)+Ih

yi+1=yi+∙(K1i+2K2i+2K3i+2K4i)

K1i=h∙f(xi,yi)

K2i=h∙f(xi+∙yi+)

K3i=h∙f(xi+

K4i=h∙f(xi+h∙yi+K3)


Блок - схема головного модуля по Рунге - Кутту:

Реалізація програми за засобом Рунге – Кутта. :

DECLARE SUB KUTT (T!, X!, Y!, A%, B%, C%, E!, H!, N%, T(), X(), Y(), K1X!, K1Y!, K2X!, K2Y!, K3X!, K3Y!, K4X!, K4Y!)

DECLARE SUB GRAF (T!, X!, Y!, A%, B%, C%, E!, H!, N%, T(), X(), Y(), K1X!, K1Y!, K2X!, K2Y!, K3X!, K3Y!, K4X!, K4Y!)

INPUT "C"; C%

E! = C% * 10 ^ (-4)

H! = E! ^ (1 / 4)

CONST A% = 0: CONST B% = 1

DIM SHARED T!(2000), X!(2000), Y!(2000), K1X!(2000), K1Y!(2000), K2X!(2000), K2Y!(2000), K3X!(2000), K3Y!(2000), K4X!(2000), K4Y!(2000)

T(0) = 0: X(0) = 0: Y(0) = 0

M1: CALL KUTT(T!, X!, Y!, A%, B%, C%, E!, H!, N%, T(), X(), Y(), K1X!, K1Y!, K2X!, K2Y!, K3X!, K3Y!, K4X!, K4Y!)

FOR I% = 0 TO N%

X1(I%) = X(I%)

Y1(I%) = Y(I%)

NEXT I%

H! = H! / 2

CALL KUTT(T!, X!, Y!, A%, B%, C%, E!, H!, N%, T(), X(), Y(), K1X!, K1Y!, K2X!, K2Y!, K3X!, K3Y!, K4X!, K4Y!)

FOR I% = 0 TO N%

IF ABS(X1(I%) - X(I%)) * (16 / 15) > E! THEN

GOTO M1

ELSE GOTO M2

END IF

IF ABS(Y1(I%) - Y(I%)) * (16 / 15) > E! THEN

GOTO M1

ELSE GOTO M2:

END IF

NEXT I%

M2: FOR I% = 1 TO N%

PRINT T(I%), X(I%), Y(I%)

NEXT I%

PRINT "H"; H!

INPUT K!

CALL GRAF(T!, X!, Y!, A%, B%, C%, E!, H!, N%, T(), X(), Y(), K1X!, K1Y!, K2X!, K2Y!, K3X!, K3Y!, K4X!, K4Y!)

END

SUB GRAF (T!, X!, Y!, A%, B%, C%, E!, H!, N%, T(), X(), X1(), K1X!, K1Y!, K2X!, K2Y!, K3X!, K3Y!, K4X!, K4Y!)

SCREEN 2

VIEW (170, 50)-(470, 150)

WINDOW (-1, 1.5)-(1, -1.5)

FOR I% = 0 TO N% - 1

PSET (T(I%), X(I%))

PSET (T(I%), Y(I%))

LINE (T(I%), X(I%))-(T(I% + 1), X(I% + 1))

LINE (T(I%), Y(I%))-(T(I% + 1), Y(I% + 1))

NEXT I%

LINE (-1, 0)-(1, 0)

LINE (0, -1.5)-(0, 1.5)

END SUB

SUB KUTT (T!, X!, Y!, A%, B%, C%, E!, H!, N%, T(), X(), Y(), K1X!, K1Y!, K2X!, K2Y!, K3X!, K3Y!, K4X!, K4Y!)

N% = (B% - A%) / H!

FOR I% = 0 TO N%

T(I%) = T(0) + I% * H!

K1X(I%) = H! * (-2 * X(I%) + 5 * Y(I%))

K1Y(I%) = H! * ((EXP(.5 * Y(I%) + T(I%)) - EXP(-.5 * Y(I%) + T(I%))) / 3 + .5 * Y(I%))

K2X(I%) = H! * (-2 * (X(I%) + K1X(I%) / 2) + 5 * (Y(I%) + K1Y(I%) / 2))

K2Y(I%) = H! * ((EXP(.5 * (Y(I%) + K1Y(I%) / 2) + (T(I%) + H! / 2) - EXP(-.5 * Y(I%) + K1Y(I%) / 2) - (T(I%) + H! / 2))) / 3 + .5 * (Y(I%) + K1Y(I%) / 2))

K3X(I%) = H! * (-2 * (X(I%) + K2X(I%) / 2) + 5 * (Y(I%) + K2Y(I%) / 2))

K3Y(I%) = H! * ((EXP(.5 * (Y(I%) + K2Y(I%) / 2) + (T(I%) + H! / 2) - EXP(-.5 * Y(I%) + K2Y(I%) / 2) - (T(I%) + H! / 2))) / 3 + .5 * (Y(I%) + K2Y(I%) / 2))

K4X(I%) = H! * (-2 * (X(I%) + K3X(I%)) + 5 * (Y(I%) + K3Y(I%)))

K4Y(I%) = H! * ((EXP(.5 * (Y(I%) + K3Y(I%)) + (T(I%) + H!) - EXP(-.5 * Y(I%) + K3Y(I%)) - (T(I%) + H!))) / 3 + .5 * (Y(I%) + K3Y(I%) / 2))

X(I% + 1) = X(I%) + 1 / 6 * (K1X(I%) + 2 * K2X(I%) + 2 * K3X(I%) + K4X(I%))

Y(I% + 1) = Y(I%) + 1 / 6 * (K1Y(I%) + 2 * K2Y(I%) + 2 * K3Y(I%) + K4Y(I%))

NEXT I%

END SUB

Результати реалізації системи диференційних рівнянь за засобом Рунге – Кутта.

T X Y
0 0 0
0,08 0,0012 0,008075541
0,16 0,00503475 0,0157619
0,23 0,0121 0,02953131
0,31 0,02278947 0,04097326
0,39 0,0349 0,05493775
0,47 0,05233831 0,07522751
0,55 0,0775 0,10523
0,63 0,1089077 0,149089
0,70 0,158 0,20752
0,78 0,2199285 0,2783817
0,86 0,2868 0,37033
0,94 0,3583839 0,469151

Нопт=0,07825423

1.7.Математична основа способу Мілна

Для реалізації засобу Мілна необхідно матиінформацію о попередніх точках. Тому засіб Мілна реалізуєтся післяпідрахунків по засобу Рунге-Кутта з заданной точностью.

Формула прогнозу:

Визначаємо значення проізводної :

Формула коррекції:

Якщо , то

Якщо , то закінчуємо розрахунок і даємо поманду на друк результата .

8.Блок-схема реалізації головного модуля, програми та графічної частини за засобом Мілна


нет


1.9.Реалізація програми за способом Мілна

DECLARE SUB MILN (T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), LX3!, LY3!, LX2!, LY2!, LX1!, LY1!, XP!, YP!, XK!, YK!, MPX!, MPY!, MKX!, MKY!, XK1!, YK1!)

DECLARE SUB KUTT (T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), KX1!, KY1!, KX2!, KY2!, KX3!, KY3!, KX4!, KY4!)

DECLARE SUB GRAF (T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), LX3!, LY3!, LX2!, LY2!, LX1!, LY1!, XP!, YP!, XK!, YK!, MPX!, MPY!, MKX!, MKY!, XK1!, YK1!)

INPUT "C"; C%

E! = C% * 10 ^ (-4)

H! = E! ^ (1 / 4)

CONST A% = 0: CONST B% = 1

DIM SHARED T!(2000), X!(2000), Y!(2000), KX1!(2000), KY1!(2000), KX2!(2000), KY2!(2000), KX3!(2000), KY3!(2000), KX4!(2000), KY4!(2000)

DIM SHARED LX1!(2000), LY1!(2000), LX2!(2000), LY2!(2000), LX3!(2000), LY3!(2000), XP!(2000), YP!(2000), XK!(2000), YK!(2000), MPX!(2000), MPY!(2000), MKX!(2000), MKY!(2000), XK1!(2000), YK1!(2000)

T(0) = 0: X(0) = 0: Y(0) = 0

CALL KUTT(T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), KX1!, KY1!, KX2!, KY2!, KX3!, KY3!, KX4!, KY4!)

FOR I% = 0 TO N%

PRINT T(I%), X(I%), Y(I)

NEXT I%

INPUT L!

CALL GRAF(T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), LX3!, LY3!, LX2!, LY2!, LX1!, LY1!, XP!, YP!, XK!, YK!, MPX!, MPY!, MKX!, MKY!, XK1!, YK1!)

INPUT P!

CALL MILN(T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), LX3!, LY3!, LX2!, LY2!, LX1!, LY1!, XP!, YP!, XK!, YK!, MPX!, MPY!, MKX!, MKY!, XK1!, YK1!)

FOR I% = 3 TO N%

IF (MPX(I% + 1) - MKX(I% + 1)) > E! THEN

XK1(I% + 1) = X(I% - 1) + (1 / 3) * H! * (MKX(I% + 1) + 4 * LX3(I%) + LX2(I% - 1))

PRINT T(I% + 1), XK1(I% + 1)

ELSE

XP(I% + 1) = XK(I% + 1)

PRINT T(I% + 1), XK(I% + 1)

END IF

FOR I% = 3 TO N%

IF (MPY(I% + 1) - MKY(I% + 1)) > E! THEN

YK1(I% + 1) = Y(I% - 1) + (1 / 3) * H! * (MKY(I% + 1) + 4 * LY3(I%) + LY2(I% - 1))

PRINT T(I% + 1), YK1(I% + 1)

ELSE

YP(I% + 1) = YK(I% + 1)

PRINT T(I% + 1), YK(I% + 1)

END IF

NEXT I%

INPUT M!

CALL GRAF(T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), LX3!, LY3!, LX2!, LY2!, LX1!, LY1!, XP!, YP!, XK!, YK!, MPX!, MPY!, MKX!, MKY!, XK1!, YK1!)

END

SUB GRAF (T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), LX3!, LY3!, LX2!, LY2!, LX1!, LY1!, XP!, YP!, XK!, YK!, MPX!, MPY!, MKX!, MKY!, XK1!, YK1!)

SCREEN 2

VIEW (170, 50)-(470, 150)

WINDOW (-1, 1)-(1, -1)

FOR I% = 0 TO N% - 1

PSET (T(I%), KX(I%))

PSET (T(I%), YK(I%))

LINE (T(I%), XK(I%))-(T(I% + 1), XK(I% + 1))

LINE (T(I%), YK(I%))-(T(I% + 1), YK(I% + 1))

NEXT I%

FOR I% = 4 TO N% - 1

PSET (T(I%), KX(I%))

PSET (T(I%), YK(I%))

LINE (T(I%), XK(I%))-(T(I% + 1), XK(I% + 1))

LINE (T(I%), YK(I%))-(T(I% + 1), YK(I% + 1))

PSET (T(I%), XK1(I%))

PSET (T(I%), YK1(I%))

LINE (T(I%), XK1(I%))-(T(I% + 1), XK1(I% + 1))

LINE (T(I%), YK1(I%))-(T(I% + 1), YK1(I% + 1))

NEXT I%

LINE (-1, 0)-(1, 0)

LINE (0, -1.5)-(0, 1.5)

END SUB

SUB KUTT (T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), KX1!, KY1!, KX2!, KY2!, KX3!, KY3!, KX4!, KY4!)

N% = (B% - A%) / H!

I% = 0

DO

T(I%) = T(0) + I% * H!

KX1(I%) = H! * (-2 + X(I%) + 5 * Y(I%))

KY1(I%) = H! * ((EXP(.5 * Y(I%) + T(I%)) - EXP(-.5 * Y(I%) + T(I%))) / 3 + .5 * Y(I%))

KX2(I%) = H! * (-2 + (X(I%) + KX1(I%) / 2) + 5 * (Y(I%) + KX1(I%) / 2))

KY2(I%) = H! * ((EXP(.5 * (Y(I%) + KY1(I%) / 2) + (T(I%) + H! / 2) - EXP(-.5 * Y(I%) + KY1(I%) / 2 - (T(I%) + H! / 2))) / 3 + .5 * (Y(I%) + KY1(I%) / 2)))

KX3(I%) = H! * (-2 + (X(I%) + KX2(I%) / 2) + 5 * (Y(I%) + KY2(I%) / 2))

KY3(I%) = H! * ((EXP(.5 * (Y(I%) + KY2(I%) / 2) + (T(I%) + H! / 2) - EXP(-.5 * Y(I%) + KY2(I%) / 2 - (T(I%) + H! / 2))) / 3 + .5 * (Y(I%) + KY2(I%) / 2)))

KX4(I%) = H! * (-2 + (X(I%) + KX3(I%) / 2) + 5 * (Y(I%) + KY2(I%) / 2))

KY4(I%) = H! * ((EXP(.5 * (Y(I%) + KY3(I%) / 2) + (T(I%) + H! / 2) - EXP(-.5 * Y(I%) + KY3(I%) / 2 - (T(I%) + H! / 2))) / 3 + .5 * (Y(I%) + KY3(I%) / 2)))

X(I% + 1) = X(I%) + (1 / 6) * (KX1(I%) + 2 * KX2(I%) + 2 * KX3(I%) + KX4(I%))

Y(I% + 1) = Y(I%) + (1 / 6) * (KY1(I%) + 2 * KY2(I%) + 2 * KY3(I%) + KY4(I%))

I% = I% + 1

LOOP UNTIL I% > N%

END SUB

SUB MILN (T!, X!, Y!, A%, B%, H!, N%, E!, C%, X(), Y(), T(), LX3!, LY3!, LX2!, LY2!, LX1!, LY1!, XP!, YP!, XK!, YK!, MPX!, MPY!, MKX!, MKY!, XK1!, YK1!)

N% = (B% - A%) / H!

FOR I% = 3 TO N%

T(I%) = T(0) + I% * H!

LX3(I%) = -2 * X(I%) + 5 * Y(I%)

LY3(I) = (EXP(.5 * (Y(I%) + T(I%)) - EXP(-.5 * Y(I%) - T(I%))) / 3 + .5 * Y(I%))

LX2(I% - 1) = -2 * X(I% - 1) + 5 * Y(I% - 1)

LY2(I% - 1) = (EXP(.5 * (Y(I% - 1) + T(I% - 1)) - EXP(-.5 * Y(I% - 1) - T(I% - 1))) / 3 + .5 * Y(I% - 1))

LX1(I% - 2) = -2 * X(I% - 2) + 5 * Y(I% - 2)

LY1(I% - 2) = (EXP(.5 * (Y(I% - 2) + T(I% - 2)) - EXP(-.5 * Y(I% - 2) - T(I% - 2))) / 3 + .5 * Y(I% - 2))

XP(I% + 1) = X(I% - 3) + (4 / 3) * H! * (2 * LX3(I%) - LX2(I% - 1) + 2 * LX1(I% - 2))

YP(I% + 1) = Y(I% - 3) + (4 / 3) * H! * (2 * LY3(I%) - LY2(I% - 1) + 2 * LY1(I% - 2))

MPX(I% + 1) = 2 + XP(I% + 1) + 5 * YP(I% + 1)

MPY(I% + 1) = EXP(.5 * YP(I% + 1) + T(I% + 1)) - EXP(-.5 * YP(I% + 1) - T(I% + 1)) / 3 + .5 * YP(I% + 1)

XK(I% + 1) = X(I% - 1) + (1 / 3) * H! * (MPX(I% + 1) - 4 * LX3(I%) + LX2(I% - 1))

YK(I% + 1) = Y(I% - 1) + (1 / 3) * H! * (MPY(I% + 1) - LY3(I%) + LY2(I% - 1))

MKX(I% + 1) = -2 + XK(I% + 1) + 5 * YK(I% + 1)

MKY(I% + 1) = (EXP(.5 * YK(I% + 1) + T(I% + 1)) - EPX(-.5 * Y(I + 1) - T(I% + 1)) / 3 + .5 * YK(I% + 1))

NEXT I%

END SUB

1.10.Результати реалізації програми за способом Мілна

Т Х У
0 0 0
0,1565085 0,002034751 0,008549757
0,3130169 0,01578947 0,03372118
0,4695254 0,05033831 0,07872751
0,6560338 0,1149077 0,1481089
0,7825423 0,2199285 0,2483817
0,9390508 0,3783839 0,389151


2. Реалізація контролю працездатності енергетичної системи

Початкові дані

Функціональний рівень зміни температури теплоносія, що гріє, для підігрівача гарячого водопостачання теплової підстанції (за варіантом №6)