Автор работы: Пользователь скрыл имя, 04 Апреля 2014 в 16:47, курсовая работа
MATLAB включает в себя вычисления, визуализацию и программирование в удобной среде, где задачи и решения выражаются в форме, близкой к математической. Типичное использование MATLAB - это: математические вычисления, создание алгоритмов, моделирование, анализ данных, исследования и визуализация, научная и инженерная графика, разработка приложений, включая создание графического интерфейса.
Программы, написанные на MATLAB, бывают двух типов — функции и скрипты. Функции имеют входные и выходные аргументы, а также собственное рабочее пространство для хранения промежуточных результатов вычислений и переменных. Скрипты же используют общее рабочее пространство. Как скрипты, так и функции не компилируются в машинный код и сохраняются в виде текстовых файлов.
Рис. 2.1 – Траектория движения артиллерийских снарядов
Законы полета метательных снарядов не привлекали особого внимания ученых до тех пор, пока не были изобретены дальнобойные орудия, которые посылали снаряд через холмы или деревья – так, что стреляющий не видел их полета.
Сверхдальняя стрельба из таких орудий на первых порах использовалась в основном для деморализации и устрашения противника, а точность стрельбы не играла вначале особенно важной роли.
Близко к правильному решению о полете пушечных ядер подошел итальянский математик Тарталья, он сумел показать, что наибольшей дальности полета снарядов можно достичь при направлении выстрела под углом 45° к горизонту. В его книге "Новая наука" были сформулированы правила стрельбы, которыми артиллеристы руководствовались до середины ХVII века.
Однако, полное решение проблем, связанных с движением тел брошенных горизонтально или под углом к горизонту, осуществил все тот же Галилей. В своих рассуждениях он исходил из двух основных идей: тела, движущиеся горизонтально и не подвергающиеся воздействию других сил будут сохранять свою скорость; появление внешних воздействий изменит скорость движущегося тела независимо от того, покоилось или двигалось оно до начала их действия. Галилей показал, что траектории снарядов, если пренебречь сопротивлением воздуха, представляют собой параболы. Галилей указывал, что при реальном движении снарядов, вследствие сопротивления воздуха, их траектория уже не будет напоминать параболу: нисходящая ветвь траектории будет идти несколько круче, чем расчетная кривая.
Ньютон и другие ученые разрабатывали и совершенствовали новую теорию стрельбы, с учетом возросшего влияния на движение артиллерийских снарядов сил сопротивления воздуха. Появилась и новая наука – баллистика. Прошло много-много лет, и теперь снаряды движутся столь быстро, что даже простое сравнение вида траекторий их движения подтверждает возросшее влияние сопротивления воздуха.
В современной баллистике для решения подобных задач используется электронно–вычислительная техника – компьютеры, а мы пока ограничимся простым случаем – изучением такого движения, при котором сопротивлением воздуха можно пренебречь. Это позволит нам повторить рассуждения Галилея почти без всяких изменений.
Изучим движение тела, брошенного с начальной скоростью V0 под углом α к горизонту, рассматривая его как материальную точку массы m. При этом сопротивлением воздуха пренебрежём, а поле тяжести будем считать однородным (Р=const), полагая, что дальность полёта и высота траектории малы по сравнению с радиусом Земли.
Поместим начало координат О в начальном положении точки. Направим ось Oy вертикально вверх; горизонтальную ось Ox расположим в плоскости, проходящей через Оy и вектор V0, а ось Oz проведём перпендикулярно первым двум осям (рис.2.2). Тогда угол между вектором V0 и осью Ox будет равен α.
Рис.2.2 – Движение тела, брошенного под углом к горизонту.
Изобразим движущуюся точку М где-нибудь на траектории. На точку действует одна только сила тяжести F, проекции которой на оси координат равны:
Подставляя эти величины в дифференциальные уравнения и замечая, что
и т.д. мы после сокращения на m получим:
Умножая обе части этих уравнений на dt и интегрируя, находим:
Начальные условия в нашей задаче имеют вид:
при t=0:
Удовлетворяя начальным условиям, будем иметь:
Подставляя эти значения C1, C2 и C3 в найденное выше решение и заменяя Vx, Vy, Vz на
придём к уравнениям:
Интегрируя эти уравнения, получим:
Подстановка начальных данных даёт C4=C5=C6=0, и мы окончательно находим уравнения движения точки М в виде:
Из последнего уравнения следует, что движение происходит в плоскости Оxy.
Имея уравнение движения точки, можно методами кинематики определить все характеристики данного движения.
Найдем время полета тела от начальной точки до точки падения.
Время полета:
clc; %очистка командного окна
v0=36; %начальная скорость
g=9.81; %ускорение свободного падения
k=1;
alfa=pi/3; %угол, под которым брошено тело
m=(2*v0*sin(alfa))/g %время полета
while k<5
k=menu('выбрать категорию', ...
sprintf('зависимость координаты х от t'), ...
sprintf('зависимость координаты у от t'), ...
sprintf('график движения тела брошенного под углом к горизонту'), ...
sprintf('динамическая
модель движения тела
'выход’);
if k == 1
t=0:0.001:m;
x=v0*t*cos(alfa);
plot(x);
title('зависимость координаты
xlabel('x'); ylabel('y');
elseif k == 2
t=0:0.001:m;
y=v0*t*sin(alfa)-(g*t.^2)/2;
plot(y);
title('зависимость координаты y от t');
xlabel('x'); ylabel('y');
elseif k == 3
t=0:0.001:m;
x=v0*t*cos(alfa);
y=v0*t*sin(alfa)-(g*t.^2)/2;
plot(x,y);
title('график движения тела брошенного под углом к горизонту');
xlabel('x'); ylabel('y');
elseif k == 4
t=0:0.001:m;
x=v0*t*cos(alfa);
y=v0*t*sin(alfa)-(g*t.^2)/2;
comet(x,y);
title('динамическая модель движения тела брошенного под углом к горизонту');
xlabel('x'); ylabel('y');
end;
end;
Данная программа содержит функции и процедуры такие как clc, plot, menu, comet и др., а также переменные и их значения.
Опишем процедуры и функции использованные в данной программе:
CLC. Команда, предназначенная для очистки командного окна.
MENU. Удобным инструментом выбора одной из альтернатив будущих вычислительных действий является функция menu, которая создает окно пользовательского меню. К функции menu нужно обращаться следующим образом:
K=MENU('ЗАГОЛОВОК МЕНЮ','альтернатива 1','альтернатива 2','альтернатива n')
Такое обращение приводит к появлению окна меню (см. рис.2.3).
Рисунок 2.3 – Окно меню.
Выполнение программы временно приостанавливается, и система ожидает выбора одной из кнопок меню с альтернативами. После правильного выбора исходному параметру k присваивается значение, соответствующее номеру альтернативы (1,2…n). В общем случае число альтернатив может достигать 32.
WHILE. Оператор цикла с предусловием имеет такой вид:
While <условие>
<операторы>
end
Операторы внутри цикла выполняются лишь в случае, если выполнено условие, записанное после слова while. При этом среди операторов внутри цикла обязательно должны быть такие, которые изменяют значение одной из переменных.
SPRINTF. Функция, которая на каждой кнопке меню размещает информацию о текущем значении соответствующего параметра.
IF. В общем виде синтаксис оператора условного перехода таков:
If <условие>
<операторы1>
Else
<операторы2>
End
Работает этот оператор следующим образом. Сначала производится проверка, выполняется ли указанное условие. Если результат проверки положителен, программа выполняет совокупность операторов <операторы1>. В противном случае выполняется последовательность операторов <операторы2>.
PLOT. Основной функцией обеспечивающей построение графиков на экране дисплея, является plot (см. рис 2.4). Общая форма обращения к ней такова:
Plot(x1,y1,s1,x2,y2,s2…)
Здесь x1,y1 – заданные векторы, элементами которых являются массивы значений аргумента (х1) и функции (у1), отвечающие первой кривой графика; х2,у2 – массивы значений аргумента и функции второй кривой и т.д. При этом предполагается, что значение аргумента откладываются вдоль горизонтальной оси графика, а значение функции – вдоль вертикальной оси. Переменные s1,s2,… являются символьными (их указание не является обязательным).
Рисунок 2.4 – Действие фенкции plot.
TITLE. Процедура, с помощью которой задается заголовок графика.
XLABEL и YLABEL. Функции, задающие объяснения вдоль горизонтальной и вертикальной осей.
COMET. Процедура comet(x,y) («комета») строит график зависимости у(х) постепенно в виде траектории кометы. При этом «изображающая» точка на графике имеет вид маленькой кометы, которая плавно перемещается от одной точки к другой.
В конечном итоге, программа показывает, как движется тело, брошенное под углом к горизонту. Также в программе можно увидеть зависимость координат тела от времени (см рис. 2.5 и рис. 2.6), график траектории тела (см. рис. 2.7) и саму модель движения тела (см. рис.2.8).
Рисунок 2.5 – График зависимости x от t.
Рисунок 2.6 – График зависимости y от t.
Рисунок 2.7 – График движения тела, брошенного под углом к горизонту.
Рисунок 2.8 – Динамическая модель движения тела, брошенного под углом к горизонту.
Курсовой проект выполнен в среде MatLab 6.5. Разработка проекта проходила в несколько стадий, заключавшихся в изучении предметной области задачи; изучении основных законов механики; разработке самой программы, позволяющей моделировать движение тела, брошенного под углом к горизонту.
Результатом проделанной работы стала программа, реализующая модель движения тела, брошенного под углом к горизонту.
Практическая ценность программы заключается в том, что она наглядно показывает как движется тело брошенное под углом к горизонту.
Также курсовая работа поспособствовала развитию навыков самостоятельного планирования и выполнения научно-исследовательской работы, получению опыта сбора и обработки исходного материала, анализа научно-технической литературы, справочников, стандартов и технической документации, приобретению навыков обоснования принимаемых проектных решений и профессионального оформления проектной документации.
Приложение к данной курсовой работе является DVD–RV диск, на котором имеется электронный вариант курсовой работы, а также рабочая программа к курсовой работе, установочная версия программа MATLAB и презентация по данной теме.
Информация о работе MATLAB и его связь с другими языками программирования