Движение управляемого снаряда
Задание
Движение управляемого снаряда (по
продольному каналу) происходит под действием порохового ускорителя и
описывается системой дифференциальных уравнений второго порядка:
где 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
= 00’ = V0*h;
2) t1 = h, X1 = 0+X0’, V1 = 0+V1’1’ = V1*h;
3) t2 = 2*h, X2 = X1+X1’,
V2 = V1+V1’2’ = V2*h;
……………………….
……………………….
n) tn = n*h, Xn = Xn-1+Xn-1’,
Vn = Vn-1+Vn-1’;
Из полученных уравнений выведем
одно, с помощью которого мы сможем вычислить точку, в которой находится снаряд
в определенный момент времени:
Разгон снаряда закончится в момент
времени Туск, когда сила тяги ускорителя F станет равной нулю. Так как сила
тяги ускорителя снаряда на всех промежутках времени постоянная (кроме конечного),
а сила аэродинамического сопротивления будет расти с увеличением скорости, то в
какой-то момент времени станет
меньше или равно нулю. В этом случае изменение скорости приравняется к нулю:
Обозначим полученную скорость как Vконечное, и в момент времени, когда Vn станет равным Vконечное, изменение скорости станет равным нулю. Следуя из этого, можно
сказать, что максимальная скорость снаряда при разгоне определяется его силой
тяги ускорителя.
X0 = 0;
V0 = 0 м/с;
h = 0,1 сек;
F = 100 Н;
A = 0,1 ;
Tуск = 10*h = 1 сек;
Пусть масса равна:
M = Const = 10 кг.
Рис. 1. График зависимости дальности
разгона снаряда от шага по времени
Рис. 2. График зависимости скорости
снаряда от времени
3.
Блок - схема
.
Моделирующая программа
using System;
using System. Collections.
Generic;System. Linq;System. Text;ConsoleApplication3
{Program
{void Main (string[]
args)
{i, x; //x и i вспомогатальные
паременные i для цикла, x для массивов и цикла.h, Tk, F, a, M; //Tk время
процесса(конечное).s; // вспомогательная переменная чтения с консоли.. Write
(«введите время процесса»); // ввод данных
s = Console.
ReadLine();= double. Parse(s);= Convert. ToInt32 (Tk / h);
Double[] X = new Double [x + 1]; //
массивы размерности х+1 (х-число возможных замеров за время Tk +1 необходимо
для задания 0-го значения иначе мы бы потеряли последнее значение)
Double[] V = new Double
[x + 1];. Write («введите массу»);= Console. ReadLine();= double. Parse(s);. Write («введите силу тяги»);= Console.
ReadLine();= double. Parse(s);
Console. Write («введите коэффициент
А»);
s = Console.
ReadLine();= double. Parse(s);[0] = 0;[0] = 0;(i = 1; x >= i; i++) // расчет значений
{[i] = X [i - 1] + V [i
- 1] * h;[i] = V [i - 1] + (F - a * V [i - 1]) / M;
}(i = 0; x >= i; i++)
{. WriteLine («В момент времени» + i * h + «скорость равна» + V[i] +
«дальность равна» + X[i] +».»); // вывод
}. ReadLine();
}
}
}
5. Скриншоты
выполняемой программы
Окно ввода данных:
Окно вывода данных:
Программа написана в приложении Visual Studio 2010 на языке
программирования C#.
Литература
1. Павловская Т.А.; С#.
Программирование на языке высокого уровня. Учебник для вузов. - СПб.: Питер,
2007. - 432 с.