42366

Разработка программного обеспечения управления технической системой

Лабораторная работа

Информатика, кибернетика и программирование

Необходимо разработать алгоритм и программу управления угловым движением спутника по углу тангажа в процессе поддержания нулевых угловых отклонений относительно заданного положения. Для обеспечения проверки правильности и отладки этих алгоритмов необходимо разработать имитационную математическую модель внешней среды. Алгоритм управления должен быть реализован в управляющей БЦВМ. Она эмулируется в ПК. В рамках этой эмуляции реализуется заданная дискретная во времени работа управляющего алгоритма. В рамках данной работы недостижима отладка на системной ЦВМ.

Русский

2013-10-29

694.5 KB

3 чел.

ПГУТИ

кафедра ПОУТС

Отчёт по лабораторной работе

«Разработка программного обеспечения управления технической системой»

по предмету «Технология разработки программного обеспечения»

Выполнили:

студенты гр. ПО-91

Тимошенко Д.

Еремеев А.

Игнатьев А.

Еренков А.

Проверил:

Мостовой Я.А.

Самара

2013 г.

Цель работы:

Необходимо разработать алгоритм и программу управления угловым движением  спутника по углу тангажа в процессе поддержания нулевых угловых отклонений относительно заданного положения. Для обеспечения  проверки правильности и отладки этих алгоритмов необходимо разработать имитационную математическую модель внешней среды.

Алгоритм управления должен быть реализован в управляющей БЦВМ. Она эмулируется в ПК. В рамках этой эмуляции реализуется заданная  дискретная во времени работа управляющего алгоритма. В рамках данной работы недостижима отладка на системной ЦВМ.

В этом ПК должны исполняться модели внешней среды (датчиков, ИО, объекта управления), необходимые для проверки работоспособности системы и отладки алгоритма управления.

В соответствии со схемой имитационного математического моделирования углового движения спутника воспроизводится блочная структура системы, т.е. в явном виде присутствуют выделенные математические модели датчиков, исполнительных органов и объекта управления.

В данном контексте  применения имитационные математические модели датчиков просты и возвращают обратившейся  программе управления значения угла и угловой скорости, которые они «списывают» с модели углового движения. Модели исполнительных органов отдают модели углового движения значения управляющих моментов, рассчитанных в программе управления БЦВМ.

  1.  Краткое математическое описание задачи и исходные данные для управления спутником.

При описании динамики объектов управления механических систем краеугольным камнем является второй закон Ньютона. Для применения 2-го закона Ньютона, необходимо задать некоторую систему координат, относительно которой будут определяться скорость, положение, направление сил, действующих на объект.

Со школы известен закон Ньютона в форме:

или ,

здесь F – вектор сил, действующих на объект,

        m – масса объекта,

- вектор ускорения.

Применительно к вращательному движению объекта относительно точки центра масс  2-ой Закон Ньютона записывается в виде

Здесь Jо – момент инерции относительно центра вращения(цм).

- угол поворота спутника по тангажу.

M – момент сил, действующих относительно Ц.М.

Моменты инерции для тел простой формы шара, параллепипеда и т.п. приведены в справочниках. Для тел произвольной формы момент инерции может быть подсчитан по известным методикам. Мы будем рассматривать момент инерции спутника относительно центра масс, как заданную константу.

Запишем модель углового движения спутника с вращающимся маховиком по каналу тангажа.

 Jо=Mв-Myпр (1)

Здесь управляющий момент от маховика:

       Mупр = Jмх)   (2)

Подставим 2 в 1.

Здесь - угловое ускорение маховика Jо и Jмх – моменты инерции спутника и маховика. Начальные условия: t = 0,

Здесь управляющее воздействие   определяется  значением , которое формируется как функция от отклонений угла и угловой скорости.

Воздействия от других действующих относительно ц.м. моментов

 

момент от системы разгрузки. Когда система разгрузки не работает . Когда система разгрузки работает Мр – функция от .

Mв – возмущающий момент относительно центра масс

Значения . Поэтому можно пренебречь  по сравнению и тогда:

