Uploaded by marl.marl

ИДЗ 133

advertisement
ЗАДАНИЕ НА РЕФЕРАТ 133
Дисциплина "ТЕОРИЯ СИГНАЛОВ"
Департамент Информационных Технологий
Тема:
Разработка модели движения объекта
Движение управляемого снаряда (по продольному каналу) происходит под действием
порохового ускорителя и описывается системой дифференциальных уравнений второго порядка
X’ = V ,
V’ = (F – Pa) / M,
где X,, V – дальность и скорость в продольном канале, м и м/с; F – сила тяги ускорителя,
Ньютон, полагается постоянной по времени на интервале [0, Tуск] времени его работы; M –
масса снаряда, кг, полагается постоянной по времени; Pa – сила аэродинамического
сопротивления, Ньютон, пропорциональная скорости движения Pa = AV, где A – постоянный
коэффициент, Ньютон/(м/c).
На старте, t0 = 0, X0 = 0 м и V0 = 0 м/с.
Разработать алгоритмы расчета двумерной фазовой траектории процесса – изменения
дальности и скорости объекта на разгоне.
ОГЛАВЛЕНИЕ
ПОСТАНОВКА ЗАДАЧИ, РАСЧЁТНЫЕ ФОРМУЛЫ .............................................. 3
КАЧЕСТВЕННЫЙ АНАЛИЗ РЕШЕНИЯ .................................................................... 4
КОД ПРОГРАММЫ........................................................................................................ 5
СКРИНШОТЫ РАБОТЫ ПРОГРАММЫ .................................................................... 7
ЛИТЕРАТУРА ................................................................................................................. 8
ПОСТАНОВКА ЗАДАЧИ, РАСЧЁТНЫЕ ФОРМУЛЫ
Масса снаряда М(t) в начальный момент времени (t0 = 0, X0 = 0, V0 = 0) постоянна, а изменение
скорости минимально. Из этого следует, что при прохождение снарядом определенного
расстояния, скорость движения будет увеличиваться до определенного момента, пока не
достигнет максимальной скорости. Для того чтобы можно было проследить изменение
дальности и скорости снаряда на разгоне, введем шаг замеров 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';
Эти уравнения можно свести к одному, которое поможет вычислить точку, в которой находится
снаряд в определенный момент времени:
Разгон снаряда закончится в Tуск, когда сила тяги F станет равна нулю. Если сила тяги
ускорителя снаряда на всех промежутках времени постоянная (кроме конечного), а сила
аэродинамического сопротивления будет расти с увеличением скорости, то в какой-то момент
времени F-P_a станет меньше или равно нулю. В этом случае изменение скорости приравняется
к нулю:
Обозначим полученную скорость как Vконеч, и в момент времени, когда Vn станет равным
Vконеч, изменение скорости станет равным нулю. Следуя из этого, можно сказать, что
максимальная скорость снаряда при разгоне определяется его силой тяги ускорителя.
КАЧЕСТВЕННЫЙ АНАЛИЗ РЕШЕНИЯ
X0 = 0;
V0 = 0 м/с;
h = 0,1 сек;
F = 100 Н;
A = 0,1
Tуск = 10*h = 1 сек;
Пусть масса равна:
M = Const = 10 кг.
Рис. 1. График зависимости дальности разгона снаряда от шага по времени
Рис. 2. График зависимости скорости снаряда от времени
КОД ПРОГРАММЫ
package consoleapplication3;
import java.util.*;
public class Program
{
public static void main(String[] args)
{
int i, x;
double h, Tk, F, a, M; //Tk время процесса
String s; // переменная чтения с консоли.
System.out.print(«введите время процесса»);
s = new Scanner(System.in).nextLine();
Tk = Double.parseDouble(s);
System.out.print(«введите шаг замеров»);
s = new Scanner(System.in).nextLine();
h = Double.parseDouble(s);
x = FloatingPointToInteger.ToInt32(Tk / h);
double[] X = new double [x + 1]; // массивы размерности х+1 (х-число возможных замеров за
время Tk +1 необходимо для задания 0-го значения иначе мы бы потеряли последнее значение)
double[] V = new double [x + 1];
System.out.print(«введите массу»);
s = new Scanner(System.in).nextLine();
M = Double.parseDouble(s);
System.out.print(«введите силу тяги»);
s = new Scanner(System.in).nextLine();
F = Double.parseDouble(s);
System.out.print(«введите коэффициент А»);
s = new Scanner(System.in).nextLine();
a = Double.parseDouble(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++)
{
System.out.println(«В момент времени» + i * h + «скорость равна» + V[i] + «дальность
равна» + X[i] + ».»); // вывод
}
new Scanner(System.in).nextLine();
}
}
package tangible;
public final class FloatingPointToInteger
{
public static byte ToSByte(double source)
{
byte floor = (byte)Math.floor(source);
if (Math.abs(source - floor) == 0.5)
{
if (floor % 2 == 0)
return floor;
else
return (byte)Math.ceil(source);
}
else if (Math.abs(source - floor) < 0.5)
return floor;
else
return (byte)Math.ceil(source);
}
public static short ToInt16(double source)
{
short floor = (short)Math.floor(source);
if (Math.abs(source - floor) == 0.5)
{
if (floor % 2 == 0)
return floor;
else
return (short)Math.ceil(source);
}
else if (Math.abs(source - floor) < 0.5)
return floor;
else
return (short)Math.ceil(source);
}
public static int ToInt32(double source)
{
int floor = (int)Math.floor(source);
if (Math.abs(source - floor) == 0.5)
{
if (floor % 2 == 0)
return floor;
else
return (int)Math.ceil(source);
}
else if (Math.abs(source - floor) < 0.5)
return floor;
else
return (int)Math.ceil(source);
}
public static long ToInt64(double source)
{
long floor = (long)Math.floor(source);
if (Math.abs(source - floor) == 0.5)
{
if (floor % 2 == 0)
return floor;
else
return (long)Math.ceil(source);
}
else if (Math.abs(source - floor) < 0.5)
return floor;
else
return (long)Math.ceil(source);
}
}
СКРИНШОТЫ РАБОТЫ ПРОГРАММЫ
Ввод данных:
Вывод данных:
Программа была сделана на языке Java в среде программирования Eclipse.
ЛИТЕРАТУРА

Н. В. Майевский «О решении задач прицельной и навесной стрельбы» (№ 9
и 11 «Арт. Журн.», 1882 г.)

Н. В. Майевский «Изложение способа наименьших квадратов и применение
его преимущественно к исследованию результатов стрельбы» (СПб., 1881 г.);
Download