Программное обеспечение для расчета траектории снаряда
Изучение структуры баллистического метода. Свойства параболической траектории. Дифференциальные уравнения поступательного движения. Методы решения задачи внешней баллистики. Свойства траектории снаряда в воздухе. Язык программирования и среда разработки.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 07.08.2018 |
Размер файла | 2,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Действительные условия стрельбы всегда отличаются от нормальных, и поэтому действительная (возмущенная) траектория будет отличаться от нормальной. Зная элементы нормальной траектории, можно получить элементы действительной путем введения в первые поправок на отклонение действительных условий стрельбы от нормальных. Можно, наоборот, с помощью поправок действительную траекторию превратить в нормальную, т. е. привести к нормальным условиям стрельбы.
Из основных элементов траектории снаряда в опорных точках с наибольшей точностью необходимо знать полную горизонтальную дальность Х, так как от этого зависит точность наведения орудия на цель. При нормальных условиях Хn является функцией только трех основных баллистических параметров: Xn=,. В реальных условиях величина Х будет, кроме того, зависеть от целого ряда факторов:
1 метеорологических условий стрельбы (температуры и давления воздуха ф и h, составляющих скорости ветра Wх и Wz.
2 геофизических факторов (величины и направления ускорения силы тяжести, ускорения Кориолиса от вращения Земли, кривизны поверхности Земли).
3 параметров движения носителя (величины и направления вектора скорости его центра масс, вращения относительно центра масс).
1.12 Явление рассеивания снарядов
При стрельбе в одинаковых условиях траектории снарядов получаются неодинаковыми и распределяются в пространстве пучком (снопом - рис. 1.10.). Это явление называется рассеиванием снарядов. Если пересечь пучок траекторий плоскостью, то на ней распределятся точки падения снарядов, а само распределение точек падения называется рассеиванием снарядов при ударной стрельбе. При стрельбе снарядами, снабженными дистанционными взрывателями, точки разрывов снарядов будут распределяться в пространстве, а само распределение точек разрывов называется рассеиванием снарядов при дистанционной стрельбе.
Причина рассеивания снарядов заключается в неоднообразии характеристик снаряда и метательного заряда, состояния орудия и атмосферы, работы номеров орудийного расчета. В пучке траекторий можно выделить среднюю траекторию, которой на плоскости будет соответствовать точка падения, называемая центром группирования. Отклонение каждой точки падения от центра группирования является случайным и возникает в результате действия большого числа независимых элементарных отклонений характеристик стрельбы.
Рис. 1.10. - Сноп траекторий
Поэтому рассеивание снарядов подчиняется нормальному закону распределения, основные положения которого состоят в следующем:
* распределение точек падения происходит на площади, ограниченной замкнутой кривой типа эллипса;
* распределение неравномерно, плотность точек падения будет наибольшей в центре эллипса;
* распределение точек падения симметрично относительно главных осей эллипса.
* объем, в котором будут распределяться точки разрывов при дистанционной стрельбе, ограничен поверхностью эллипсоида.
В артиллерии в качестве меры оценки рассеивания случайной величины x принято срединное отклонение Е, такое, вероятность превышения которого равна 0,5.
При ударной стрельбе по местности рассматриваются срединные отклонения снарядов: по дальности, по направлению (боковое) Вб по высоте Вв.
На практике считают, что пределы рассеивания снарядов равны четырем срединным отклонениям от центра группирования (+-4Вд). При этом допущении строится шкала рассеивания (рис. 1.11), позволяющая определить вероятность заданного отклонения. Так, вероятность получить отклонение в пределах от 2Вд до 3Вд до равна 16%, а вероятность перелета снаряда при совпадении центра группирования с целью - 50%.
Рис 1.11. - Шкала рассеивания по дайльности
Рассеивание снарядов может меняться в широких пределах в зависимости от условий стрельбы. На полигоне стрельбы проводятся со всей возможной тщательностью, поэтому рассеивание снарядов будет минимальным, зависящим только от уровня развития науки и техники. Оно вносится в таблицы стрельбы и называется табличным (или техническим) рассеиванием. Отношение табличного срединного отклонения к дальности Х является показателем кучности боя снарядов. Для современных снарядов это отношение колеблется от 1/200 до 1/450.
1.12 Рассеивание снарядов по дальности
Будем рассматривать техническое рассеивание снарядов, т.е. рассеивание полных горизонтальных дальностей, полученных при нормальных условиях. Из основной задачи внешней баллистики известно, что дальность зависит только от трех основных баллистических параметров: Xn=.
Следовательно, техническое рассеивание снарядов по дальности определяется рассеиванием баллистического коэффициента с, начальной скорости v0 угла бросания ио.
Рассеивание баллистических коэффициентов зависит от рассеивания коэффициента формы снаряда i, диаметра d и массы снаряда q. Коэффициент формы снаряда зависит от размеров его отдельных частей: головной, оживальной, цилиндрической и запоясковой части, ведущего пояска, а также от чисто- ты обработки внешней поверхности снаряда и от угла нутации. Для устойчивого полета снаряда при стрельбе из малоизношенного ствола среднее по времени полета значение угла нутации равно приблизительно одному градусу. Рассеивание зависит, главным образом, от рассеивания эксцентриситета масс, т.е. отклонения центра массы снаряда от его оси. Срединное отклонение угла нутации, установленное по результатам стрельб, равно 30% и является определяющим в срединном отклонении баллистического коэффициента rc. На основании обработки большого числа опытных стрельб получены следующие средние значения rc: для снарядов дальнобойной формы rc =0,5%; для снарядов старой формы rc =1%.
Рассеивание начальных скоростей возникает вследствие того, что в процессе изготовления боеприпасов рассеиваются массы снарядов, пороховых зарядов и воспламенителей, размеры ведущих поясков и пороховых зерен, а при заряжании орудия - объемы камор. При существующих в производстве допусках главной причиной рассеивания начальных скоростей снарядов является рассеивание масс пороховых зарядов и воспламенителей, объемов камор и давлений форсирования. Среднее опытное значение срединных отклонений начальных скоростей при начальных скоростях, больших 400 м/с, равно 0,22%, а при меньших скоростях возрастает до 0,70%.
Угол бросания и состоит из суммы двух углов: угла возвышения ? и угла вылета г, и, следовательно, от их рассеивания зависит рассеивание углов бросания при стрельбе. В условиях полигона угол возвышения измеряется квадрантом с ошибкой, не превосходящей одной угловой минуты, поэтому рассеивание углов возвышения сказывается незначительно. Рассеивание углов вылета в основном определяется зазорами, имеющимися между снарядом и поверхностью канала ствола, а также кривизной ствола. В момент вылета из канала ствола снаряд обладает не только продольной скоростью, но и поперечной, рассеивание которой и является причиной рассеивания углов вылета.
В артиллерии в качестве меры углов используется деление угломера (д.у.), т.е. центральный угол, опирающийся на дугу, составляющую 1/6000 часть длины окружности, и равный 3,6 угловой минуты. При этом длина дуги будет равна приблизительно одной тысячной радиуса окружности (дистанции стрельбы), поэтому вместо термина «деление угломера» употребляют также термин «тысячная дистанции» (т.д.).
На основании большого числа опытных стрельб установлены следующие значения срединных отклонений углов бросания: для малых калибров (до 76 мм) - 0,5…0,7 д.у., для средних (76…152 мм) - 0,4 д.у., для крупных (более 152 мм) - 0,3 д.у. 0иr
Рассеивание каждого из трех основных баллистических параметров является независимым и вносит свою долю в рассеивание дальностей полета снаряда. Соответствующие срединные отклонения дальности определяются по формулам
Анализ причин рассеивания снарядов по дальности позволяет сделать общие выводы.
1. На величину B, выраженную в процентах от дальности, при малых начальных скоростях оказывает наибольшее влияние, а при больших начальных скоростях -rc.
2. С увеличением начальной скорости величина B сначала убывает до. v= 400 м/c
3. С увеличением угла бросания величина быстро уменьшается до 10°…20°, а затем медленно растет. С увеличением баллистического коэффициента величина слабо убывает, а затем начинает возрастать.
Величина B является одной из характеристик качества снарядов. Поэтому при принятии нового образца на вооружение и изготовленных валовых партий на полигоне проводятся испытания снарядов на кучность.
2. Разработка программы
В соответствии с поставленной задачей был спроектирован программный продукт для расчёта траектории полёта снаряда. Программа должна иметь простой для понимания и удобный интерфейс.
Для выполнения поставленной задачи перед началом процесса разработки был проведен анализ по выбору средств разработки. При выборе языка программирования были учтены некоторые факторы.
2.1 Язык программирования и среда разработки
Цели проекта никак не ограничивали выбор языка программирования. Для их достижения могли быть выбраны следующие языки: C#, Java, C++. На компьютере, использовавшемся для разработки, имелась лицензия Microsoft Visual Studio 2012 Ultimate, поэтому средой разработки была выбрана именно она. Языком программирования же был выбран C#, т.к. имелся определенный опыт работы на нем.
2.1.1 Язык программирования C#
С# - объектно-ориентированный язык программирования, разработанный в компании Microsoft как язык разработки приложений для платформы Mircosoft.NET Framework. Впоследствии он был стандартизирован как ECMA-334 и ISO/IEC 23270.
C# является языком с C-подобным синтаксисом, и его синтаксис наиболее близок к Java и C++. C# поддерживает наследование, полиморфизм, перегрузку операторов, статическую типизацию, LINQ, обобщенные методы и типы, итераторы, исключения. Объектно-ориентированный подход позволяет решить задачи по построению крупных, но в тоже время гибких, масштабируемых и расширяемых приложений. Так же C# исключает некоторые модели и действия, показавшие себя как проблематичные при разработке программных систем. Например, C# не поддерживает множественное наследование классов (в отличие от C++), но, между тем, допускается множественное наследование интерфейсов.
C# разрабатывался как язык программирования прикладного уровня для CLR и, как можно догадаться, зависит, прежде всего, от возможностей самой CLR. Это относится, прежде всего, к системе типов C#, которая отражает BCL (стандартная библиотека классов платформы.NET Framework). Наличие или отсутствие тех или иных выразительных особенностей языка диктуется тем, может ли конкретная языковая особенность быть переведена в соответствующие конструкции CLR. Так, с развитием CLR от версии 1.1 к 2.0 значительно обогатился и сам C#; подобного взаимодействия следует ожидать и в дальнейшем (однако, эта закономерность была нарушена с выходом C# 3.0, представляющего собой расширения языка, не опирающиеся на расширения платформы.NET). CLR предоставляет C#, как и всем другим.NET-ориентированным языкам, многие возможности, которых лишены «классические» языки программирования. Например, сборка мусора не реализована в самом C#, а производится CLR для программ, написанных на C# точно так же, как это делается для программ на VB.NET, J# и др.
Как язык высокого уровня, C# имеет определенный набор основных элементов. К ним относятся:
· алфавит, включающий прописные и строчные буквы латинского алфавита, знак подчеркивания, арабские цифры от 0 до 9, специальные символы (+ - * / =,<>:=.: ; и др.), пробелы, зарезервированные слова (слова на английском языке, указывающие компилятору на необходимость выполнения определенных действий);
· идентификаторы, которыми программист обозначает любой другой элемент программы, кроме идентификатора, комментария и зарезервированного слова; они состоят из латинских букв, арабских цифр и знака подчеркивания;
· константы - целые, вещественные, шестнадцатеричные числа, логические константы, символы, строки символов, конструкторы множеств и null (признак неопределенного указателя);
· выражения - константы, переменные, обращения к функциям, соединенные знаками операций и скобками; операции - унитарные (~), мультипликативные (*, /, &, |), аддитивные (+, -), отношения (==, !=, <=, >=, <, >).
2.1.2 Visual Studio
Microsoft Visual Studio - линейка продуктов компании Microsoft, включающих интегрированную среду разработки программного обеспечения и ряд других инструментальных средств. Данные продукты позволяют разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии Windows Forms, а также веб-сайты, веб-приложения, веб-службы как в родном, так и в управляемом кодах для всех платформ, поддерживаемых Windows, Windows Mobile, Windows CE,.NET Framework, Xbox, Windows Phone.NET Compact Framework и Silverlight.
Visual Studio включает в себя редактор исходного кода с поддержкой технологии IntelliSense и возможностью простейшего рефакторинга кода. Встроенный отладчик может работать как отладчик уровня исходного кода, так и отладчик машинного уровня. Остальные встраиваемые инструменты включают в себя редактор форм для упрощения создания графического интерфейса приложения, веб-редактор, дизайнер классов и дизайнер схемы базы данных. Visual Studio позволяет создавать и подключать сторонние дополнения (плагины) для расширения функциональности практически на каждом уровне, включая добавление поддержки систем контроля версий исходного кода (как, например, Subversion и Visual SourceSafe), добавление новых наборов инструментов (например, для редактирования и визуального проектирования кода на предметно-ориентированных языках программирования) или инструментов для прочих аспектов процесса разработки программного обеспечения (например, клиент Team Explorer для работы с Team Foundation Server).
Visual Studio можно использовать для создания различных типов приложений, от простых приложений для магазина и игр для мобильных клиентов до больших и сложных систем, обслуживающих предприятия и центры обработки данных. Используя эту среду, можно создавать:
1. Приложения и игры, которые выполняются не только на платформе Windows, но и на Android и iOS.
2. Веб-сайты и веб-службы на основе ASP.NET, JQuery, AngularJS и других популярных платформ.
3. Приложения для самых разных платформ и устройств, включая, но не ограничиваясь: Office, Sharepoint, Hololens, Kinect.
2.2 Функциональная схема программы
При разработке программы «Бронирование столов» была составлена блок-схема работы программы, в которой отражена логика работы приложения (рис 2.1.).
Из схемы следует, что после запуска программы пользователь вводит значения скорости, угла, и баллистического коэффициента. После нажатия кнопки «Расчёт» программа находит необходимы значения с помощью метода Рунге Кутта. Как только все решения будут найдены, будет построен график траектории полёта снаряда.
Рис. 2.1. - Блок-схема работы программы
2.3 Работа программы
При запуске программы перед пользователем открывается главное окно (рис. 2.1.), в котором находятся следующие элементы: Label «Начальная скорость», Label «Начальный угол», Label «Баллистический коэффициент» и соответствующие им TextBox поля, поле Chart и кнопка «Расчёт»
Рис. 2.2. - Окно программы
После нажатия на кнопку «Расчёт» происходит поиск решения и построение графика по нему.
Рис. 2.3. - Результат решения
Перспективы разработки:
В программе ведутся разработки возможности улучшения методов решения и интеграция табличных методов для более точных расчётов. На текущем этапе разработки стало понятно, что решение системы баллистических уравнений методом Рунге Кутта 4 порядка не все цело корректно, в силу особенности данной системы. Для более точных расчётов также необходимы экспериментальные данные. Так же рассматривается возможность ввода поправочных коэффициентов и кучности.
Заключение
В ходе выполнения бакалаврской работы была разработана программа для расчёта траектории полёта снаряда. Перед разработчиком стояла задача - создать надежное и понятное программное обеспечение, соответствующее всем требованиям технического задания проекта.
Разработанная программа полностью соответствует заданию бакалаврской работы. В приложении реализован функционал:
· достигнуто понимание основ баллистики;
· найдено аналитического уравнение задачи баллистики;
· написан метод решающий данное уравнение методом Рунге Кутта;
· реализовано построение графика;
В ходе разработки были изучены материалы по баллистике и методах решения её задач и документация для Microsoft Visual Studio. Данная документация помогла реализовать большую часть задуманного для данной программы функционала.
Данная программа является неплохим решением проблемы, обусловившую ее актуальность, а именно реализация приложения для минимизации возникновения ошибок при подсчётах вследствие человеческого фактора.
В дальнейшем программу можно модифицировать, изменив интерфейс на более наглядный и приятный для пользователя.
Список использованных источников
1. Язык программирования C# [Электронный ресурс]
2. Mircosoft Visual Studio [Электронный ресурс] / 2017.
3. MSDN - сеть разработчиков [Электронный ресурс]
4. Краткий курс баллистики [Электронный ресурс] -
5. Решение нелинейных уравнений и систем нелинейных уравнений [Электронный ресурс] / 2015.
6. Использование технологий управления данными для автоматизации работы организации [Электронный ресурс]
7. Аппроксимация закона сопротивления воздуха 1943 г
8. Метод Рунге-Кутты [Электронный ресурс]
Приложение А
Презентационный материал
Приложение Б
баллистика снаряд программирование задача
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace WindowsFormsApplication1
{
class RungeKutte
{
public static double HSwitch(double y)
{
double H=0;
if (y<500) H=1.225;
if (500 <= y && y < 1000) H=1.1673;
if (1000 <= y && y < 1500) H=1.1117;
if (1500 <= y && y < 2000) H=1.0581;
if (2000 <= y && y < 2500) H=1.0065;
if (2500 <= y && y < 3000) H=0.9596;
if (3000 <= y && y < 4000) H = 0.9093;
if (4000 <= y && y < 5000) H=0.8194;
if (5000 <= y) H = 0.7365;
return H;
}
public static void Runge(double vel, double angle, double c, out List<double> XCoor, out List<double> YCoor, out double t)
{
XCoor = new List<double>();
YCoor = new List<double>();
XCoor.Add(0);
YCoor.Add(0);
List<double> velList = new List<double>();
double g = 9.8;
double k1,k2,k3,k4;
double x=0, y= 0, H = 0;
t = 0;
do
{
if (angle > 0)
{
H = HSwitch(y);
double h1 = 10;
double angle1 = Math.PI * angle / 180.0;
double h11 = Math.PI * angle / 180.0;
k1 = (-1) * (c / g * H * (0.00007454 * Math.Pow(vel, 2)) * (vel / Math.Cos(angle1)));
k2 = (-1) * (c / g * H * (0.00007454 * Math.Pow(vel + h1 * k1 / 2, 2)) * (vel + h1 * k1 / 2) / Math.Cos(angle1 + h11 / 2));
k3 = (-1) * (c / g * H * (0.00007454 * Math.Pow(vel + h1 * k2 / 2, 2)) * (vel + h1 * k2 / 2) / Math.Cos(angle1 + h11 / 2));
k4 = (-1) * (c / g * H * (0.00007454 * Math.Pow(vel + h1 * k3, 2)) * (vel + h1 * k3) / Math.Cos(angle1 + h11));
y =y+(Math.Pow(vel, 2) / g * Math.Pow(Math.Cos(angle1), 2) * Math.Tan(angle1));
x =x+(Math.Pow(vel, 2) / g * Math.Pow(Math.Cos(angle1), 2));
t =t+h1*(vel / g * Math.Pow(Math.Cos(angle1), 2));
vel = vel + h1 / 6 * (k1 + 2 * k2 + 2 * k3 + k4);
angle = angle - h1;
XCoor.Add(x);
YCoor.Add(y);
velList.Add(x);
}
else {
H = HSwitch(y);
double h1 = 5;
double angle1 = Math.PI * angle / 180.0;
double h11 = Math.PI * angle / 180.0;
k1 = (c / g * H * (0.00007454 * Math.Pow(vel, 2)) * (vel / (-1)*Math.Cos(angle1)));
k2 = (c / g * H * (0.00007454 * Math.Pow(vel + h1 * k1 / 2, 2)) * (vel + h1 * k1 / 2) / (-1)*Math.Cos(angle1 + h11 / 2));
k3 = (c / g * H * (0.00007454 * Math.Pow(vel + h1 * k2 / 2, 2)) * (vel + h1 * k2 / 2) / (-1)*Math.Cos(angle1 + h11 / 2));
k4 = (c / g * H * (0.00007454 * Math.Pow(vel + h1 * k3, 2)) * (vel + h1 * k3) / (-1)*Math.Cos(angle1 + h11));
y = y - (Math.Pow(vel, 2) / g * Math.Pow(Math.Cos(angle1), 2) * (-1)*Math.Tan(angle1));
x = x +(Math.Pow(vel, 2) / g * Math.Pow(Math.Cos(angle1), 2));
t = t + h1 * (vel / g * Math.Pow(Math.Cos(angle1), 2));
vel = vel + h1 / 6 * (k1 + 2 * k2 + 2 * k3 + k4);
angle = angle - h1;
XCoor.Add(x);
YCoor.Add(y);
velList.Add(x);
}
} while (y > 0);
}
}
}
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Ballistic
{
public partial class Form1: Form
{
public List<double> XCoor = new List<double>();
public List<double> YCoor = new List<double>();
public double t;
public Form1()
{
InitializeComponent();
}
private void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
double vel = Convert.ToDouble(textBox1.Text);
double angle = Convert.ToDouble(textBox4.Text);
double [] X;
double [] Y;
double c = Convert.ToDouble(textBox3.Text);
RungeKutte.Runge(vel, angle, c, out XCoor, out YCoor, out t);
X = XCoor.ToArray();
Y = YCoor.ToArray();
chart1.Series[0].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
for (int i = 0; i<X.Length; i++)
{
chart1.Series[0].Points.AddXY(X[i], Y[i]);
}
}
}
}
Размещено на Allbest.ru
Подобные документы
Изучение баллистикой процессов, протекающих внутри канала ствола при выстреле. Совокупность влияний на полет снаряда, исследование траектории пули в воздухе. Проверка корректности расчетов и обработка в Matlab. Построение графиков и листинг программы.
курсовая работа [1,6 M], добавлен 02.03.2011Движение управляемого снаряда (по продольному каналу) под действием порохового ускорителя и описанием с помощью системы дифференциальных уравнений второго порядка. Разработка алгоритма расчета фазовой траектории управляемого процесса в программе.
контрольная работа [394,1 K], добавлен 09.06.2013Динамика движения материальной точки. Разработка программы, моделирующей траектории полета снаряда при стрельбе из пушки под заданным углом к горизонту. Ее структурная схема, системные требования к ней. Создание приложения в среде Borland C++Builder.
курсовая работа [3,2 M], добавлен 10.06.2014Разработка и написание программы по моделированию движения снаряда при заданных параметрах пути, максимальной высоты, времени полета и траектории. Анализ методов построения модели, разработка алгоритма, написание и отладка программы в среде Delphi.
курсовая работа [214,5 K], добавлен 11.02.2011Особенности применения автономных необитаемых подводных аппаратов (АНПА) в задачах обследования акватории, их виды и основные задачи. Система автоматизации подготовки программы-задания для АНПА. Программное обеспечение для формирования траектории.
дипломная работа [3,3 M], добавлен 19.12.2011Разработка компьютерных игр как зрелищная и наиболее сложная отрасль программирования. Рассмотрение основных особенностей конструирования классов CGame и Players, а также алгоритмов вычисления траектории полета снаряда. Анализ алгоритма PassivePlayer.
курсовая работа [5,1 M], добавлен 22.02.2013Особенности и основные этапы разработка компьютерной модели расчета траектории неуправляемого летательного аппарата, анализ модели динамики. Метод Эйлера как линейное приближение, использующее первые два члена ряда Тейлора, способы решения задач.
курсовая работа [930,6 K], добавлен 14.01.2013Моделирование траектории движения космического аппарата, запускаемого с борта космической станции, относительно Земли. Запуск осуществляется в направлении, противоположном движению станции, по касательной к её орбите. Текст программы в среде Matlab.
контрольная работа [138,8 K], добавлен 31.05.2010Создание модели с использованием шаблона, предложенного программой по умолчанию. Создание твердотельной модели. Построение траектории обработки и получение управляющей программы. Построение траектории обработки профиля. Отображение удаленного материала.
курсовая работа [1,3 M], добавлен 25.07.2012Проект графического приложения, управляющего движением объекта в форме круга с заданным диаметром. Описание языка программирования С#. Его достоинства и недостатки. Разработка математической модели траектории движения объекта с учетом уменьшения скорости.
курсовая работа [1,4 M], добавлен 25.02.2015