Помощь в написании студенческих работ
Антистрессовый сервис

Движение управляемого снаряда

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Программа написана в приложении Visual Studio 2010 на языке программирования C#. String s; // вспомогательная переменная чтения с консоли. Console. Write («введите время процесса»); // ввод данных. Console. Write («введите шаг замеров»); // ввод данных. Double h, Tk, F, a, M; //Tk время процесса (конечное). Снаряд уравнение управляемый программа. Постановка задачи, расчетные формулы. Console… Читать ещё >

Движение управляемого снаряда (реферат, курсовая, диплом, контрольная)

Задание.

Движение управляемого снаряда (по продольному каналу) происходит под действием порохового ускорителя и описывается системой дифференциальных уравнений второго порядка:

где 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. Блок - схема.

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 с.

снаряд уравнение управляемый программа.

Показать весь текст
Заполнить форму текущей работой