Знаходження динамічних характеристик технологічного об’єкта шляхом розв’язування системи диференціальних рівнянь. Варіант №2

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2008
Тип роботи:
Розрахункова робота
Предмет:
Алгоритмізація і програмування
Група:
АВ

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” РОЗРАХУНКОВА РОБОТА №2 З дисципліни : Алгоритмізація і програмування. Знаходження динамічних характеристик технологічного об’єкта шляхом розв’язування системи диференціальних рівнянь. Варіант №2 Завдання Для протічної гідравлічної ємності з коротким та довгим трубопроводами відповідно на вході та виході математична модель має вигляд :   де  Знайти розв’язок системи звичайних диференціальних рівнянь (ЗДР) – H(t), Q1(t) на інтервалі t є [0; 150] с. з кроком Δt=0.5 c, якщо d=1 м ξ=0.9 ρ=1000 кг/м³ P1=50000 Па  L1=95 м r1=0.12 м Q=0.02 м³/c ν=0.00001 Па*с   Початкові умови : значення рівня H(0)=1 м та витрати Q(0)=0,02 м³/c. Розв’язання Розв’яжемо систему відносно перших похідних функцій, тобто   Позначимо  ,  Тоді схема числового інтегрування системи двох ЗДР матиме вигляд :  Блок-схема методу Рунге-Кута для розв’язання системи двох ЗДР  Програма чисельного роз’язування системи двох ЗДР #include<stdio.h> #include<conio.h> #include<math.h> float f1(float t, float H, float Q1) {float dz=0.9,po=1000,v=1e-5,P1=50000,L1=95,r1=0.12,d=1,Q=0.02,g=9.81; float A=4*M_PI*pow(r1,3)/dz; float k1=2*M_PI*r1*r1*sqrt(r1/(L1*dz)); return (1/A)*(k1*k1*(P1-po*g*H)/po-Q1*Q1); } float f2(float t, float H, float Q1) {float Q=0.02, d=1; float S=M_PI*d*d/4; return (Q1-Q)/S; } main() {clrscr(); float t,t0=0,tf=150,n=300; float h,k1,k2,k3,k4,l1,l2,l3,l4,Hi=1,Q1i=0.02; h=(tf-t0)/n; for(t=t0;t<=tf;t+=h) {printf(«\n t=%f Hi=%f Q1i=%f»,t,Hi,Q1i); k1=h*f1(t,Hi,Q1i); l1=h*f2(t,Hi,Q1i); k2=h*f1(t+h/2,Hi+k1/2,Q1i+l1/2); l2=h*f2(t+h/2,Hi+k1/2,Q1i+l1/2); k3=h*f1(t+h/2,Hi+k2/2,Q1i+l2/2); l3=h*f2(t+h/2,Hi+k2/2,Q1i+l2/2); k4=h*f1(t+h,Hi+k3,Q1i+l3); l4=h*f2(t+h,Hi+k3,Q1i+l3); Hi=Hi+(k1+2*k2+2*k3+k4)/6; Q1i=Q1i+(l1+2*l2+2*l3+l4)/6; } getch(); return 0; }   Запишемо в таблицю кожне тридцяте значення функцій для рівня H(t), м та витрати Q1(t), м³/с. t,c 0 15 30 45 60 75  H(t),м 1.0000 1.0370 1.0716 1.1038 1.1339 1.1619  Q1(t),м³/с. 0.0200 0.0200 0.0200 0.0200 0.0200 0.0200   t,c 90 105 120 135 150  H(t),м 1.1880 1.2124 1.2351 1.2563 1.2760  Q1(t),м³/с. 0.0200 0.0200 0.0200 0.0200 0.0200   Розв’язок системи двох ЗДР засобами MATLAB Створимо файл data.m в якому запишемо вхідні дані та обчислимо коефіцієнти %data dz=0.9;po=1000;v=1e-5;g=9.81;P1=50000; L1=95;r1=0.12;d=1;Q=0.02; A=(4*pi*r1^3)/dz; K1=2*pi*r1^2*sqrt(r1/(L1*dz)); S=pi*d^2/4;   Файл-функція ff.m, в якому записані праві частини диференціальних рівнянь, розв’язаних відносно перших похідних, має вигляд : function y=ff(t,x); data; H=x(1);Q1=x(2); y=[(1/A)*((K1^2/po)*(P1-po*g*H)-Q1^2); (1/S)*(Q1-Q)];   Дані та обчислені значення коефіцієнтів передають в файл-функцію ff.m шляхом включення файлу даних data.m. Файл main.m, в якому задають інтервал часу (t0, tf), на якому інтегрують систему ЗДР, початкові умови (x0=[1 0.02]) та записують функцію MATLAB ode45(), призначену для розв’язку ЗДР чи системи ЗДР числовим методом має вигляд : %main t0=0;tf=150;x0=[1 0.02]; [t,y]=ode45('ff',[t0 tf],x0) figure(1);subplot(2,1,1);plot(t,y(:,1),'k');grid;xlabel('t,c');ylabel('H,m'); subplot(2,1,2);plot(t,y(:,2),'k');grid;xlabel('t,c');ylabel('Q_1,m^3/c');   Графіки перехідних прцесів – зміни рівня в ємності та витрати рідини в трубопроводі.  Накладемо графіки, отримані в MATLAB та значення отримані в С. Для цього модефікуємо файл main.m, додавши до нього дані з таблиці : %main t0=0;tf=150;x0=[1 0.02]; [t,y]=ode45('ff',[t0 tf],x0) ti=[0:15:150]; Hi=[1 1.0370 1.0716 1.1038 1.1339 1.1619 1.1880 1.2124 1.2351 1.2563 1.2760]; Q1i=[0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02 0.02]; figure(1);subplot(2,1,1);plot(t,y(:,1),'k',ti,Hi,'b*');grid;xlabel('t,c');ylabel('H,m'); subplot(2,1,2);plot(t,y(:,2),'k',ti,Q1i,'b*');grid;xlabel('t,c');ylabel('Q_1,m^3/c');    Висновок : розв’язки системи ЗДР, отримані отримані засобами MATLAB (––) та в С (*) співпадають, а значить можна зробити висновок, що вони знайдені правильно.
Антиботан аватар за замовчуванням

12.02.2013 18:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!