Инструменты пользователя

Инструменты сайта


mag_subsys

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

mag_subsys [2018/03/23 01:01]
eliseev
mag_subsys [2020/03/25 16:28]
Строка 1: Строка 1:
-**Магнитометр** \\  
-Виртуальное [[power_subsys|потребление]] - 40мА 
- 
-{{ магнитометр.png?​direct&​200|}} 
-Чаще всего при проектировании космических аппаратов,​ работающих на низких орбитах,​ в качестве одного из устройств определения ориентации (как правило,​ дополняющего солнечные датчики),​ используют магнитометр. ​ 
- 
-Магнитометр измеряет магнитное поле вокруг себя, выдавая три компоненты вектора индукции магнитного поля, в единицах,​ измеряемых в Тесла. В идеальных условиях магнитометр на борту спутника измеряет именно геомагнитное поле Земли - то самое, которое заставляет поворачивать стрелку компаса у наземного пользователя. Однако в реальной жизни конструкция любого спутника содержит в своем составе магнитные материалы (например,​ постоянные магниты электроприводов),​ поэтому магнитометр измеряет некое суммарное поле Земли и поле самого спутника - т.н. суперпозицию полей. 
- 
-Сравнение показаний магнитометра с расчетными значениями модели геомагнитного поля позволяют оценить ориентацию (а в некоторых случаях и положение) космического аппарата в пространстве. При проведении экспериментов с конструктором ОрбиКрафт предполагается использование магнитометра в качестве прибора как для определения ориентации,​ так и для определения положения спутника на "​орбите",​ т.е. для навигации. При этом "​геомагнитное"​ поле, измеряемое магнитометром на борту, создается специальной лабораторной оснасткой Терра и управляется от компьютера по заранее заданному и известному закону управления. 
- 
-Для получения текущих показаний магнитометра используется функция (на языке C): \\  
- 
-<code c> 
-int32_t magnetometer_request_raw(uint16_t num,int16_t *pRAW_dataX,​int16_t *pRAW_dataY,​int16_t *pRAW_dataZ);  ​ 
-</​code>​ 
- 
-Внутри констуктора ОрбиКрафт,​ как и на реальных аппаратах,​ показания магнитометра зависят не только от внешнего "​геомагнитного"​ поля. Другие приборы (в основном двигатели [[wheel_subsys|маховика]] и [[power_subsys|система энергопитания]]) могут вносить помехи в измерения,​ поэтому не рекомендуется установка магнитометра в непосредственной близости от этих устройств. ​ 
- 
-**Код проверки магнитометра на языке C** 
- 
-<code c> 
-  #include "​libschsat.h"​ 
-  ​ 
-  /* 
-  ** Lab 2: get a raw data from a magnetometer 
-  */ 
-  void control(void) 
-  { 
-  int i; 
-  const int num = 1; /* magnetometer #1 */  ​ 
-  printf("​Enable magnetometer #​%d\n",​ num);  ​ 
-  magnetometer_turn_on(num);  ​ 
-  printf("​Get RAW data from magnetometer #​%d\n",​ num);  ​ 
-  for (i = 0; i < 10; i++) { 
-  int16_t x, y, z; 
-  if (LSS_OK == magnetometer_request_raw(num,​ &x, &y, &z)) { 
-  printf("​%d:​ x=%d y=%d z=%d\n",​ i, x, y, z); 
-  } else { 
-  puts("​Fail!"​);​ 
-  } 
-  Sleep(1); 
-  } 
-  printf("​Disable magnetometer #​%d\n",​ num); 
-    magnetometer_turn_off(num);​ 
-  } 
-</​code>​ 
- 
-**Код проверки магнитометра на языке Python** 
- 
-<code python> 
-  def control(): # Основная функция программы,​ в которой нужно вызывать остальные функции 
-   mgn_result = [0,0,0,0] # Инициализируем mgn_result 
-   num = 1 
-   print "​Enable magnetometer №", num 
-   magnetometer_turn_on(num) 
-   sleep(1) 
-   print "Get RAW data from magnetometer"  ​ 
-   for i in range(10): 
-   mgn_result = magnetometer_request_raw(num) 
-   if not mgn_result[0]:​ # если датчик вернул сообщение об ошибке,​ 
-   print "​state:",​ mgn_result[0],​ "x_raw =", mgn_result[1],​ "y_raw =", mgn_result[2],​ "z_raw =", mgn_result[3] # Обратите внимание на символ переноса строки! 
-   elif mgn_result[0] == 1: 
-   print "Fail because of access error, check the connection"​ 
-   elif mgn_result[0] == 2: 
-   print "Fail because of interface error, check your code" 
-   sleep(1) 
-  
-   print "​Disable magnetometer №", num 
-   magnetometer_turn_off(num) 
-</​code>​ 
  
mag_subsys.txt · Последние изменения: 2020/03/25 16:28 (внешнее изменение)

Инструменты страницы