Автор работы: Пользователь скрыл имя, 06 Июня 2013 в 17:18, контрольная работа
Движение управляемого снаряда (по продольному каналу) происходит под действием порохового ускорителя и описывается системой дифференциальных уравнений второго порядка:
где X’, V – дальность и скорость в продольном канале, м и м/с; F – сила тяги ускорителя, Н, полагается постоянной по времени на интервале [0, Туск] времени его работы; M – масса снаряда, кг, полагается постоянной по времени ; Pa – сила аэродинамического сопротивления, Н, пропорциональная скорости движения Pa = A*V, где A – постоянный коэффициент,
1. Задание 3
2. Постановка задачи, расчетные формулы: 3
3. Качественный анализ решения: 4
4. Блок – схема: 6
5. Моделирующая программа: 7
6. Скриншоты выполняемой программы: 9
Литература 10
Оглавление
1. Задание 3
2. Постановка задачи, расчетные формулы: 3
3. Качественный анализ решения: 4
4. Блок – схема: 6
5. Моделирующая программа: 7
6. Скриншоты выполняемой программы: 9
Литература 10
Движение управляемого снаряда (по продольному каналу) происходит под действием порохового ускорителя и описывается системой дифференциальных уравнений второго порядка:
где X’, V – дальность и скорость в продольном канале, м и м/с; F – сила тяги ускорителя, Н, полагается постоянной по времени на интервале [0, Туск] времени его работы; M – масса снаряда, кг, полагается постоянной по времени ; Pa – сила аэродинамического сопротивления, Н, пропорциональная скорости движения Pa = A*V, где A – постоянный коэффициент, .
На старте, t0 = 0, X0 = 0 м, V0 = 0 м/с.
Разработать алгоритмы расчета фазовой траектории управляемого процесса (изменения дальности и скорости объекта на разгоне).
В начальный момент времени (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конечное, изменение скорости станет равным нулю. Следуя из этого, можно сказать, что максимальная скорость снаряда при разгоне определяется его силой тяги ускорителя.
X0 = 0;
V0 = 0 м/с;
h = 0,1 сек;
F = 100 Н;
A = 0,1 ;
Tуск = 10*h = 1 сек;
Пусть масса равна:
M = Const = 10 кг.
Рис. 1 График зависимости дальности разгона снаряда от шага по времени.
Рис. 2 График зависимости скорости снаряда от времени.
Пояснения:
Начало
Ввод значений:
F; h; Tуск; A; V0; M; i = 0, x0.
X0’ := V0*h;
i = ++
xi := xi-1 + x’i-1
Vi := Vi-1 + V’i-1
x’i := Vi * h
V’i := (F – A*Vi)/M
i * h Туск
Да
Нет
Вывод значений:
Xi; Vi; i = 1, …, n
Конец
Приложение 1.
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();
}
}
}
Скриншоты правильности выполнения программы см. в Приложении 2.
Приложение 2.
Окно ввода данных:
Окно вывода данных:
Программа написана в приложении Visual Studio 2010 на языке программирования C#
Литература
Павловская Т.А.; С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2007. — 432 с.: ил.