Разработка программы для определения зависимости скорости вала двигателя от времени
Определение зависимости скорости вала двигателя от времени. Математическая модель решения задачи. Решение задачи Коши на интервале методом Эйлера и Рунге-Кутта четвертого порядка точности. Алгоритм решения задачи. Текст программы и результаты ее работы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 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