42366

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

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

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

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

Русский

2013-10-29

694.5 KB

16 чел.

ПГУТИ

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

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

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

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

Выполнили:

студенты гр. ПО-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)


 

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

8152. Технологический процесс производства заготовок валов диаметром не ниже 150 мм 254.42 KB
  Вариант 1 Опишите технологический процесс производства заготовок валов диаметром не ниже 150 мм. Вал ответственного назначения. Для изготовления наиболее ответственных деталей, для которых требуется материал особой прочности в крупных сечениях, испо...
8153. Разработка структурной схемы системы связи, предназначенной для передачи данных и передачи аналоговых сигналов методом ИКМ для заданного вида модуляции и способа приема сигналов 529 KB
  Задание - Разработать структурную схему системы связи, предназначенной для передачи данных и передачи аналоговых сигналов методом ИКМ для заданного вида модуляции и способа приема сигналов. Рассчитать ...
8155. Проектирование и исследование динамической загруженности легкового автомобили с двухтактным двигателем внутреннего сгорания 1.08 MB
  Проектирование и исследование динамической загруженности легкового автомобили с двухтактным двигателем внутреннего сгорания. Описание схемы и работы машины. Легковой переднеприводной автомобиль приводится в движение двухтактным двигателем внутрен...
8156. Типы и структуры данных 60.5 KB
  Типы и структуры данных Тип данного определяется множеством значений данного и набором операций, которые можно выполнять над этими значениями в соответствии с известными свойствами. Тип - важная характеристика элементарного или неструктурирован...
8157. Процесс проведения технической подготовки производства 190.55 KB
  Введение I. Теоретические аспекты процесса технической подготовки производства. Понятие системы технической подготовки производства. Конструкторская подготовка производства. Технологическая подготовка производства Планирование процесса...
8158. Разработка технологии изготовления тормозной колодки 210 KB
  Вводная часть. Назначение детали, узла, особенности эксплуатации и ТО Тормозная колодка входит в состав колодочного тормоза, который предназначен для снижения скорости движения грузоподъёмной машины с постоянным или изменяемым замедлением, а т...
8159. Процесс разработки автоматизации электроприводов 1.73 MB
  Техническое совершенство производственного механизма и осуществляемого им технологического процесса в значительной мере определяется совершенством соответствующего электропривода и степенью его автоматизации. Автоматизированный представляет...
8160. Проектирование 10-этажный 40 квартирный жилого дома 102 KB
  Задание на курсовой проект и исходные данные. Жилой дом 10-этажный 40 квартирный. Размеры здания 25200 х 13800 м Район строительства - Удмуртия г. Ижевск Грунты суглинки m=0,5 Группа грунта II Грунтовые воды на глубине 3 м. Глубина промерзани...