Помощь в написании студенческих работ
Антистрессовый сервис

Разработка программы для определения зависимости скорости вала двигателя от времени

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Для получения численного решения дифференциального уравнения уравнение заменяется уравнениями относительно значений функции y*(x). Эти уравнения называют разностными. Простейшие разностные уравнения для заданного дифференциального уравнения имеют вид. Решив задачу Коши на интервале аргумента методом Эйлера и Рунге-Кутта четвертого порядка точности, получим таблично заданную зависимость t (щ… Читать ещё >

Разработка программы для определения зависимости скорости вала двигателя от времени (реферат, курсовая, диплом, контрольная)

1. Постановка задачи

Двигатель из состояния покоя приводит в движение вал рабочей машины. Механическая характеристика двигателя состоит из двух прямолинейных участков: МД1=a1+b1щ при и МД2=a2+b2щ при. Приведенный к валу двигателя момент инерции вращающихся частей машины и двигателя J, момент сопротивления на том же валу равен МС.

Определить зависимость скорости вала двигателя от времени щ (t). Вычислить скорость щуст и время начала tуст установившегося движения вала. Построить графики зависимостей щ (t) и МД(t).

Исходные данные:

a1=96 Н*м

a2=2100 Н*м

b1=0,56 Н*м*с

b1=20 Н*м*с МС=60 Н*м

J=12 кг*м2

n=20

t=0,1 с е=0,1

2. Математическая модель решения задачи

В качестве математической модели задачи используем дифференциальное уравнение движения вала двигателя

Тогда на прямолинейном участке при задача Коши примет вид:

(1)

Значение щопр определим (см. рис. 1) из условия МДопр)=МДопр) или a1+b1щопр=a2-b2щопр.

Откуда

.

Решив задачу Коши на интервале аргумента методом Эйлера и Рунге-Кутта четвертого порядка точности, получим таблично заданную зависимость t (щ). Построенную таблицу можно рассматривать в качестве зависимости щ (t) и использовать для определения МД(t).

На прямолинейном участке при строим задачу Коши в виде

(2)

Для каждого значения аргумента ti=ti-1+t, начиная с i=n+2 и используя tопр=tn+1, щопрn+1, решаем задачу Коши (2) выбранным методом и получаем последовательность значений функции щn+2, щn+3, щn+4 и т. д. Процесс вычислений прекращаем при выполнении условия. Тогда в качестве щуст берем последнее вычисленное значение щi и tуст=ti.

Решение дифференциальных уравнений методом Эйлера.

Пусть задано дифференциальное уравнение первого порядка или y'=F (x, y)

На интервале [x0, xn] разобьём на n частей и получим X0,…,Xn.

Xi=X0+(i-1) h или Xi=Xi-1+h1, где .

Соответствующее значения y1=y*(xi), где y*(xi) — приближенное значение дифференциального уравнения.

Для получения численного решения дифференциального уравнения уравнение заменяется уравнениями относительно значений функции y*(x). Эти уравнения называют разностными. Простейшие разностные уравнения для заданного дифференциального уравнения имеют вид.

yi+1-yi=h*F (x, y)

yi+1=yi+h*F (x, y) — формула Эйлера.

Алгоритм метода Эйлера.

1) Ввод исходных данных (x0, xn,n, y0).

2)

3) x[0]=x0; y[0]=y0.

4) Для i=1, n

4.1.) x[i]=x [i-1]+h;

4.2) y[i]=y [i-1]+h*f (x[i-1], y [i-1]);

5) Для i=0, n

5.1) Вывод x[i], y[i].

3. Алгоритм решения задачи

1. Вводим исходные данные

a1, a2, b1, b2, Mc, J, n, dt, epsilon;

2. wopr:=(a2-a1)/(b1+b2); tn:=0; wn:=0; wk:=wopr;

Решаем дифференциальное уравнение с использованием процедуры EILER

3. EILER (n, wn, wk, tn, fun1, w, t)

Записываем в файл RESULTS. RES полученную табличную зависимость w (t) на промежутке 0<=w<=wopr;

4. Для i=1…n+1

4.1. writeln (t[i], w[i], Md[i]);

Записываем в файл RESULTS. RES topr и wopr

5. writeln (topr, wopr);

6. i:=n+2;

Определяем функцию w (t) на промежутке w>=wopr с использованием цикла с постусловием

7. repeat

7.1. t[i]: =t [i-1]+dt;

7.2. w[i]: =w [i-1]+dt*fun2 (w[i-1]);

7.3. m:=i; i:=i+1;

until abs (w[i-1] - w[i])<=epsilon;

Записываем в файл RESULTS. RES полученную табличную зависимость w (t) на промежутке w>=wopr

8. Для i=n+2…m

writeln (t[i], w[i], Md[i]).

Записываем в файл результатов tyst, wyst, Mdyst.

9. writeln (tyst, wyst, Mdyst).

Алгоритм процедуры EILER

1. t[1]: =tn; t [n+1]: =tk; v[1]: =vn; h:=(t [n+1] - t[1])/n;

2. Для i=2…n+1

2.1 t[i]: =t[1] +(i-1)*h;

2.2 v[i]: =v [i-1]+h*f (t[i-1]);

Алгоритм функции fun1

1. fun1:=12/(2100+0.56*w-60)

Алгоритм функции fun2

1. fun2:=(2100−20*w-60)/12

4. Схема алгоритма

Функция fun1

w:real

Функция fun2