При работе маховика до начала его разгрузки  и движения спутника.

=     (3)

Здесь - управляющая координата – угловое ускорение вращения маховика, определяемая законом управления(4).

   (4)

Исходные данные:

J0 = 20 - момент инерции спутника.

Масса спутника = 350 кг.

Размер спутника 0,8 м (сторона Куба)

момент инерции маховика

=18н*м*сек – максимально достижимый кинетический момент маховика(реальный прибор). Отсюда

Pурд = 10-1н – тяга управляющего ракетного двигателя [кг*м/сек^2].

Мурд =  Pурд*LМ = 10-1н*0.4м = 0.04 нм, где Lм плечо силы тяги относительно цм = 0,4м

Управляющее ускорение от УРД.

урд = Мурд/Jz = 0.004[1/сек^2]

Мупрmax =Jм*max= 0,2 нм – максимально возможный управляющий момент маховика.

Отсюда максимальное ускорение при разгоне маховика

max=10 [1/сек^2]

т= 1 [1/сек2]– ускорение торможения маховика при сбросе накопленного кинетического момента.

Мт=1*0.02[ кгм^2/сек^2]=0.02 нм   - момент, возникающий при торможении маховика и действующий на спутник

Тогда угловое ускорение спутника при торможении маховика

т=0.02 нм/20кгм^2=0.001[1/сек^2]

возмущающее ускорение

в=0.002[1/сек^2]

а0=10

В интерфейсе программы предусмотрена возможность ввода своих исходных пользователем.

  1.  Схема имитационного математического моделирования для целей отладки программы управления по каналу тангажа

Управление угловым движением спутника в канале тангажа осуществляется по угловому отклонению и скорости изменения этого отклонения. Учет скорости изменения управляемой координаты обеспечивает устойчивость  углового движения спутника, так как как бы  предсказывает его поведение на ближайшем интервале времени т. е. компенсирует запаздывания в контуре управления.

Действительно, если имеет место отклонения , но оно уменьшается, за счет набранной спутником угловой скорости противоположного знака, то управляющее воздействие не должно быть чрезмерным, чтобы не вызвать перерегулирования.

Таким образом, управление ракетой в канале тангажа осуществляется по угловому отклонению и скорости изменения этого отклонения. Учет скорости изменения управляемой координаты обеспечивает устойчивость её углового движения и предсказание ее поведения на ближайшем интервале времени т. е. компенсирует запаздывания в контуре управления.

Действительно, если имеет место отклонения , но оно уменьшается, за счет набранной ракетой угловой скорости противоположного знака, то управляющее воздействие не должно быть чрезмерным, чтобы не вызвать перерегулирования.

И обратно, если  и  имеют один знак, надо тормозить энергично нарастающее отклонениеспутника от заданного углового положения.

Все это учитывает закон управления угловым движением по отклонению и скорости отклонения.

           1)запросить.

2)запросить

3) рассчитать управляющее воздействие

   (4)

4) выдать на маховик значение управляющего воздействия после чего он начнет разгоняться, пропорционально полученному значению, создавая управляющий момент.

Здесь a0 ,a1 – постоянные коэффициенты закона управления, выбираемые разработчиком ПО, исходя из соображений качества и устойчивости процессов управления. В примере приложения а0=10 и а1=40.

Поскольку закон управления реализуется в бортовой ЦВМ, необходимо учитывать дискретность ее работы.

            При этом вырезанные на момент k(i)T сигналы  и ,поступающие с датчиков,  в БЦВМ запоминаются как входные и не меняются в течение времени T – следующего периода работы БЦВМ (такта), потому что ЦВМ « видит» эти изменения только в момент опроса датчиков. Так происходит каждый такт.

             При этом при моделировании в динамической схеме системы необходимо учесть не только «вырезание» сигнала в момент kT, но и его «запоминание на этом уровне» до момента (k+1)T. Это запоминание в БЦВМ  при моделировании осуществляется элементом, который мы назовем экстраполятором нулевого порядка. Его характеристика во временной области имеет вид:

