Исследование колебаний математического маятника
Исследование характера движения математического маятника в идеальных условиях, то есть без учёта сил сопротивления, что позволяет маятнику совершать гармонические колебания неограниченное количество времени. Рассмотрение алгоритма решения задачи на ЭВМ.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.03.2013 |
Размер файла | 231,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru
Содержание
- Введение 2
- 1. Постановка задачи 4
- 2. Математическая модель решения задачи 5
- 3. Алгоритм решения задачи 6
- 4. Схема алгоритма 8
- 5. Таблица идентификаторов 20
- 6. Текст программы 20
- 7. Результаты работы программы 30
- 8. Графическая часть 32
- 9. Анализ результатов 32
- Литература 34
- Приложение 35
- Решение задачи с использование Microsoft Excel 35
Введение
При осуществлении проектов в машиностроительной области, начальной стадией реализации этого проекта является создание модели, которая по возможности могла бы учитывать все факторы, влияющие на качество, надежность, долговечность, заданные характеристики работы при эксплуатации. В соответствии с условиями работы и заданными техническими характеристиками необходимо спроектировать такую модель, которая бы отвечала всем поставленным требованиям. Однако в процессе разработки приходится воплощать несколько моделей и сравнивать их характеристики между собой для более оптимального решения проблемы, в этих случаях наиболее целесообразно использовать ЭВМ.
Автоматизация машиностроения требует не только автоматического управления режимами, например, механической обработки, прессования, термической, физико-химической обработки и других рабочих процессов машиностроения. Для полной механизации работ требуется автоматизация транспортирования (перемещения в пространстве) и переориентация объекта производства. В качестве такого объекта манипулирования может быть обрабатываемая деталь, инструмент или другой предмет самой разнообразной конфигурации. Чаще всего требуется не только переместить в пространстве, но и сориентировать деталь определенным образом, т.е. не только изменить ее местонахождение, но и развернуть в пространстве определенным образом. Эти операции выполняются манипуляторами промышленных роботов.
В данном курсовом проекте рассматривается движение математического маятника, как один из примеров разнообразия решаемых на ЭВМ задач. Компьютерные технологии очень ускорили изучение человеком различных процессов: физических, химических, математических, решение инженерных задач.
Математический маятник представляет собой шарик, подвешенный на нити, при сообщении шарику некоторой начальной скорости он начнёт колебательное движение. Причём если пренебречь силами сопротивления (создать идеальные условия), то маятник будет совершать гармонические колебания неограниченное количество времени. Это и помогают доказать исследования проводимые на ЭВМ.
1. Постановка задачи
Математическому маятнику массой m и длиной нити l в низшем положении сообщена горизонтальная скорость (рисунок 1).
Исследовать характер колебаний маятника при изменении времени от 0 до tкон, определив зависимость S(t) и построив её график. Силами сопротивления пренебречь.
Размещено на http://www.allbest.ru
Рисунок 1
Значения исходных данных:
Начальная скорость v0 = 0,05 м/с;
Длина нити l = 1 м;
Конечное время tкон = 1,8 с;
Количество разбиений n = 40.
2. Математическая модель решения задачи
Математическую модель задачи построим, используя второй закон Ньютона. Дифференциальное уравнение движения имеет вид:
.
Так как для окружности , то мы получим
.
Зададим следующие начальные условия движения тела:
, .
Таким образом, для исследования характера движения тела необходимо найти решение задачи Коши:
.
Преобразуем её к системе дифференциальных уравнений первого порядка с начальными условиями:
.
Решим построенную систему методом Эйлера, используя формулы:
, , , ,
, , , для i = 2, 3, …, n + 1.
Получим таблично заданную зависимость S(t).
3. Алгоритм решения задачи
1. Вводим исходные данные V0, l, Tkon, n;
2. t1:=0; V1:=V0; S1:=0;
Проверка исходных данных производиться с помощью процедуры schityvanie.
3. schityvanie(var v0,l,Tkon:real; var n:integer);
4. Запись исходных данных производиться с помощью процедуры vvod_parametrov;
5. Записываем введённые данные с помощью процедуры zapis_parametrov в файл dannye.dan.
6. С помощью процедуры Max_Min определяем значения скорости V и пройденный путь S, а также находим максимальные и минимальные значения этих величин.
7. С помощью процедуры osi_koordinat строим оси координат для изображения графика зависимости S(t) и V(t).
8. С помощью процедуры MyGraphInit переводим режим работы компьютера с текстового на графический.
9. С помощью процедуры Graph_V выполняется построение графика зависимости V(t).
10. С помощью процедуры Graph_S выполняется построение графика зависимости S(t).
11. Результаты вычисления записываются в файл rezultat.dan с помощью процедуры Zapis_rez.
12. Процедура vybor обеспечивает выбор требуемой операции: ввод и контроль исходных данных, просмотр графиков V(t) и S(t), а также выход из программы.
13. Выполнение самой программы - последовательное выполнение всех процедур.
Алгоритм процедуры Max_Min
1. dt:=Tkon/n;
2. Для i:=2..n+1;
2.1. t:=(i-1)*dt;
2.2. v:=v-dt*9.8*sin(s/l);
2.3. s:=s+dt*v;
4. Схема алгоритма
Процедура schityvanie
Размещено на http://www.allbest.ru
алгоритм маятник колебание гармонический
Процедура vvod_parametrov
Размещено на http://www.allbest.ru
Процедура zapis_parametrov
Размещено на http://www.allbest.ru
Процедура Max_Min
Размещено на http://www.allbest.ru
Процедура osi_koordinat
Размещено на http://www.allbest.ru
Процедура MyGraphInit
Размещено на http://www.allbest.ru
Процедура Graph_V
Размещено на http://www.allbest.ru
Процедура Graph_S
Размещено на http://www.allbest.ru
Процедура Zapis_rez
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Процедура vybor
Размещено на http://www.allbest.ru
Размещено на http://www.allbest.ru
Схема головной программы
Размещено на http://www.allbest.ru
5. Таблица идентификаторов
Наименование |
физический смысл |
идентификатор |
|
Начальная скорость |
V0 |
V0 |
|
Длина нити |
l |
l |
|
Начальное время |
t1 |
t |
|
Конечное время |
tкон |
Tkon |
|
Число повторений |
n |
n |
|
Отклонение маятника |
S |
S |
|
Максимальное отклонение маятника |
Smax |
maxS |
|
Минимальное отклонение маятника |
Smin |
minS |
|
Скорость маятника |
V |
V |
|
Максимальная скорость маятника |
Vmax |
maxV |
|
Минимальная скорость маятника |
Vmin |
minV |
|
Счётчик |
--------- |
i |
6. Текст программы
program kursovoi_variant_24;
uses graph,crt;
var
dan,rez:text;
graphdriver,
GraphMode,
ErrorCode:integer;
v0,l,Tkon:real;
n:integer;
maxV,minV, maxS,minS:real;
procedure schityvanie(var v0,l,Tkon:real; var n:integer);
var z:integer;
s:char;
begin
clrscr;
{$I-}
assign(dan,'dannye.dan');
reset(dan);
z:=ioresult;
{I+}
if z<>0 then
begin
writeln('oshibka faila ''dannye.dan'' No:',z);
readkey;
Halt(1);
end;
readln(dan,s);
readln(dan,s);
read(dan,v0);
read(dan,l);
read(dan,Tkon);
read(dan,n);
close(dan);
end;
procedure vvod_parametrov(var v0,l,Tkon:real; var n:integer);
var i:integer;
s:char;
begin
repeat
clrscr;
writeln('ishodnymi dannumi yavlyautsa:');
writeln('na4al''naya skorost'' Vo: ',v0:4:3);
writeln('dlinna niti mayatnika L: ',l:4:3);
writeln('kone4noe vremya Tkon: ',tkon:4:3);
writeln('koli4estvo razbienei po vremeni n: ',n);
writeln('Vi hotite izmenit'' eti dannye?');
write('Da- y, Net- n, sdelaite vybor: ');
read(s);
if (s='y') or (s='Y') then
begin
write('vvedite na4al''nuju skorost'' Vo:');
readln(v0);
write('vvedite dlinnu niti mayatnika L: ');
readln(l);
write('vvedite kone4noe vremya Tkon (v sekundah): ');
readln(Tkon);
write('vvedite koli4estvo razbienei po vremeni n: ');
readln(n);
end;
if (s='n') or(s='N') then break
until (s='n') or (s='N');
end;
procedure zapis_parametrov(v0,l,Tkon:real;n:integer);
var z:integer;
s:char;
begin
clrscr;
{$I-}
assign(dan,'dannye.dan');
rewrite(dan);
z:=ioresult;
{I+}
if z<>0 then
begin
writeln('oshibka faila ''dannye.dan'' No:',z);
readkey;
Halt(1);
end;
writeln(dan,'na4al''nymi dannymi yavlyautsa:');
writeln(dan,' Vo L Tkon n');
write(dan,v0:10:3);
write(dan,l:10:3);
write(dan,Tkon:10:3);
write(dan,n:10);
close(dan);
end;
procedure Max_Min(var MaxV,MinV,maxS,minS:real);
var i:integer;
S,V,dt,t:real;
begin
v:=v0;s:=0; maxS:=s;minS:=s;maxV:=v;minV:=v;
dt:=Tkon/n;i:=1;t:=0;
for i:=2 to n+1 do
begin
t:=(i-1)*dt;
v:=v-dt*9.8*sin(s/l);
s:=s+dt*v;
if maxS<s then maxS:=s;
if minS>s then minS:=s;
if maxV<v then maxV:=v;
if minV>v then minV:=v;
end;
end;
procedure osi_koordinat(t,maxy,miny:real);
var i:integer;
dt,dy,x:real;
s:string;
begin
dt:=t/10;
dy:=abs(maxy-miny)/10;
setlinestyle(0,1,1);
line(100,20,100,320);
line(100,320,600,320);
for i:=0 to 10 do
begin
line(99,20+30*i,101,20+30*i);
x:=maxy-i*dy;
str(x:4:4,s);
moveTo(40,15+30*i);
outText(s);
line(100+50*i,319,100+50*i,321);
x:=0+i*dt;
str(x:4:3,s);
outtextXY(90+50*i,324,s);
end;
for I:=1 to 10 do
begin;
setLineStyle(1,1,1);
setColor(8);
line(103,20+30*(i-1), 600,20+30*(i-1));
line(100+50*i,318,100+50*i,20);
setLineStyle(0,1,1);
setColor(15);
end;
end;
procedure MyGraphInit;
begin
GraphDriver:=detect;
initGraph(graphdriver,GraphMode,'d:\bp\bgi');
ErrorCode:=graphresult;
if Errorcode<>grOk then
begin
writeln('proizoshla oshibka grafiki: ',grapherrormsg(errorCode));
writeln('rabota programmy prervana');
readln;
Halt(1);
end;
end;
procedure Graph_V;
var i,x,y:integer;
S,V,dt,t:real;
zn1:string;
begin
setcolor(6);
v:=v0;s:=0;
t:=0;
dt:=Tkon/n;
moveTo(round(100+t*500/Tkon),round( 320-(V-minV)*300/(maxV-minV) ));
for i:=2 to n+1 do
begin
t:=(i-1)*dt;
v:=v-dt*9.8*sin(s/l);
s:=s+dt*v;
str(v:4:4,zn1);
if v=maxV then begin x:=getX; y:=getY;
zn1:='maxV='+zn1;
outTextXY(100,380,zn1);moveTo(x,y);
end;
if v=minV then begin x:=getX; y:=getY;
zn1:='minV='+zn1;
outTextXY(100,400,zn1);moveTo(x,y);
end;
lineTo(round(100+t*500/Tkon),round( 320-(V-minV)*300/(maxV-minV) ));
end;
setcolor(15);outTextXY(100,420,'graphik zavisimosti V(t)')
end;
procedure Graph_S;
var i,x,y:integer;
S,V,dt,t:real;
zn1:string;
begin setcolor(6);
v:=v0;s:=0;
t:=0;
dt:=Tkon/n;
moveTo(round(100+t*500/Tkon),round( 320-(s-mins)*300/(maxS-minS) ));
for i:=2 to n+1 do
begin
t:=(i-1)*dt;
v:=v-dt*9.8*sin(s/l);
s:=s+dt*v;
str(S:4:4,zn1);
if s=maxS then begin x:=getX; y:=getY;
zn1:='maxS='+zn1;
outTextXY(100,380,zn1);moveTo(x,y);
end;
if S=minS then begin x:=getX; y:=getY;
zn1:='minS='+zn1;
outTextXY(100,400,zn1);moveTo(x,y);
end;
lineTo(round(100+t*500/Tkon),round( 320-(S-minS)*300/(maxS-minS) ));
end;setcolor(15);
outTextXY(100,420,'graphik zavisimosti S(t)')
end;
procedure Zapis_rez;
var i,z:integer;
S,V,dt,t:real;
begin
clrscr;
{$I-}
assign(rez,'rezultat.dan');
rewrite(rez);
z:=ioresult;
{I+}
if z<>0 then
begin
writeln('oshibka faila ''rezultat.dan'' No:',z);
readkey;
Halt(1);
end;
writeln(rez,'_________________________________________');
writeln(rez,'| i t V S|');
writeln(rez,'`---------------------------------------''');
v:=v0;s:=0;
dt:=Tkon/n;i:=1;t:=0;
if v=maxV then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== maxV') else
if v=minV then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== minV') else
if s=maxS then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== maxS') else
if s=minS then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== minS') else
writeln(rez,i:4,t:12:3,v:12:5,s:12:7);
for i:=2 to n+1 do
begin
t:=(i-1)*dt;s:=s+dt*v;
v:=v-dt*9.8*sin(s/l);
if v=maxV then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== maxV') else
if v=minV then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== minV') else
if s=maxS then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== maxS') else
if s=minS then writeln(rez,i:4,t:12:3,v:12:5,s:12:7,'====== minS') else
writeln(rez,i:4,t:12:3,v:12:5,s:12:7);
end;
close(rez);
end;
procedure vybor;
var s:char;
begin
repeat
RESTORECRTmODE;
clrscr;
writeln('1-ishodnue dannye');
writeln('2-graphik V(t)');
writeln('3-grafik S(t)');
writeln('9-EXIT');
writeln('sdelaite vybor nazhatiem');
writeln('sootvetstvyuschei knopki');
writeln;
writeln('rezultat vy4islenei sohranyaetsya v faile ''rezultat.dan'' ');
read(s);
clrscr;
begin
if s='1' then
begin
schityvanie(v0,l,Tkon,n);
vvod_parametrov(v0,l,Tkon,n);
zapis_parametrov(v0,l,Tkon,n);
Max_Min(MaxV,MinV,maxS,minS);
end;
if s='2' then
begin
myGraphInit;
getgraphmode;
ClearDevice;
osi_koordinat(Tkon,maxV,minV);
graph_V;readkey;
end;
if s='3' then
begin
myGraphInit;
getgraphmode;
ClearDevice;
osi_koordinat(Tkon,maxS,minS);
graph_S;readkey;
end;
end;
until s='9';
zapis_rez;
end;
begin
schityvanie(v0,l,Tkon,n);
Max_Min(MaxV,MinV,maxS,minS);
vybor;
closegraph;
end.
7. Результаты работы программы
_________________________________________
| i t V S|
`---------------------------------------'
1 0.000 0.05000 0.0000000====== maxV
2 0.045 0.04901 0.0022500
3 0.090 0.04704 0.0044553
4 0.135 0.04414 0.0065723
5 0.180 0.04037 0.0085588
6 0.225 0.03579 0.0103754
7 0.270 0.03051 0.0119862
8 0.315 0.02462 0.0133591
9 0.360 0.01824 0.0144669
10 0.405 0.01150 0.0152876
11 0.450 0.00453 0.0158050
12 0.495 -0.00253 0.0160087====== maxS
13 0.540 -0.00954 0.0158947
14 0.585 -0.01636 0.0154653
15 0.630 -0.02286 0.0147290
16 0.675 -0.02890 0.0137004
17 0.720 -0.03437 0.0124000
18 0.765 -0.03915 0.0108535
19 0.810 -0.04316 0.0090916
20 0.855 -0.04632 0.0071492
21 0.900 -0.04855 0.0050650
22 0.945 -0.04982 0.0028803
23 0.990 -0.05010 0.0006384====== minV
24 1.035 -0.04939 -0.0016161
25 1.080 -0.04770 -0.0038386
26 1.125 -0.04506 -0.0059849
27 1.170 -0.04152 -0.0080124
28 1.215 -0.03717 -0.0098809
29 1.260 -0.03207 -0.0115534
30 1.305 -0.02634 -0.0129965
31 1.350 -0.02009 -0.0141818
32 1.395 -0.01343 -0.0150856
33 1.440 -0.00651 -0.0156901
34 1.485 0.00053 -0.0159832====== minS
35 1.530 0.00757 -0.0159591
36 1.575 0.01446 -0.0156184
37 1.620 0.02106 -0.0149677
38 1.665 0.02724 -0.0140200
39 1.710 0.03288 -0.0127941
40 1.755 0.03787 -0.0113142
41 1.800 0.04211 -0.0096099
8. Графическая часть
9. Анализ результатов
В результате работы был исследован характер движения математического маятника в идеальных условиях, то есть без учёта сил сопротивления. В ходе исследования выяснилось, что если ничего не препятствует движению маятника, он может колебаться бесконечно, поддерживая постоянную скорость и амплитуду, наблюдаются гармонические колебания. Графики зависимости S(t) и V(t) изображают идеальные синусоиду и косинусоиду.
При данной длине нити маятника равной l = 1 м, начальной скорости, сообщённой маятнику, равной V0 = 0,05 м/с, в промежутке времени tкон = 1,8 c, были получены следующие результаты:
В абсолютном значении наибольшая величина скорости V = 0,05010 м/с зафиксировалась при t = 0.990 c, это скорость в момент, когда шарик проходит перпендикулярно оси X.
Минимальное значение скорости V = 0,00053 м/с зафиксирована при t = 1,485 с.
Литература
1. Рапаков Г.Г., РжеуцкаяС.Ю. Тurbo Pascal для студентов и школьников. - СПБ.: БХВ- Петербург. 2004. - 352 с.:ил.
2. Анципорович П.П., Алейникова О.И., Булгак Т.И., Луцко Н.Я. Информатика. Учебно-метод. Пособие к лабораторным работам для студ. машиностроит. спец. В 4 ч. - Мн.: БНТУ, 2004.
Приложение
Решение задачи с использование Microsoft Excel
Решим поставленную задачу методом Эйлера, используя формулы:
, , , ,
, , , для i = 2, 3, …, n + 1.
Получим таблично заданную зависимость S(t).
Размещено на Allbest.ru
Подобные документы
Разработка имитационной модели для изучения движения нелинейного маятника с графическим отображением в ГИС Maple в режиме функционирования системы наблюдений без задержки времени. Гармонические и периодические колебания маятника. Теорема Гюйгенса.
курсовая работа [1,3 M], добавлен 29.05.2014Анализ преимуществ и недостатков различных численных методов решения дифференциальных уравнений высших порядков. Обоснование выбора метода Рунге-Кутта четвертого порядка. Разработка программы, моделирующей физическое и математическое поведение маятника.
курсовая работа [1,6 M], добавлен 11.07.2012Определение ускорения свободного падения с помощью физического маятника. Период колебания физического маятника. Нахождение ускорения свободного падения методом наименьших квадратов. Решение задач методами Гаусса-Ньютона и квазиньютоновскими методами.
лабораторная работа [32,4 K], добавлен 29.03.2015- Исследование движения тела, брошенного под углом к горизонту, с учетом горизонтального сопротивления
Математическая модель задачи для исследования характера движения тела. Решение задачи Коши для системы дифференциальных уравнений первого и второго порядка. Использование метода Эйлера. Схема алгоритма, таблица идентификаторов, программа на языке Pascal.
курсовая работа [137,9 K], добавлен 07.03.2013 Физическая и математическая модели уравнения движения материальной точки. Блок-схема алгоритма основной программы для решения задачи Коши и получения результатов с фиксированным количеством отрезков разбиения. Разработка программы для ЭВМ, ее листинг.
курсовая работа [212,3 K], добавлен 24.11.2014Постановка нелинейной задачи. Кусочно-линейная и кусочно-постоянная аппроксимация нелинейностей. Сопровождающая кусочно-линейная задача минимальной интенсивности. Свойства оптимальной стартовой обратной связи. Стабилизация перевернутого маятника.
дипломная работа [412,8 K], добавлен 28.05.2013Фурье и Данцига как основоположники методов математического программирования. Знакомство с теорией решения транспортных задач. Анализ способов применения симплекс-метода. Рассмотрение примера решения транспортной задачи в области электроэнергетики.
презентация [981,0 K], добавлен 28.04.2014Анализ процесса обработки информации и выбор структур данных для хранения. Методы решения задачи и разработка основных алгоритмов предметной области. Структурная схема программного продукта. Описание эмуляции команды FSUB математического сопроцессора.
курсовая работа [172,6 K], добавлен 22.02.2011Разработка программного обеспечения заданной информационной системы. Описание алгоритма и математического метода решения задачи. Этапы формирования и реализации программы, ее листинг и оценка функциональности. Разработка инструкции пользователя.
курсовая работа [223,9 K], добавлен 23.06.2015Рассмотрение общей характеристики данных. Исследование особенностей и назначения линейных, табличных и иерархических структур данных, анализ процесса их упорядочения. Рассмотрение основных режимов обработки данных. Описание алгоритма решения задачи.
реферат [27,4 K], добавлен 20.04.2019