Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия | Следующая версия Следующая версия справа и слева | ||
lesson9 [2018/12/19 14:19] golikov |
lesson9 [2018/12/19 14:30] golikov |
||
---|---|---|---|
Строка 116: | Строка 116: | ||
Теперь прокрутите таблицу вниз и запомните последнее значение измеренного угла. | Теперь прокрутите таблицу вниз и запомните последнее значение измеренного угла. | ||
- | {{::09image035.png?nolink&400|}} | + | {{::09image035.png?nolink&600|}} |
Удалите в начале таблицы все данные до этого угла. | Удалите в начале таблицы все данные до этого угла. | ||
- | {{::09image037.png?nolink&400|}} | + | {{::09image037.png?nolink&600|}} |
+ | |||
+ | Теперь данные начинаются и заканчиваются примерно с одного и того же угла, следовательно, Орбикрафт совершил один оборот вокруг своей оси. | ||
+ | Учитывая то, что магнитометр измеряет углы с погрешностью, на его показания при ориентации по солнечным датчикам опираться нецелесообразно. | ||
+ | Так как Орбикрафт при сборе данных вращался равномерно, то можно рассчитать точные углы. | ||
+ | Подсчитайте количество строк с данными, у меня получилось 441 строка. | ||
+ | |||
+ | {{::09image039.png?nolink&200|}} | ||
+ | |||
+ | Это число может быть немного больше или меньше в зависимости от скорости вращения Орбикрафта. | ||
+ | Так как окружность делится на 360 градусов, то угол в каждой строчке нашей таблицы должен отличаться от предыдущего на 360/441= 0,816327 градусов. | ||
+ | В верхнюю ячейку столбца К (ячейка К1) скопируйте угол из ячейки J1. | ||
+ | В ячейку К2 введите следующую формулу. | ||
+ | |||
+ | {{::09image040.png?nolink&100|}} | ||
+ | |||
+ | Дважды кликните на правый нижний угол ячейки К2 и формула будет скопирована во все ячейки столбца К. | ||
+ | |||
+ | {{::09image041.png?nolink&100|}} | ||
+ | |||
+ | Теперь все значения углов надо привести к диапазону от -180 до 180 градусов. | ||
+ | Найдите строку, в которой значение угла больше 180 градусов и измените в ней формулу. | ||
+ | |||
+ | {{::09image042.png?nolink&200|}} | ||
+ | |||
+ | Формулы в других ячейках не изменяйте. Теперь все углы в таблице находятся в диапазоне от -180 до 180. | ||
+ | |||
+ | {{::09image043.png?nolink&100|}} | ||
+ | |||
+ | Чтобы визуально оценить погрешность магнитометра постройте график по крайним правым столбцам со значениями углов. | ||
+ | |||
+ | {{::09image044.png?nolink&400|}} | ||
+ | |||
+ | На графике хорошо видно, что даже калиброванный магнитометр имеет погрешность в измерении углов. | ||
+ | Теперь нужно удалить ненужные данные из таблицы. | ||
+ | Скопируйте столбец К и вставьте данные как значения в столбец L. | ||
+ | Теперь удалите столбцы J и K и первый столбец А со значениями времени измерений. | ||
+ | Если в Excel целую часть от десятичной отделяет запятая, то в Python – точка. С помощью функции замены (Ctrl-H) замените все запятые в файле на точки. | ||
+ | |||
+ | {{::09image045.png?nolink&400|}} | ||
+ | |||
+ | Теперь нужно переместить обработанные данные обратно в Notepad++. | ||
+ | Выделите все данные в Excel и нажмите Ctrl-C. | ||
+ | Откройте Notepad++, создайте новый проект и вставьте в него данные с помощью Ctrl-V. | ||
+ | |||
+ | {{::09image046.png?nolink&400|}} | ||
+ | |||
+ | Вставленные данные разделены с помощью табуляции и символов переноса строки, нам же надо чтобы числа по правилам языка Python были разделены запятой и пробелом. Нажмите Ctrl-H и введите в верхнее окошко \t, а в нижнее – запятую с пробелом. Нажмите на «Заменить все» или «Заменить во всех открытых документах». | ||
+ | |||
+ | {{::09image047.png?nolink&400|}} | ||
+ | |||
+ | Теперь надо заменить аналогичным образом символ переноса строки. Нажмите Ctrl-H и введите в верхнее окошко \r\n, а в нижнее – запятую с пробелом. Нажмите на «Заменить все» или «Заменить во всех открытых документах». | ||
+ | |||
+ | {{::09image048.png?nolink&400|}} | ||
+ | |||
+ | Теперь все данные расположены в одну строку. На ее основе мы создадим массив. Сохраните файл с данными в формате txt. | ||