Экстраполятор нулевого порядка «замораживает» значение снятой с датчиков и вводимой в ЦВМ информации до начала следующего съёма.

Таким образом, дискретизация сигналов на входе и выходе управляющей ЦВМ моделируется сочетанием ключа и экстраполятора нулевого порядка.

Подключение системы разгрузки с УРД.

1. Если накопленная угловая скорость вращения маховика||max, то на маховик надо выдать команду торможения. При этом ускорение торможения

( знак противоположный достигнутому)

Команда торможения выдается до тех пор, пока  не станет равной 0. В работе принять

               тр=1/сек^2

2. Уравнение углового движения спутника в этом случае

J0 = Мв – Мупр + Jм*тр             (5)

3. Включить УРД в соответствии с законом управления. При этом возникнет управляющий момент

Мупр = Рупр                (6)

Нелинейная функция  приведена на рисунке.

аргумент управления

                             (7)

Значение a=0,01радиан. В случае а=0 имеем «чистую» релейную функцию.

Значения коэффициентов в законе управления а0 и а1 могут отличаться от их значений в законе управления маховиком.

Начальные условия для интегрирования системы уравнений на участке разгрузки маховика равны конечным значениям параметров на участке управления от маховика.

Закон управления в БЦВМ на участке разгрузки.

1)Запросить

2)Запросить

3)Рассчитать аргумент управления  

4)В соответствии с функцией F() включить Мупр

5)При достижении  =0  перейти на закон управления при помощи маховика и прекратить работу с УРД.

Интегрирование уравнений углового движения (5) совместно с уравнением управления (6),(7) производится численным методом Эйлера.

Интегрирование этих уравнений дает изменение значений  - угловых отклонений спутника от заданного направления по времени. Критерием правильности работы программного обеспечения является ограниченность значений  и не превышение  отклонений  заданной величины.

В программе предусмотрено управление спутником по каналу тангажа как с имитацией дискретности, так и без. Период дискретности работы ЦВМ непосредственно влияет на качество управления: чем больше период, тем хуже контролируется движение спутника, так как рассчитанное управляющее ускорение или аргумент управления для ракетных двигателей выдаются с меньшей частотой. Период дискретности должен быть как минимум в два раза больше шага интегрирования. В программе значение этого периода изменяется путём ввода коэффициента (от 1 и более), на который домножается удвоенный шаг интегрирования.

На участке разгона отслеживается превышение максимального управляющего момента маховика и максимального управляющего ускорения маховика.

Пользователь имеет возможность регулировать управление на каждом участке, предварительно введя свои коэффициенты a0, a1.

  1.  Структурная схема программы управления студенческим спутником по каналу тангажа.

  1.  Варианты отладки программы управления спутником. Исходные данные для каждого варианта. Графики изменения параметров углового движения студенческого спутника по каналу тангажа.
  2.  Шаг интегрирования dt = 0.01 с;

Шаг дискретизации = 1 с;

A0 для первого участка = 10;

A1 для первого участка = 40;

A0 для второго участка = 1;

A1 для второго участка = 2;

Результаты управления на участке разгона маховика:

Время управления = 450 c;

Результаты управления на участке сброса кинетического момента:

Время управления = 900 c;

  1.  Шаг интегрирования dt = 0.01 с;

Шаг дискретизации = 7 с;

A0 для первого участка = 10;

A1 для первого участка = 40;

A0 для второго участка = 1;

A1 для второго участка = 2;

Результаты управления на участке разгона маховика:

Время управления = 450 c;

Результаты управления на участке сброса кинетического момента:

Время управления = 900 c

Сквозные графики

Шаг интегрирования dt = 0.01 с;

Шаг дискретизации = 7 с;

A0 для первого участка = 10;

A1 для первого участка = 40;

A0 для второго участка = 1;

A1 для второго участка = 2;

                          

5.Скриншот программы

6. Исходный код программы

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Drawing;

using System.Windows.Forms;

using System.Windows.Forms.DataVisualization.Charting;

namespace trpo_laba

{

   class trpo

   

   {

       public class Line

       {

