3.1. Исходные данные (ввод): I0, M0, Mc, φp, n
3.2. φ1=0, ω1=0, t1=0, Δφp=φp/n
3.3. Md1=M0+ln(φ1+1)+ 1
3.4. Для первого положения,
ε 1=
3.5. Для остальных положений при i=n+2,…, n+1
3.5.1. φi=φi-1+Δφp
3.5.2. Mdi=M0+ln(φi+1)+ i
3.5.3. int вычисляется по формуле трапеций:
int=
3.5.4. ωi=
3.5.5.
3.5.6. ti=ti-1+
3.5.7. ε i=
3.6. Вывод параметров движения для разгона при i=1,…, n+1
3.6.1. Вывод i, φi, ωi, ε i, ti
3.7. Вывод быстродействия для участка разгона Тр=tn+1
Для участка торможения алгоритм имеет следующий вид:
3.8. φt=
3.9. ε n+1=-Mc /I0
3.10. Δφt=φt/n
3.11. Для положений при i=n+2,…,2n+1
3.11.1 φi=φi-1+Δφt
3.11.2. ωi=
3.11.3.
3.11.4. ti=ti-1+
3.11.5. ε i=
3.12. Вывод параметров движения для торможения при i=n+1,…,2n+1
3.12.1. Вывод i, φi, ωi, ε i, ti
3.13. Вывод быстродействия для участка торможения Тt=t2n+1-tn+1
4.
Схема алгоритма решения задачи
Таблица идентификаторов
|
|
Математическое обозначение | I0 | M0 | Mc | n | Δφp | φ | t | φp | φt |
Идентификатор | I0 | M0 | Mc | n | dfp | fi | t | fip | fit |
Математическое обозначение | Δφt | i | ε | ωcp | int | Tp | Tt | Md1 | Md | C |
Идентификатор | dft | i | b | wcp | int | Tp | Tt | Md1 | Md | C |
Текст программы
program kurs; {Курсовая работа студента Лабоцкого Д.В.}
{Исследование вращательного движения вала Вариант 13}
uses crt;
type Big=array[1..30] of real;
var Md,fi,w,t,b,int:Big;
n,i:integer;
fe:text;
C,Mc,I0,Wcp,fip,dfp,fit,dft,Tp,Tt,M0:real;
begin clrscr;
assign(fe,'kurs-13v.rez');rewrite(fe);writeln(fe);
writeln(fe,' ':15,'Определение параметров вращательного движения',
' тела');
writeln(fe);
writeln(fe, ' ':40,' Лабоцкий Д.В.');
writeln(fe);
writeln(fe, ' ':30,'Вариант 13');
writeln('Введите исходные данные');
write('Момент инерции тела равен I0= ');readln(I0);
write('Коэффициент для движущего момента равен М0= ');readln(M0);
write('Момент сопротивления равен Мc= ');readln(Mc);
write('Угол разгона fip= ');readln(fip);
write('Количество интервалов разбиения n= ');readln(n);
writeln('Исходные данные занесены в файл результатов');
writeln(fe);
writeln(fe,' ':25,'Исходные данные');
writeln(fe);
writeln(fe,' ':10,'Момент инерции тела равен I0= ',I0:5:2,' кг/м2');
writeln(fe,' ':10,'Коэффициент движущего момента М0= ',M0:5:2,' нм');
writeln(fe,' ':10,'Момент сопротивления Мc= ',Mc:5:2,' нм');
writeln(fe,' ':10,'Угол разгона fip= ',fip:5:2,' рад');
writeln(fe,' ':10,'Количество интервалов разбиения n= ',n:2);
dfp:=fip/n;
fi[1]:=0;W[1]:=0;t[1]:=0;
Md[1]:=M0+ln(fi[1]+1)+sqrt(fi[1]);
b[1]:=(Md[1]-Mc)/I0;
for i:=2 to (n+1) do begin
fi[i]:=fi[i-1]+dfp;
Md[i]:=M0+ln(fi[i]+1)+sqrt(fi[i]);
int[i]:=(((Md[i]-Mc)+(Md[i-1]-Mc))*dfp)/2;
W[i]:=sqrt((2/I0)*(I0*sqr(W[i-1])/2+int[i]));
Wcp:=(W[i]+W[i-1])/2;
t[i]:=t[i-1]+(fi[i]-fi[i-1])/Wcp;
b[i]:=(W[i]-W[i-1])/(t[i]-t[i-1]) end;
Tp:=t[n+1];
write(fe,' ':10);
for i:=1 to 57 do
write(fe,'_');writeln(fe);
writeln(fe,' ':10,'I',' ':10,'I',' ':10,'I',' ':16,'I',' ':16,'I');
writeln(fe,' ':8,' I fi[i] I W[i] I b[i] I ',
' t[i] I ');
writeln(fe,' ':10,'I',' ':10,'I',' ':10,'I',' ':16,'I',' ':16,'I');
|
|
write(fe,' ':10);
for i:=1 to 57 do write(fe,'-');writeln(fe);
for i:=1 to n+1 do
writeln(fe,' ':7,i:2,' I',' ',fi[i]:7:3,' I',' ',W[i]:7:3,' I',' ',
b[i]:7:3,' I',' ',t[i]:7:3,' I');
writeln('Произведен расчет параметров разгона');
fit:=(I0*sqr(W[n+1]))/(2*Mc);
b[n+1]:=-Mc/I0;
dft:=fit/n;
for i:=n+2 to (2*n+1) do begin
fi[i]:=fi[i-1]+dft;
W[i]:=sqrt((2/I0)*((I0*sqr(W[i-1])/2)-(Mc*(fi[i]-fi[i-1]))));
Wcp:=(W[i]+W[i-1])/2;
t[i]:=t[i-1]+(fi[i]-fi[i-1])/Wcp;
b[i]:=(W[i]-W[i-1])/(t[i]-t[i-1]) end;
for i:=n+1 to (2*n+1) do
writeln(fe,' ':7,i:2,' I',' ',fi[i]:7:3,' I',' ',W[i]:7:3,' I',' ',
b[i]:7:3,' I',' ',t[i]:7:3,' I');
writeln('Произведен расчет параметров торможения');
write(fe,' ');
for i:=1 to 60 do
write(fe,'_');
writeln(fe);
writeln(fe);
Tt:=t[2*n+1]-t[n+1];
writeln(fe,' Быстродействие для угла разгона равно Tp= ',
Tp:7:3,' сек');
writeln(fe,' Быстродействие для угла торможения равно Tt= ',
Tt:7:3,' сек');
close(fe);
writeln('Результаты вычислений занесены в файл kurs-13v.rez');
repeat until keypressed
end.