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

  • Вид работы:
    Контрольная работа
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    27,31 Кб
  • Опубликовано:
    2013-03-08
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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

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

Dt=0,1 с

ε=0,1

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


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


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

                           (1)

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

Откуда

.

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

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

 (2)

Для каждого значения аргумента ti=ti-1+Dt, начиная с 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) - формула Эйлера.

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

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

2)

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

) Для i=1, n

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

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

) Для i=0, n

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

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

 

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

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

. 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

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

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

5. writeln (topr, wopr);

. i:=n+2;

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

7. repeat

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

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

.3. m:=i; i:=i+1;abs (w[i-1] - w[i])<=epsilon;

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

8. Для i=n+2…m(t[i], w[i], Md[i]).

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

. writeln (tyst, wyst, Mdyst).

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

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

. Для i=2…n+1

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

.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


:real

Функция fun2

:real

Процедура EILER

: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

Шаг времени

Dt

dt

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

ε

epsilon

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

tопр, ωуст

topr, wopr

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

ωопр

wopr

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

n

n



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

kyrsa4;crt;fun=function (y:real):real;=array [1..100] of real;f1, f2:fun;, w:vect; f3, f4:text;, n, m:integer;, wn, wk, Mc, a1, a2, b1, b2, dt, epsilon, j, topr, wopr:real;

{$F+}fun1 (w:real):real;:=12/(2100+0.56*w-60);fun2 (w:real):real;:=(2100-20*w-60)/12;

{$F-}EILER (n:integer; tn, tk, vn:real; f:fun; var t, v:vect);i:integer; h:real;[1]:=tn; t [n+1]:=tk; v[1]:=vn;:=(t [n+1] - t[1])/n;i:=2 to n+1 do begin[i]:=t[1]+(i-1)*h;[i]:=v [i-1]+h*f (t[i-1]);;;ClrScr;(f3,'results.res'); rewrite(f3);(f4,'danie.dat'); reset(f4);(f4, a1, a2, b1, b2, Mc, J, n, dt, epsilon);:=(a2-a1)/(b1+b2);:=0; wn:=0; wk:=wopr;(n, wn, wk, tn, fun1, w, t);(f3,'3avisimost w(t) pri 0<=w<=wopr');(f3,'t w Md');i:=1 to n+1 do writeln (f3, t[i]:5:2,' ', w[i]:5:2,' ', a1+b1*w[i]:5:2);(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');(f3,'3avisimost w(t) pri w>wopr');(f3,'t w Md');:=n+2;t[i]:=t [i-1]+dt;[i]:=w [i-1]+dt*fun2 (w[i-1]);:=i; i:=i+1;abs (w[i-1] - w [i-2])<=epsilon;i:=n+2 to m do(f3, t[i]:5:2,' ', w[i]:5:2,' ', a2-b2*w[i]:5:2);(f3,'tyst=', w[m]:5:2,'s wyst=', t[m]:5:2,'rad/s Mdyst=', a2-b2*w[m]:5:2,'H*s');(f3); close(f4);until keypressed.

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

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

3avisimost w(t) pri 0<=w<=woprw Md

.00 0.00 96.00

.03 4.87 98.73

.06 9.75 101.46

.09 14.62 104.19

.11 19.49 106.92

.14 24.37 109.65

.17 29.24 112.38

.20 34.11 115.10

.23 38.99 117.83

.26 43.86 120.56

.28 48.74 123.29

.31 53.61 126.02

.34 58.48 128.75

.37 63.36 131.48

.40 68.23 134.21

.43 73.10 136.94

.45 77.98 139.67

.48 82.85 142.40

.51 87.72 145.13

.54 92.60 147.85

.57 97.47 150.58= 0.57s wopr=97.47rad/s Mdopr=150.58H*s

avisimost w(t) pri w>woprw Md

.67 98.23 135.49

.87 99.38 112.42

.97 99.82 103.68

.07 100.18 96.40

.17 100.48 90.34

.27 100.74 85.28

.37 100.95 81.07

.47 101.12 77.56

.57 101.27 74.63

.67 101.39 72.19

.77 101.49 70.16

.87 101.58 68.47=101.58s wyst= 1.87rad/s Mdyst=68.47H*s

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




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


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

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

Литература


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

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

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

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!