           double Mv = 0.04;// 0.0001; расшифровки в методичке должны быть

           double I0 = 20;

           double Im = 0.02;

           double Purd = 0.1;//0.01

           double Lm = 0.4;

           double Murd = 0;

           int a1 = 40, a0 = 10;

           int a1_2 = 2, a0_2 = 1;

           double Mt = 0.02;

           double a = 0;

           double uskor_max = 1;

           double t_diskr = 1; //шаг дискретизации

           public Line(double _Mv, double _I0, double _Im, double _Purd, double _Lm, double _Murd, int _a1, int _a0, int _a1_2, int _a0_2, double _Mt, double _uskor_max, double _t_diskr, double _a)

           {

               Mv = _Mv;

               I0 = _I0;

               Im = _Im;

               Purd = _Purd;

               Lm = _Lm;

               Murd = _Murd;

               a1 = _a1;

               a0 = _a0;

               a1_2 = _a1_2;

               a0_2 = _a0_2;

               Mt = _Mt;

               uskor_max = _uskor_max;

               t_diskr = _t_diskr;

               a = _a;

           }

           public void FirstSecondStep(double _dt, int _a0, int _a1, double _t, Chart ch1, Chart ch2, Chart ch3, Chart ch4) //запуск обоих участков сразу

           //_dt - шаг интегрирования

              

           {

               ch1.Series[0].Points.Clear();

               ch1.Series[1].Points.Clear();

               ch2.Series[0].Points.Clear();

               ch2.Series[1].Points.Clear();

               ch3.Series[0].Points.Clear();

               ch3.Series[1].Points.Clear();

               ch4.Series[0].Points.Clear();

               ch4.Series[1].Points.Clear();

               double x1 = 0, x2 = 0, x3, w = 0; // w - скорость

               double t = 0;

               double f = 0;

              // double a = 0;

               int i = 0;

               double buf_x1 = 0, buf_x2 = 0, buf_x3 = 0, buf_w = 0;

               StreamWriter sw = new StreamWriter("D:\\abc.txt", false, Encoding.Default);

               sw.WriteLine("|t   | x1   | x2   | x3  |");

               sw.WriteLine("|0   |0     |0     | 0   |");

               ch2.Series[0].Points.AddXY(0, 0);

               ch3.Series[0].Points.AddXY(0, 0);

               x3 = 0;

               while (w <= 900)

               {

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       x3 = a0 * x1 + a1 * x2;

                   }

                   x1 = x1 + _dt * x2;

                   x2 = x2 + _dt * ((/*Mv / I0*/0.002) - (Im / I0) * x3);

                   w = w + _dt * x3;

                   t += _dt;

                   sw.WriteLine("|" + t + "   |" + x1 + "   |" + x2 + "    |" + x3 + "   |");

                   ch1.Series[0].Points.AddXY(t, x1);

                   ch2.Series[0].Points.AddXY(t, x2);

                   ch3.Series[0].Points.AddXY(t, x3);

                   ch4.Series[0].Points.AddXY(t, w);

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       ch1.Series[1].Points.AddXY(t, x1);

                       ch2.Series[1].Points.AddXY(t, x2);

                       ch3.Series[1].Points.AddXY(t, x3);

                       ch4.Series[1].Points.AddXY(t, w);

                       buf_x1 = x1;

                       buf_x2 = x2;

                       buf_x3 = x3;

                       buf_w = w;

                   }

                   else

                   {

                       ch1.Series[1].Points.AddXY(t, buf_x1);

                       ch2.Series[1].Points.AddXY(t, buf_x2);

                       ch3.Series[1].Points.AddXY(t, buf_x3);

                       ch4.Series[1].Points.AddXY(t, buf_w);

                   }

                   i++;

               }

               while (w > 0)

               {

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       f = a0_2 * x1 + a1_2 * x2;

                   }

                   // f = a0 * x1 + a1 * x2;

                   if (f > a) f = 1;

                   else if ((f >= (0 - a)) && (f <= a)) { f = 0; }

                   else if (f < (0 - a)) { f = -1; }

