Скриншоты выполняемой программы

Автор работы: Пользователь скрыл имя, 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 файл

Kumkov_печать.docx

— 146.53 Кб (Скачать документ)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Оглавление

1. Задание 3

2. Постановка задачи, расчетные формулы: 3

3. Качественный анализ решения: 4

4. Блок – схема: 6

5. Моделирующая программа: 7

6. Скриншоты выполняемой программы: 9

Литература 10

 

 

 

  1. Задание

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

 

  где 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конечное, изменение скорости станет равным нулю. Следуя из этого, можно сказать, что максимальная скорость снаряда при разгоне определяется его силой тяги ускорителя.

  1. Качественный анализ решения:

X0 = 0;

V0 = 0 м/с;

h = 0,1 сек;

F = 100 Н;

A = 0,1 ;

Tуск = 10*h = 1 сек;

Пусть масса равна:

M = Const = 10 кг.

 

 

 

 

 

 

 

 

 

 

 

 


Рис. 1   График зависимости  дальности разгона снаряда от шага по времени.

 


Рис. 2   График зависимости скорости снаряда от времени.

 

Пояснения:

 

 

 

 

 

 

 

  1. Блок – схема:

 

Начало


Ввод значений:

F; h; Tуск; A; V0; M; i = 0, x0.

X0’ := V0*h;  

 

i = ++

xi := xi-1 + xi-1

Vi := Vi-1 + Vi-1

xi := Vi * h

Vi := (F – A*Vi)/M

i * h Туск

Да

Нет

Вывод значений:

Xi; Vi; i = 1, …, n

Конец


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Приложение 1.

  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.

  1. Скриншоты выполняемой программы:

Окно ввода данных:

Окно вывода данных:

Программа написана в приложении  Visual Studio 2010 на языке программирования C#

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Литература

Павловская Т.А.; С#. Программирование на языке высокого уровня. Учебник для вузов. — СПб.: Питер, 2007. — 432 с.: ил.

 

 

 

 

 

 


Информация о работе Скриншоты выполняемой программы