Результаты работы программы
Постановка задачи
Двигатель из состояния покоя приводит в движение вал рабочей машины. Механическая характеристика двигателя состоит из двух прямолинейных участков: МД1=a1+b1ω при Определить зависимость скорости вала двигателя от времени ω(t). Вычислить скорость ωуст и время начала tуст установившегося движения вала. Построить графики зависимостей ω(t) и МД(t). Исходные данные: a1=96 Н*м a2=2100 Н*м b1=0,56 Н*м*с b1=20 Н*м*с МС=60 Н*м J=12 кг*м2 n=20 Dt=0,1 с ε=0,1
Математическая модель решения задачи
В качестве математической модели задачи используем дифференциальное уравнение движения вала двигателя
Тогда на прямолинейном участке при
Значение ω опр определим (см. рис. 1) из условия МД(ωопр)=МД(ωопр) или a1+b1ωопр=a2-b2ωопр. Откуда
Решив задачу Коши на интервале аргумента На прямолинейном участке при
Для каждого значения аргумента ti=ti-1+Dt, начиная с i=n+2 и используя tопр=tn+1, ωопр=ωn+1, решаем задачу Коши (2) выбранным методом и получаем последовательность значений функции ωn+2, ωn+3, ωn+4 и т.д. Процесс вычислений прекращаем при выполнении условия
Решение дифференциальных уравнений методом Эйлера. Пусть задано дифференциальное уравнение первого порядка На интервале [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 .) x[i]=x [i-1]+h; ) y[i]=y [i-1]+h*f (x[i-1], y [i-1]); ) Для i=0, n ) Вывод x[i], y[i]. Алгоритм решения задачи 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 . writeln (t[i], w[i], Md[i]);
Записываем в файл RESULTS.RES topr и wopr
5. writeln (topr, wopr); . i:=n+2;
Определяем функцию w(t) на промежутке w>=wopr с использованием цикла с постусловием
7. repeat . t[i]:=t [i-1]+dt; . w[i]:=w [i-1]+dt*fun2 (w[i-1]); . 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 t[i]:=t[1] +(i-1)*h; 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 Схема алгоритма
Функция fun1
:real
Функция fun2
:real Процедура EILER
:integer; tn, tk, vn:real; f:fun; Var t, v:vect
Таблица идентификаторов
Текст программы 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.
Результаты работы программы вал двигатель скорость программа 3avisimost w(t) pri 0<=w<=woprw Md 0.00 96.00 4.87 98.73 9.75 101.46 14.62 104.19 19.49 106.92 24.37 109.65 29.24 112.38 34.11 115.10 38.99 117.83 43.86 120.56 48.74 123.29 53.61 126.02 58.48 128.75 63.36 131.48 68.23 134.21 73.10 136.94 77.98 139.67 82.85 142.40 87.72 145.13 92.60 147.85 97.47 150.58= 0.57s wopr=97.47rad/s Mdopr=150.58H*s avisimost w(t) pri w>woprw Md 98.23 135.49 98.85 122.91 99.38 112.42 99.82 103.68 100.18 96.40 100.48 90.34 100.74 85.28 100.95 81.07 101.12 77.56 101.27 74.63 101.39 72.19 101.49 70.16 101.58 68.47=101.58s wyst= 1.87rad/s Mdyst=68.47H*s
Графическая часть
Анализ результатов
В результате работы программы была получена зависимость скорости вала двигателя от времени ω(t) и установившиеся время tуст и скорость ωуст. За время t двигатель приобрел максимальную угловую скорость ω, которая в дальнейшей работе двигателя изменялась только в пределах заданной относительной погрешности измерений ε.
Литература
1. Рапаков Г.Г., Ржеуцкая С.Ю. Тurbo Pascal для студентов и школьников. - СПБ.: БХВ - Петербург. 2004. - 352 с. 2. Анципорович П.П., Алейникова О.И., Булгак Т.И., Луцко Н.Я. Информатика. Учебно-метод. Пособие к лабораторным работам для студ. машиностроит. спец. В 4 ч. - Мн.: БНТУ, 2009.
Воспользуйтесь поиском по сайту: ![]() ©2015 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|