                   //  else if (f < -a) f = -1;

                   //  else f = 0;

                   Murd = 0.004 * f;//Purd * Lm * f;

                   x2 = x2 + _dt * ((Mt / I0) + (Mv / I0) - Murd);//(Murd / I0));

                   x1 = x1 + _dt * x2;

                   w = w - _dt * uskor_max;

                   ch1.Series[0].Points.AddXY(t, x1);

                   ch2.Series[0].Points.AddXY(t, x2);

                   ch4.Series[0].Points.AddXY(t, w);

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       ch1.Series[1].Points.AddXY(t, x1);

                       ch2.Series[1].Points.AddXY(t, x2);

                       //  ch3.Series[1].Points.AddXY(t, x3);

                       ch4.Series[1].Points.AddXY(t, w);

                       buf_x1 = x1;

                       buf_x2 = x2;

                       buf_x3 = x3;

                       buf_w = w;

                   }

                   else

                   {

                       ch1.Series[1].Points.AddXY(t, buf_x1);

                       ch2.Series[1].Points.AddXY(t, buf_x2);

                       //  ch3.Series[1].Points.AddXY(t, buf_x3);

                       ch4.Series[1].Points.AddXY(t, buf_w);

                   }

                   t += _dt;

               }

               /*   DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)

                      cell.Value*/

               sw.Flush();

               sw.Close();

           }

           public void FirstStep(double _dt, int _a0, int _a1, double _t, Chart ch1, Chart ch2, Chart ch3, Chart ch4) //запуск обоих участков сразу

           //_dt - шаг интегрирования

            

           {

               ch1.Series[0].Points.Clear();

               ch1.Series[1].Points.Clear();

               ch2.Series[0].Points.Clear();

               ch2.Series[1].Points.Clear();

               ch3.Series[0].Points.Clear();

               ch3.Series[1].Points.Clear();

               ch4.Series[0].Points.Clear();

               ch4.Series[1].Points.Clear();

               double x1 = 0, x2 = 0, x3, w = 0; // w - скорость

               double t = 0;

               double f = 0;

              // double a = 0;

               int i = 0;

               double buf_x1 = 0, buf_x2 = 0, buf_x3 = 0, buf_w = 0;

               StreamWriter sw = new StreamWriter("D:\\abc.txt", false, Encoding.Default);

               sw.WriteLine("|t   | x1   | x2   | x3  |");

               sw.WriteLine("|0   |0     |0     | 0   |");

               ch2.Series[0].Points.AddXY(0, 0);

               ch3.Series[0].Points.AddXY(0, 0);

               x3 = 0;

               while (w <= 900)

               {

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       x3 = a0 * x1 + a1 * x2;

                   }

                   x1 = x1 + _dt * x2;

                   x2 = x2 + _dt * ((/*Mv / I0*/0.002) - (Im / I0) * x3);

                   w = w + _dt * x3;

                   t += _dt;

                   sw.WriteLine("|" + t + "   |" + x1 + "   |" + x2 + "    |" + x3 + "   |");

                   ch1.Series[0].Points.AddXY(t, x1);

                   ch2.Series[0].Points.AddXY(t, x2);

                   ch3.Series[0].Points.AddXY(t, x3);

                   ch4.Series[0].Points.AddXY(t, w);

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       ch1.Series[1].Points.AddXY(t, x1);

                       ch2.Series[1].Points.AddXY(t, x2);

                       ch3.Series[1].Points.AddXY(t, x3);

                       ch4.Series[1].Points.AddXY(t, w);

                       buf_x1 = x1;

                       buf_x2 = x2;

                       buf_x3 = x3;

                       buf_w = w;

                   }

                   else

                   {

                       ch1.Series[1].Points.AddXY(t, buf_x1);

                       ch2.Series[1].Points.AddXY(t, buf_x2);

                       ch3.Series[1].Points.AddXY(t, buf_x3);

                       ch4.Series[1].Points.AddXY(t, buf_w);

                   }

                   i++;

               }

             //  MessageBox.Show("Этап 1 завершен!");

             

               sw.Flush();

               sw.Close();

           }

           public void SecondStep(double _dt, int _a0, int _a1, double _t, Chart ch1, Chart ch2, Chart ch3, Chart ch4) //запуск обоих участков сразу

           //_dt - шаг интегрирования

              

           {

               double x1 = 0, x2 = 0, x3, w = 0; // w - скорость

               double t = 0;

               double f = 0;

              // double a = 0;

               int i = 0;

               double buf_x1 = 0, buf_x2 = 0, buf_x3 = 0, buf_w = 0;

               StreamWriter sw = new StreamWriter("D:\\abc.txt", false, Encoding.Default);

               sw.WriteLine("|t   | x1   | x2   | x3  |");

               sw.WriteLine("|0   |0     |0     | 0   |");

              // ch2.Series[0].Points.AddXY(0, 0);

               //ch3.Series[0].Points.AddXY(0, 0);

               x3 = 0;

               while (w <= 900)

               {

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       x3 = a0 * x1 + a1 * x2;

                   }

                   x1 = x1 + _dt * x2;

                   x2 = x2 + _dt * ((/*Mv / I0*/0.002) - (Im / I0) * x3);

                   w = w + _dt * x3;

                   t += _dt;

                   sw.WriteLine("|" + t + "   |" + x1 + "   |" + x2 + "    |" + x3 + "   |");

                 //  ch1.Series[0].Points.AddXY(t, x1);

                   //ch2.Series[0].Points.AddXY(t, x2);

                   //ch3.Series[0].Points.AddXY(t, x3);

                   //ch4.Series[0].Points.AddXY(t, w);

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                     //  ch1.Series[1].Points.AddXY(t, x1);

                       //ch2.Series[1].Points.AddXY(t, x2);

                       //ch3.Series[1].Points.AddXY(t, x3);

                       //ch4.Series[1].Points.AddXY(t, w);

                       buf_x1 = x1;

                       buf_x2 = x2;

                       buf_x3 = x3;

                       buf_w = w;

                   }

                   else

                   {

                       //ch1.Series[1].Points.AddXY(t, buf_x1);

                       //ch2.Series[1].Points.AddXY(t, buf_x2);

                       //ch3.Series[1].Points.AddXY(t, buf_x3);

                       //ch4.Series[1].Points.AddXY(t, buf_w);

                   }

                   i++;

               }

               //MessageBox.Show("Этап 1 завершен!");

               //a0 = 1;

              // a1 = 2;

               ch1.Series[0].Points.Clear();

               ch2.Series[0].Points.Clear();

               ch3.Series[0].Points.Clear();

               ch4.Series[0].Points.Clear();

               ch1.Series[1].Points.Clear();

               ch2.Series[1].Points.Clear();

               ch3.Series[1].Points.Clear();

               ch4.Series[1].Points.Clear();

               //t = 0;

               while (w > 0)

               {

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       f = a0_2 * x1 + a1_2 * x2;

                   }

                   // f = a0 * x1 + a1 * x2;

                   if (f > a) f = 1;

                   else if ((f >= (0 - a)) && (f <= a)) { f = 0; }

                   else if (f < (0 - a)) { f = -1; }

                   //  else if (f < -a) f = -1;

                   //  else f = 0;

                   Murd = 0.004 * f;//Purd * Lm * f;

                   x2 = x2 + _dt * ((Mt / I0) + (Mv / I0) - Murd);//(Murd / I0));

                   x1 = x1 + _dt * x2;

                   w = w - _dt * uskor_max;

                   ch1.Series[0].Points.AddXY(t, x1);

                   ch2.Series[0].Points.AddXY(t, x2);

                   ch4.Series[0].Points.AddXY(t, w);

                   if (Math.Round(t, 3) % t_diskr == 0)

                   {

                       ch1.Series[1].Points.AddXY(t, x1);

                       ch2.Series[1].Points.AddXY(t, x2);

                       //  ch3.Series[1].Points.AddXY(t, x3);

                       ch4.Series[1].Points.AddXY(t, w);

                       buf_x1 = x1;

                       buf_x2 = x2;

                       buf_x3 = x3;

                       buf_w = w;

                   }

                   else

                   {

                       ch1.Series[1].Points.AddXY(t, buf_x1);

                       ch2.Series[1].Points.AddXY(t, buf_x2);

                       //  ch3.Series[1].Points.AddXY(t, buf_x3);

                       ch4.Series[1].Points.AddXY(t, buf_w);

                   }

                   t += _dt;

               }

               /*   DataGridViewComboBoxCell cell = (DataGridViewComboBoxCell)

                      cell.Value*/

               sw.Flush();

               sw.Close();

           }

       

       }

   }

       }

       

