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

Определение зависимости скорости вала двигателя от времени. Математическая модель решения задачи. Решение задачи Коши на интервале методом Эйлера и Рунге-Кутта четвертого порядка точности. Алгоритм решения задачи. Текст программы и результаты ее работы.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 08.03.2013
Размер файла 108,9 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

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

Размещено на http://www.allbest.ru/

w:real

Функция fun2

Размещено на http://www.allbest.ru/

w:real

Процедура EILER

Размещено на http://www.allbest.ru/

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.

Размещено на Allbest.ru


Подобные документы

  • Численные решения задач методом Коши, Эйлера, Эйлера (модифицированный метод), Рунге Кутта. Алгоритм, форма подпрограммы и листинг программы. Решение задачи в MathCad. Подпрограмма общего решения, поиск максимальных значений. Геометрический смысл задачи.

    курсовая работа [691,4 K], добавлен 17.05.2011

  • Математическое описание задачи решения обыкновенного дифференциального уравнения численным явным методом Рунге-Кутта, разработка схемы алгоритма и написание программы в среде программирования Microsoft Visual Studio 2010. Тестирование работы программы.

    курсовая работа [1,1 M], добавлен 22.01.2014

  • Обыкновенное дифференциальное уравнение первого порядка. Задача Коши, суть метода Рунге-Кутта. Выбор среды разработки. Программная реализация метода Рунге-Кутта 4-го порядка. Определение порядка точности метода. Применение языка программирования C++.

    курсовая работа [163,4 K], добавлен 16.05.2016

  • Численное решение задачи Коши для обыкновенного дифференциального уравнения первого и второго порядка методом Эйлера и Рунге-Кутты и краевой задачи для ОДУ второго порядка с применением пакета MathCad, электронной таблицы Excel и программы Visual Basic.

    курсовая работа [476,2 K], добавлен 14.02.2016

  • Численные методы решения задачи Коши для обыкновенных дифференциальных уравнений: Эйлера, Рунге-Кутта, Адамса и Рунге. Техники приближенного решения данных уравнений: метод конечных разностей, разностной прогонки, коллокаций; анализ результатов.

    курсовая работа [532,9 K], добавлен 14.01.2014

  • Составление программы на алгоритмическом языке Turbo Pascal. Разработка блок-схемы алгоритма её решения. Составление исходной Pascal-программы и реализация вычислений по составленной программе. Применение методов Рунге-Кутта и Рунге-Кутта-Мерсона.

    курсовая работа [385,0 K], добавлен 17.09.2009

  • Ручной расчет поставленной задачи методов Эйлера и Эйлера-Коши. Алгоритмы решения обоих методов, их программная реализация, решение тестовых примеров на заданную задачу. Расчеты заданного интеграла на языке программирования Turbo Pascal, их результаты.

    курсовая работа [404,7 K], добавлен 15.06.2013

  • Описание алгоритма решения транспортной задачи по планированию перевозки зерна. Ход решения задачи вручную, в программе TORA методом наименьшего элемента, с помощью MS Excel. Разработка программы для решения задачи в общем виде средствами Delphi.

    курсовая работа [2,5 M], добавлен 22.11.2012

  • Обзор методов решения в Excel. Рекурентные формулы метода Эйлера. Метод Рунге-Кутта четвертого порядка для решения уравнения первого порядка. Метод Эйлера с шагом h/2. Решение дифференциальных уравнений с помощью Mathcad. Модифицированный метод Эйлера.

    курсовая работа [580,1 K], добавлен 18.01.2011

  • Содержательная и формальная (математическая) постановка задачи. Разработка алгоритма решения задачи. Структуры программы и алгоритмы программных модулей, их описание. Решение задачи на конкретном примере. Разработка системы тестов и отладка программы.

    курсовая работа [882,1 K], добавлен 24.11.2014

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.