МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ„ЛЬВІВСЬКА ПОЛІТЕХНІКА”
ІКТА
Кафедра БІТ
Курсова робота
з курсу:
„ Комп’ютерні методи дослідження
інформаційних процесів та систем ”
на тему:
„ Дослідження роботи Сельсинної слідкуючої системи”
Тема 5, варіант 1
Львів- 2011
В даній роботі досліджуємо перехідний процес Сельсинної слідкуючої системи модифікованим методом Ейлера та Рунге-Кутта IV порядку . Розв’язок поставленої задачі представлений в середовищі С#, платформі Visual Studio 2010 та у середовищі Pascal. Графіки уточнень побудовані в Microsoft Excel.
Зміст
Постановка задачі
Перетворення рівнянь
Теоретичні відомості
Системи диференціальних рівнянь
Модифікований метод Ейлера для розв’язку систем диференціальних рівнянь
Метод Рунге – Кутта для розв’язку систем
диференціальних рівнянь
Програми
Результат виконання програми
Графіки уточнення розв’язків
7. Список літератури1. Постановка задачі
Схема:
Рівняння ланок :
Рівняння ланок :
вимірювальна схема
обмотка збудження ЕМП (електромашинного підсилювача)
короткозамкнута обмотка ЕМП
обмотка збудження генератора
При початкових параметрах
Параметри
1
Tm. (сек)
0,1
Tk (сек)
0,05
TI (сек)
0,008
C (рад/в.сек)
4
I
200
KI
2
K2
2
KЕП
3
S (в/рад)
60
Звести систему алгебро-диференціальних рівнянь до системи чотирьох диференціальних рівнянь першого порядку, представити її у нормальній формі та розв’язати цю систему вказаними методами. Початкові умови - =1 радіан, решта початкових умов – нульові. Числові значення сталих параметрів, заданих в таблиці, слід зобразити з допомогою одиниць системи СІ.
Побудувати графік зміни величини
2. Перетворення рівнянь
U = S ( - )
+ = ( - )
+ = C =
= i
+ = =
=
=
+ = C =
=
= ; = ; ; = ;
= K1; = KU; S = S; = T1;
= K2; = TK; C = C; = TM;
= II;
(0) = 0; (0) = 0;(0) = 0;(0) = 0 ; = 1
= F[1]; - Y[1];
= F[2]; - Y[2];
= F[3]; - Y[3];
= F[4]; - Y[4];
3. 1. Системи диференціальних рівнянь
Нехай маємо диференціальне рівняння
Розглянемо заміну змінних
.
Тоді одержимо систему рівнянь
(1)
Примітка – похідна першого порядку.
Співвідношення вигляду
називається системою -звичайних диференціальних рівнянь першого порядку,
Якщо система розв’язана відносно похідних, то вона має вигляд
Отже, система (1) є системою звичайних диференціальних рівнянь зведена до нормального вигляду
3. 1. 1. Метод Ейлера для розв’язку систем диференціальних рівнянь
Метод Ейлера є найпростішим методом розв’язування задачі Коші. Він дозволяє інтегрувати ДР першого порядку виду.
(4)
Метод Ейлера базується на розкладі функції в ряд Тейлора в околі точки
(5)
Якщо мале, то, знехтувавши членам розкладу, що містять в собі і т.д. отримаємо
(6)
Похідну знаходимо з рівняння (4), підставивши в нього початкову умову. Таким чином можна знайти наближене значення залежної змінної при малому зміщенні від початкової точки. Цей процес можна продовжувати, використовуючи співвідношення.
,
роблячи як завгодно багато кроків.
Похибка методу має порядок , оскільки відкинуті члени, що містять в другій і вище степенях.
Недолік методу Ейлера - нагромадження похибок, а також збільшення об’ємів обчислень при виборі малого кроку з метою забезпечення заданої точності.
В методі Ейлера на всьому інтервалі тангенс кута нахилу дотичної приймається незмінним і рівним . Очевидно, що це призводить до похибки, оскільки кути нахилу дотичної в точках та різні. Точність методу можна суттєво підвищити, якщо покращити апроксимацію похідної. Для розв’язку системи диференціальних рівнянь використовують цей самий метод, за виключенням того, що всі рівняння системи необхідно розв’язувати паралельно.
3. 1. 2. Метод Рунге – Кутта для розв’язку систем диференціальних рівнянь
Метод Рунге – Кутта четвертого порядку
В методі Рунге-Кутта значення функції , визначається за формулою
Якщо розкласти функцію в ряд Тейлора і обмежитись членами до включно, то приріст можна записати у вигляді
(10)
Замість того, щоб обчислювати члени ряду за формулою (10) в методі Рунге-Кутта використовують наступні формули.
Похибка на кожному кроці має порядок . Таким чином метод Рунге-Кутта забезпечує значно вищу точність, однак вимагає більшого об’єму обчислень.
Деколи зустрічається інша форма представлення методу Рунге-Кутта 4-го порядку точності.
Методи з автоматичною зміною кроку
Застосовуються в тому випадку, якщо розв’язок потрібно одержати із заданою точністю. При високій точності (похибка ) автоматична зміна кроку забезпечує зменшення загального числа кроків в декілька разів (особливо при розв’язках у вигляді кривих, що сильно відрізняються крутизною).
Метод Рунге-Кутта з автоматичною зміною кроку
Після обчислення з кроком всі обчислення виконуються повторно з кроком . Після цього порівнюються результати, отримані в точці хn+1 з кроком і . Якщо модуль різниці менший , то обчислення продовжуються з кроком , в іншому випадку крок зменшують. Якщо нерівність дуже сильна, то крок збільшують.
Маємо
- значення незалежної змінної в точці
- значення функції в точці
- значення функції в точці , обчислене з кроком
- значення функції в точці , обчислене з кроком
- значення функції , обчислене з кроком
1) Якщо
обчислення повторюються з кроком і т.д., доки не виконається умова .
2) Якщо виконується ця умова, то можливі два варіанти, в залежності від значення K, де K – ознака поділу кроку.
Початкове значенняі залишається таким після першого поділу кроку на два. Надалі, якщо крок ділиться, то K приймає значення одиниці.
а) Якщо , то навіть коли виконалась умова , крок не змінюється, тобто лишається тим самим (обчислення далі проводяться з попереднім кроком).
б) Якщо і виконалась умова , тоді .
В обох випадках а) і б) результат виводиться на друк.
Для розв’язку системи диференціальних рівнянь використовують цей самий метод, за виключенням того, що всі рівняння системи необхідно розв’язувати паралельно.
4. Програми
1. Метод Ейлера
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace ME_EK
{
class Program
{
static void Main(string[] args)
{
Metod M = new Metod();
M.Obchusl();
}
}
class Metod
{
const int n = 4;
const double
Tm = 0.1, T1 = 0.008,
Tk = 0.05, C = 4,
Kep = 3, S = 60,
K1 = 2, K2 = 2,
Qin = 1, I = 300;
double h = 0.0001 , delta, a, b, t, k = 0;
int i;
Double[] f = new Double[n];
Double[] y = new Double[n];
Double[] z = new Double[n];
Double[] R = new Double[n];
Double[] D = new Double[n];
Double[] YY = new Double[n];
public void yn(double X, double H)
{
F();
for (i = 0; i < n; i++) y[i] += h * f[i];
}
public void F()
{
f[0] = y[3] / I;
f[1] = (K1 * Kep * S * (Qin - y[0]) - y[1]) / T1;
f[2] = (K2 * y[1] - y[2]) / Tk;
f[3] = (C * y[2] - y[3]) / Tm;
}
public void Obchusl()
{
a = t = 0;
b = 5;
f[0] = 0; f[1] = 0; f[2] = 0; f[3] = 0;
y[0] = 0; y[1] = 0; y[2] = 0; y[3] = 0;
do
{
yn(t, h);
if(k%1000==0) Console.WriteLine("{0}\t{1}", t, y[0]);
t = t + h;
k++;
}
while (t < b + h / 2);
}
}
}
5. Результати виконання програми
1. Eyler
0,100000000000002 0,132682106191765
0,199999999999994 0,627893064538046
0,299999999999983 1,15622803621791
0,399999999999972 1,41184290070743
0,499999999999961 1,34462334460641
0,59999999999995 1,10490510821268
0,699999999999939 0,888814623151037
0,799999999999928 0,81094437215062
0,899999999999917 0,867548535881343
0,999999999999906 0,979764687337082
1,0999999999999 1,06451289447812
1,19999999999988 1,08317180425341
1,29999999999987 1,04808765295707
1,39999999999986 0,997859843625716
1,49999999999985 0,966289793584409
1,59999999999984 0,964838813350062
1,69999999999983 0,983872615865647
1,79999999999982 1,00546159567446
1,89999999999981 1,01645017105358
1,9999999999998 1,01427488553339
2,10000000000001 1,00474302499318
2,20000000000022 0,995825794847767
2,30000000000043 0,992377129753132
2,40000000000064 0,994457834888582
2,50000000000085 0,998965444029277
2,60000000000106 1,00249569200538
2,70000000000127 1,00338184467383
2,80000000000148 1,00203849167545
2,9000000000017 1,00000321039486
3,00000000000191 0,998672855082522
3,10000000000212 0,998558637166175
3,20000000000233 0,999303159825568
3,30000000000254 1,00018513844171
3,40000000000275 1,00065564245157
3,50000000000296 1,00059018444109
3,60000000000317 1,00021207453922
3,70000000000338 0,99984474820379
3,80000000000359 0,999693200162631
3,90000000000381 0,999768621220786
4,00000000000402 0,999949337206762
4,10000000000378 1,00009608964101
4,20000000000355 1,00013727783064
4,30000000000332 1,00008615302717
4,40000000000308 1,00000382338983
4,50000000000285 0,999947909969699
4,60000000000262 0,999941013482943
4,70000000000238 0,999970031869448
4,80000000000215 1,00000600352679
4,90000000000192 1,00002607244128
5,00000000000169 1,00002435633649
6.Графіки уточнення розв’язків
Метод Ейлера
7. Список літератури
Корн Г., Корн Т. Справочник по математике для инженеров и научных работников. – М.: Наука, 1974. – 830 с.
Маликов В.Т., Кветный Р.Н. Вычислительные методы и применение ЭВМ: Учеб. пособие. – Киев: Выща шк., Головное изд-во, 1989. – 213 с.
Щуп Т. Решение инженерных задач на ЭВМ. – М.: Мир, 1982. – 235 с.
Каханер Д., Моулер К., Нэш С. Численные методы и программное обеспечение. – М.: Мир, 1998. –570 с.
5. Джон Г. Мэтьюз, Куртис Д. Финк Чисельнные методы. Использование Matlab. Издательский дом «Вильямс» Москва – Санкт-Петербург – Киев, 2001.
6. Коссак О., Тумашова О., Коссак О. Методи наближених обчислень: Навч.посібн. – Львів: Бак, 2003. – 168 с.