7. Выводы по лабораторной работе

По итогам данной лабораторной работы мы прошли через все этапы разработки конкретного ПО – программы управления угловым движения спутника

По результатам программы можно сделать вывод, что точность вычислений параметров спутника обратно пропорциональна шагу интегрирования. При этом чем меньше шаг интегрирования, тем больше времени потребуется на выполнение программы. Также точность вычислений обратна пропорциональна шагу дискретизации. Большое значение шага дискретизации (> 7 c) отрицательно влияет на точность параметров и на вид графиков.


t

EMBED Equation.3  d(t)

EMBED Equation.3  (t)

Т

F(kT)


 

А также другие работы, которые могут Вас заинтересовать

8074. Разработка бизнес-плана горнолыжного курорта в Приэльбрусье 364.5 KB
  Разработка бизнес-плана горнолыжного курорта в Приэльбрусье Введение Каждый предприниматель, начиная свою деятельность, должен ясно представлять потребность на перспективу в финансовых, материальных, трудовых и интеллектуальных ресурсах, источники и...
8075. Бізнес-план для діяльності виробничого підприємства ТОВ КРУЧА 692.5 KB
  ВСТУП Актуальність теми дослідження. З кожним роком зростає роль економічного аналізу господарської діяльності підприємств як складової системи економічної інформації та управління. Управління підприємством вимагає систематичної, точної і достовірно...
