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)


 

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

75323. Особенности социально-экономического развития Италии в конце V- сер. XI веков 51 KB
  Особенности социальноэкономического развития Италии в конце V сер. Подвластное лангобардам коренное население Италии оставалось в сфере действия римского права. империи но не принесло Италии политического единства. Карл Великий изменил территориальноадминистративное деление своих владений в Италии: вместо герцогств были образованы 20 графств отданных в управление представителям франкской знати.
75324. Основные черты феодального строя в Западной Европе к концу XI века 32 KB
  Господствует феодальная земельная собственность в вид вотчины в сочетании с мелким индивидуальным крестьянским хозяйством. Основная масса крестьян находится уже в той или иной форме зависимости. На раннем этапе развития феодализма господствовало натуральное хозяйство; обмен был незначителен торговые связи не развиты; У лично зависимых крестьян особенно в крупных поместьях преобладала отработочная рента. Широко распространяется также натуральный оброк с крестьян находившихся в более легкой зависимости.
75325. Население и внешний вид средневековых городов. Борьба городов с сеньорами 36 KB
  В Западной Европе средневековые города раньше всего появились в Италии Венеция Генуя Пиза Неаполь Амальфи и др. Крестьяне бежавшие от своих господ или уходившие в города на условиях выплаты господину оброка становясь горожанами постепенно освобождались отличной зависимости феодалу. Лишь в дальнейшем в городах появились купцы новый общественный слой сферой деятельности которого являлось уже не производство а только обмен товаров. В отличие от странствующих купцов существовавших в феодальном обществе в предшествующий период и...
75327. Христианство, церковь, ереси в XI-XV вв. Раскол христианской церкви. Особенности греко-православной и римско-католической церкви 52.5 KB
  Раскол христианской церкви. Особенности грекоправославной и римскокатолической церкви. Единство христианской церкви уже задолго до её окончательного разделения было лишь видимым. За этими богословскими спорами скрывались совершенно реальные церковнополитические разногласия и в частности столкновения изза деятельности церковных миссий восточной церкви в IX Х вв.
75328. Феодально-рыцарская культура Западной Европы в XII-XV веков 37 KB
  Феодальнорыцарская культура Западной Европы в XIIXV вв. Рыцарские турниры имитировавшие настоящие сражения приобрели особую пышность в XIII XIV вв. В XII в. Магистром поэтов называли Гираута де Борнейля последняя треть XII начало XIII в.
75329. Торговля в средние веки, ее эволюция и роль 32.5 KB
  Возрождение торговли В XI в феодальное общество начало медленно просыпаться от тяжелого сна Страсть к путешествиям приключениям сразу рассеяла общее оцепенение таково завоевание Англии обеих Сицилии. Некоторые из этих предприятий носили политический другие религиозный характер; но все они способствовали развитию торговли потому что благодаря им устанавливались сношения между теми странами откуда выходили завоеватели и теми где они водружали свои знамена С этого времени руанские купцы пользуются правом свободной торговли в Лондоне где...
75330. Раннее Возрождение и гуманизм в Италии XIV-XV веков 36.5 KB
  Возникновение культуры Возрождения было подготовлено рядом общеевропейских и локальных исторических условий. Богатый процветающий итальянский город стал главной базой формирования культуры Возрождения светской по своей общей направленности и во многом отвечавшей потребностям его общественного развития. означал духовное обновление подъем культуры после ее тысячелетнего упадка в средние века: отношение деятелей новой культуры к средневековому варварству было подчеркнуто негативным. Идейной основой ренессансной культуры был гуманизм...
75331. Государство периода феодальной раздробленности 32.5 KB
  Феодальная анархия аристократический стройПо мере разветвления правящей династии в раннефеодальных государствах расширения их территории и административного аппарата представители которого осуществляют власть монарха над местным населением собирая дань и войско увеличивается количество претендентов на центральную власть периферийные военные ресурсы увеличиваются а контрольные возможности центра ослабевают. Верховная власть становится номинальной и монарх начинает избираться крупными феодалами из своей среды при этом ресурсы избранного...