w:real

Процедура EILER

n:integer; tn, tk, vn: real; f: fun;

Var t, v: vect

5. Таблица идентификаторов

Наименование

физический смысл

идентификатор

Время

t

t

Угловая скорость двигателя

щ

w

Постоянные коэффициенты

a1, a2, b1, b2

a1, a2, b1, b2

Момент сопротивления на валу двигателя

MC

Mc

Момент инерции двигателя

J

J

Шаг времени

t

dt

Относительная ошибка измерения

е

epsilon

Определенное и установленное время

tопр, щуст

topr, wopr

Определенная и установлена угловая скорость

щопр

wopr

Число интервалов разбиения

n

n

6. Текст программы

Program kyrsa4;

Uses crt;

TYPE fun=function (y:real):real;

vect=array [1.100] of real;

Var f1, f2: fun;

t, w: vect; f3, f4: text;

i, n, m: integer;

tn, wn, wk, Mc, a1, a2, b1, b2, dt, epsilon, j, topr, wopr: real;

{$F+}

function fun1 (w:real):real;

begin

fun1:=12/(2100+0.56*w-60)

end;

function fun2 (w:real):real;

begin

fun2:=(2100−20*w-60)/12

end;

{$F-}

Procedure EILER (n:integer; tn, tk, vn: real; f: fun; var t, v: vect);

Var i: integer; h: real;

begin

t[1]: =tn; t [n+1]: =tk; v[1]: =vn;

h:=(t [n+1] - t[1])/n;

for i:=2 to n+1 do begin

t[i]: =t[1]+(i-1)*h;

v[i]:=v [i-1]+h*f (t[i-1]);

end;

end;

begin ClrScr;

assign (f3,'results.res'); rewrite (f3);

assign (f4,'danie.dat'); reset (f4);

readln (f4, a1, a2, b1, b2, Mc, J, n, dt, epsilon);

wopr:=(a2-a1)/(b1+b2);

tn:=0; wn:=0; wk:=wopr;

EILER (n, wn, wk, tn, fun1, w, t);

writeln (f3,'3avisimost w (t) pri 0<=w<=wopr');

writeln (f3,'t w Md');

for i:=1 to n+1 do writeln (f3, t[i]: 5:2,' ', w[i]: 5:2,' ', a1+b1*w[i]: 5:2);

writeln (f3,'topr=', t [n+1]: 5:2,'s wopr=', w [n+1]: 5:2,'rad/s Mdopr=', a1+b1*w [n+1]: 5:2,'H*s');

writeln (f3,'3avisimost w (t) pri w>wopr');

writeln (f3,'t w Md');

i:=n+2;

repeat t[i]: =t [i-1]+dt;

w[i]: =w [i-1]+dt*fun2 (w[i-1]);

m:=i; i:=i+1;

until abs (w[i-1] - w [i-2])<=epsilon;

for i:=n+2 to m do

writeln (f3, t[i]: 5:2,' ', w[i]: 5:2,' ', a2-b2*w[i]: 5:2);

writeln (f3,'tyst=', w[m]: 5:2,'s wyst=', t[m]: 5:2,'rad/s Mdyst=', a2-b2*w[m]: 5:2,'H*s');

close (f3); close (f4);

repeat until keypressed

end.

7. Результаты работы программы

вал двигатель скорость программа

3avisimost w (t) pri 0<=w<=wopr

t w Md

0.00 0.00 96.00

0.03 4.87 98.73

0.06 9.75 101.46

0.09 14.62 104.19

0.11 19.49 106.92

0.14 24.37 109.65

0.17 29.24 112.38

0.20 34.11 115.10

0.23 38.99 117.83

0.26 43.86 120.56

0.28 48.74 123.29

0.31 53.61 126.02

0.34 58.48 128.75

0.37 63.36 131.48

0.40 68.23 134.21

0.43 73.10 136.94

0.45 77.98 139.67

0.48 82.85 142.40

0.51 87.72 145.13

0.54 92.60 147.85

0.57 97.47 150.58

topr= 0.57s wopr=97.47rad/s Mdopr=150.58H*s

3avisimost w (t) pri w>wopr

t w Md

0.67 98.23 135.49

0.77 98.85 122.91

0.87 99.38 112.42

0.97 99.82 103.68

1.07 100.18 96.40

1.17 100.48 90.34

1.27 100.74 85.28

1.37 100.95 81.07

1.47 101.12 77.56

1.57 101.27 74.63

1.67 101.39 72.19

1.77 101.49 70.16

1.87 101.58 68.47

tyst=101.58s wyst= 1.87rad/s Mdyst=68.47H*s

8. Графическая часть

9. Анализ результатов

В результате работы программы была получена зависимость скорости вала двигателя от времени щ (t) и установившиеся время tуст и скорость щуст.

За время t двигатель приобрел максимальную угловую скорость щ, которая в дальнейшей работе двигателя изменялась только в пределах заданной относительной погрешности измерений е.

1. Рапаков Г. Г., Ржеуцкая С. Ю. Тurbo Pascal для студентов и школьников. — СПБ.: БХВ — Петербург. 2004. — 352 с.

2. Анципорович П. П., Алейникова О. И., Булгак Т. И., Луцко Н. Я. Информатика. Учебно-метод. Пособие к лабораторным работам для студ. машиностроит. спец. В 4 ч. — Мн.: БНТУ, 2009.

Показать весь текст
Заполнить форму текущей работой