8076. Бизнес план компьютерного клуба интернет кафе 281.5 KB
  Введение. Бизнес-план - это документ, отражающий основные стороны деятельности предприятия: производственные, коммерческие, социальные. Бизнес-план составляется на два-три года с разбивкой по годам, а первый год по месяцам, регулярно корректиру...
8077. Обгрунутвання бізнес плану присвячений розробці випуску нового виду продукції підприємства ЗАТ Мясокомбінат Товстун 352.5 KB
  ВСТУП Вирішивши зайнятися бізнесом, підприємець повинен ретельно спланувати його організацію. Мова йде про бізнес-плани, з яких у всьому світі прийнято починати будь-яке комерційне захід. В умовах ринку подібні плани необхідні всім: банкірам і потен...
8078. Создание предприятия по выпуску литых дисков АОЗТ АвтоДиск 271 KB
  Создание предприятия по выпуску литых дисков Введение. Выбрав свое дело, необходимо спланировать, как его организовывать. Этот план нужен всем: тем, у кого собираются просить деньги на реализацию своего проекта, - банкирам и инвесторам ...
8079. Создание предприятия АО Автоперевозки без границ 7.54 MB
  Создание предприятия АО Автоперевозки без границ Сущность и цели проекта: проникновение на рынок транспортных услуг Северной Европы, последующее освоение рынков Западной и Восточной Европы, Средней Азии, Ближнего Востока, гарантирующих норму прибыли...
8080. Бизнес план как стратегическая программа развития предприятия 76.22 KB
  Введение Бизнес план развития предприятия - это стратегически спланированные первые шаги предприятия на своем рынке. Стратегическое планирование же представляет собой одну из функций управления, которая представляет собой процесс выбора целей о...
8081. Основы бизнес планирования на примере бизнес-плана автомойки Люкс 281.22 KB
  Введение В зарубежных странах с развитой рыночной экономикой бизнес-планы давно заняли достойное место. Россия только накапливает опыт разработки этих планов, так необходимых и для получения финансирования, и для формулировки собственных идей ...