Движение управляемого снаряда
Движение управляемого снаряда (по продольному каналу) под действием порохового ускорителя и описанием с помощью системы дифференциальных уравнений второго порядка. Разработка алгоритма расчета фазовой траектории управляемого процесса в программе.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 09.06.2013 |
Размер файла | 394,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Задание
Движение управляемого снаряда (по продольному каналу) происходит под действием порохового ускорителя и описывается системой дифференциальных уравнений второго порядка:
где X', V - дальность и скорость в продольном канале, м и м/с; F - сила тяги ускорителя, Н, полагается постоянной по времени на интервале [0, Туск] времени его работы; M - масса снаряда, кг, полагается постоянной по времени; Pa - сила аэродинамического сопротивления, Н, пропорциональная скорости движения Pa = A*V, где A - постоянный коэффициент, .
На старте, t0 = 0, X0 = 0 м, V0 = 0 м/с.
Разработать алгоритмы расчета фазовой траектории управляемого процесса (изменения дальности и скорости объекта на разгоне).
1. Постановка задачи, расчетные формулы
В начальный момент времени (t0 = 0, X0 = 0, V0 = 0) масса снаряда M(t) постоянна, а изменение скорости - минимально. Следуя из этого, можем сказать, что при прохождение снарядом определенного расстояния, скорость движения будет увеличиваться до определенного момента, пока не достигнет максимальной скорости. Чтобы можно было проследить изменение дальности и скорости снаряда на разгоне, введем шаг замеров h, сек, на котором изменение скорости снаряда будет постоянным. Составим уравнения для расчета скорости и дальности движения в определенный промежуток времени.
1) t0 = 0, X0 = 0, V0 = 0
X0' = V0*h;
2) t1 = h, X1 = 0+X0', V1 = 0+V1'
X1' = V1*h;
3) t2 = 2*h, X2 = X1+X1', V2 = V1+V1'
X2' = V2*h;
……………………….
……………………….
n) tn = n*h, Xn = Xn-1+Xn-1', Vn = Vn-1+Vn-1';
Из полученных уравнений выведем одно, с помощью которого мы сможем вычислить точку, в которой находится снаряд в определенный момент времени:
Разгон снаряда закончится в момент времени Туск, когда сила тяги ускорителя F станет равной нулю. Так как сила тяги ускорителя снаряда на всех промежутках времени постоянная (кроме конечного), а сила аэродинамического сопротивления будет расти с увеличением скорости, то в какой-то момент времени станет меньше или равно нулю. В этом случае изменение скорости приравняется к нулю:
Обозначим полученную скорость как Vконечное, и в момент времени, когда Vn станет равным Vконечное, изменение скорости станет равным нулю. Следуя из этого, можно сказать, что максимальная скорость снаряда при разгоне определяется его силой тяги ускорителя.
2. Качественный анализ решения
X0 = 0;
V0 = 0 м/с;
h = 0,1 сек;
F = 100 Н;
A = 0,1 ;
Tуск = 10*h = 1 сек;
Пусть масса равна:
M = Const = 10 кг.
Рис. 1. График зависимости дальности разгона снаряда от шага по времени
Рис. 2. График зависимости скорости снаряда от времени
3. Блок - схема
Размещено на http://www.allbest.ru/
4. Моделирующая программа
using System;
using System. Collections. Generic;
using System. Linq;
using System. Text;
namespace ConsoleApplication3
{
class Program
{
static void Main (string[] args)
{
int i, x; //x и i вспомогатальные паременные i для цикла, x для массивов и цикла.
Double h, Tk, F, a, M; //Tk время процесса(конечное).
string s; // вспомогательная переменная чтения с консоли.
Console. Write («введите время процесса»); // ввод данных
s = Console. ReadLine();
Tk = double. Parse(s);
Console. Write («введите шаг замеров»); // ввод данных
s = Console. ReadLine();
h = double. Parse(s);
x = Convert. ToInt32 (Tk / h);
Double[] X = new Double [x + 1]; // массивы размерности х+1 (х-число возможных замеров за время Tk +1 необходимо для задания 0-го значения иначе мы бы потеряли последнее значение)
Double[] V = new Double [x + 1];
Console. Write («введите массу»);
s = Console. ReadLine();
M = double. Parse(s);
Console. Write («введите силу тяги»);
s = Console. ReadLine();
F = double. Parse(s);
Console. Write («введите коэффициент А»);
s = Console. ReadLine();
a = double. Parse(s);
X[0] = 0;
V[0] = 0;
for (i = 1; x >= i; i++) // расчет значений
{
X[i] = X [i - 1] + V [i - 1] * h;
V[i] = V [i - 1] + (F - a * V [i - 1]) / M;
}
for (i = 0; x >= i; i++)
{
Console. WriteLine («В момент времени» + i * h + «скорость равна» + V[i] + «дальность равна» + X[i] +».»); // вывод
}
Console. ReadLine();
}
}
}
5. Скриншоты выполняемой программы
Окно ввода данных:
Окно вывода данных:
Программа написана в приложении Visual Studio 2010 на языке программирования C#.
Литература
1. Павловская Т.А.; С#. Программирование на языке высокого уровня. Учебник для вузов. - СПб.: Питер, 2007. - 432 с.
снаряд уравнение управляемый программа
Размещено на Allbest.ru
Подобные документы
Разработка и написание программы по моделированию движения снаряда при заданных параметрах пути, максимальной высоты, времени полета и траектории. Анализ методов построения модели, разработка алгоритма, написание и отладка программы в среде Delphi.
курсовая работа [214,5 K], добавлен 11.02.2011Исследование свойств управляемого объекта, обоснование выбора структуры системы управления для системы второго порядка. Принципы построения системы с переменной структурой. Расчет периода квантования для цифровой системы по условиям ее устойчивости.
курсовая работа [2,4 M], добавлен 14.11.2010Динамика движения материальной точки. Разработка программы, моделирующей траектории полета снаряда при стрельбе из пушки под заданным углом к горизонту. Ее структурная схема, системные требования к ней. Создание приложения в среде Borland C++Builder.
курсовая работа [3,2 M], добавлен 10.06.2014Изучение баллистикой процессов, протекающих внутри канала ствола при выстреле. Совокупность влияний на полет снаряда, исследование траектории пули в воздухе. Проверка корректности расчетов и обработка в Matlab. Построение графиков и листинг программы.
курсовая работа [1,6 M], добавлен 02.03.2011- Исследование движения тела, брошенного под углом к горизонту, с учетом горизонтального сопротивления
Математическая модель задачи для исследования характера движения тела. Решение задачи Коши для системы дифференциальных уравнений первого и второго порядка. Использование метода Эйлера. Схема алгоритма, таблица идентификаторов, программа на языке Pascal.
курсовая работа [137,9 K], добавлен 07.03.2013 Разработка компьютерных игр как зрелищная и наиболее сложная отрасль программирования. Рассмотрение основных особенностей конструирования классов CGame и Players, а также алгоритмов вычисления траектории полета снаряда. Анализ алгоритма PassivePlayer.
курсовая работа [5,1 M], добавлен 22.02.2013Разработка программы для решения нелинейных уравнений различными численными методами: с помощью дискриминанта и таблицы Горнера, теоремой Виетта. Требования к интерфейсу. Компоненты среды Delphi, использованные в программе. Реализация и тестирование.
курсовая работа [1,3 M], добавлен 20.04.2011Разработка сайта интернет-магазина, управляемого базой данных. Установка XAMPP, разделение кода и оформления с помощью Smarty. Начало реализации проекта Goodstore. Создание каталога товаров. Создание модели данных с помощью ALLFUSION ERWIN DATA MODELER.
дипломная работа [3,9 M], добавлен 20.03.2017Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений Maple. Произвольные константы решения дифференциального уравнения второго порядка, представленном рядом Тейлора. Значения опции method при численном решении.
лабораторная работа [47,2 K], добавлен 15.07.2009Решение дифференциальных уравнений с использованием классических алгоритмов численных методов Эйлера и Рунге-Кутта 4-го порядка. Команды, используемые при решении обыкновенных дифференциальных уравнений в системе вычислений. Результат работы программы.
курсовая работа [226,6 K], добавлен 05.04.2013