[image]

Использование твердотельных гироскопов в ракетомоделях

 
1 26 27 28 29 30 53
RU RocKI #25.06.2015 14:17  @Бывший генералиссимус#25.06.2015 09:55
+
-
edit
 

RocKI

опытный

Б.г.> Давайте здесь всё же об автомате угловой стабилизации? можно об управлении вектором тяги или хоть воздушными рулями.

Да, я что-то запутался в смыслах темы. Все же основная задача какая? Управление направлением полета?
   43.0.2357.13043.0.2357.130

pinko

опытный

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

SashaMaks> Смоделировал полёт ракеты под углом в своём симуляторе, задал начальный угол наклонения от вертикали и начальную ось поворота.

Учитывает механическую структуру и как MEMS акселерометры работает, как вы учитываете коррекция компонента гравитации в данных датчика для 1D акселерометры в ваших моделирования? Смотрите следующую несложную схему. То, что я имею в виду это ошибка из-за предполагаемой коррекции 1ж на каждые точки данных, учитывая что мы не знаем, если акселерометр наклонен или нет, а мы всегда корректироваме с 1ж.



Период 0:
- акселерометр показывает: 1ж
- гравитационной компонент: 1ж
- предполагаемая коррекция гравитации: 1ж
- вычислено ускорение ракеты: 0ж
- реальное ускорение ракеты: 0ж

Период 1:
- акселерометр показывает: 6ж
- гравитационной компонент: 1ж
- предполагаемая коррекция гравитации: 1ж
- вычислено ускорение ракеты: 5ж
- реальное ускорение ракеты: 5ж

Период 2:
- акселерометр показывает: -3ж
- гравитационной компонент: 1ж
- предполагаемая коррекция гравитации: 1ж
- вычислено ускорение ракеты: -4ж
- реальное ускорение ракеты: -4ж

Период 3:
- акселерометр показывает: -2ж
- гравитационной компонент: 0,7ж
- предполагаемая коррекция гравитации: 1ж
- вычислено ускорение ракеты: -3ж
- реальное ускорение ракеты: -2,7ж

Период 4:
- акселерометр показывает: -1ж
- гравитационной компонент: 0,3ж
- предполагаемая коррекция гравитации: 1ж
- вычислено ускорение ракеты: -2ж
- реальное ускорение ракеты: -1,3ж

Период 5:
- акселерометр показывает: -0,2ж
- гравитационной компонент: 0ж
- предполагаемая коррекция гравитации: 1ж
- вычислено ускорение ракеты: -1,2ж
- реальное ускорение ракеты: -0,2ж

Saturn5> Eто бъйло для pinko как видиш я цитировал его слова.
Очевидно ты опытный специалист - искренне благодарю тебе за бесценную помощь.
   38.038.0

Xan

координатор

...
pinko> Период 5:
pinko> - акселерометр показывает: -0,2ж
pinko> - гравитационной компонент: 0ж
pinko> - предполагаемая коррекция гравитации: 1ж
pinko> - вычислено ускорение ракеты: -1,2ж
pinko> - реальное ускорение ракеты: -0,2ж

Я так и считал.

Надо всё это перенести в "Грузик" или ещё куда.
   
+
-
edit
 

SashaMaks
SashaPro

аксакал

☠☠
pinko> Учитывает механическую структуру и как MEMS акселерометры работает, как вы учитываете коррекция компонента гравитации в данных датчика для 1D акселерометры в ваших моделирования? Смотрите следующую несложную схему. То, что я имею в виду это ошибка из-за предполагаемой коррекции 1ж на каждые точки данных, учитывая что мы не знаем, если акселерометр наклонен или нет, а мы всегда корректироваме с 1ж.

Нет там никакого 1G.

Было уже думал написать, что ошибка только у Б.Г. осталась, но Xan не исправился, что странно, ведь был правильный ответ. Ну нет, так нет.
Б.Г. и Xan сделали ошибку в составлении уравнений динамики при использовании сырых данных с акселерометра, причём не важно какого 1D или 3D.

Ещё тут это писалось, но прошло мимо, пролетело, как фанера над деревней:

Электронное оборудование ракет - БРЭО,часть XIV [SashaMaks#13.06.15 22:30]

… Пусть показывает. … -g, и ракета стоит на месте. … -g, и будет показывать -g.// Ракетомодельный
 


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

Если из них вычесть обратно g, то получится такая кривая, что для определения апогея по 1D акселерометру будет достаточно просто суммировать голые попугаи без всего, когда полученная сумма дойдёт до исходного значения на старте, можно выбрасывать парашют.

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

Вот расчёт для такой системы с углом наклона в 55гр.
Прикреплённые файлы:
 
   43.0.2357.13043.0.2357.130
RU SashaMaks #25.06.2015 18:10  @SashaMaks#25.06.2015 18:08
+
-
edit
 

SashaMaks
SashaPro

аксакал

☠☠
SashaMaks> Вот расчёт для такой системы с углом наклона в 55гр.

И тоже самое для угла наклона в 10гр.
Прикреплённые файлы:
 
   43.0.2357.13043.0.2357.130
RU SashaMaks #25.06.2015 18:22  @SashaMaks#25.06.2015 18:08
+
-
edit
 

SashaMaks
SashaPro

аксакал

☠☠
SashaMaks> Если смоделировать работу датчика, то получится, что нужно убрать ускорение свободного падения из общего инерционного ускорения для него...

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

pinko

опытный

Xan> Я так и считал.

Ну спасибо для моделирования, ладно что мы понимаемся. :)
   38.038.0
BG Незнайко #25.06.2015 22:56  @pinko#25.06.2015 16:32
+
-3
-
edit
 

Незнайко
Saturn5

втянувшийся
☆★
админ. бан
pinko> Очевидно ты опытный специалист - искренне благодарю тебе за бесценную помощь.
Ненужно иронизироват, от етого твои минималнъе познания по физике полета не повъйсится ни на милиметра:)
   
RU Бывший генералиссимус #25.06.2015 23:22  @SashaMaks#25.06.2015 12:26
+
-
edit
 
Б.г.>> Простой ответ - никак, если он находится в свободном падении.
SashaMaks> Это ответ на другой вопрос. Т.е. это не ответ на мой вопрос. В моём вопросе данного "если" не было.

Да, но акселерометр на ракете именно что находится в свободном падении. И может регистрировать только небольшое сопротивление воздуха. Ну, в начале торможения - большое сопротивление воздуха.
   11.011.0

RocKI

опытный

pinko> ладно что мы понимаемся. :)

Я вам искренне завидую. Мне не понятно. Нет, может оно конечно есть некое эстетическое удовольствие в решении школьных уравнений механики, но зачем? Отслеживание траектории нужно только в одном случае - выход на орбиту. Но для этого нужно не только хорошие моторы и жаропрочные ГО, но и управление вектором тяги. Я же слышу только "рулевые поверхности", "определение апогея" и т.п. Для вертикального полета достаточно обеспечить вертикаль, т.е. ловить и компенсировать отклонения. Для этого не нужно считать траекторию.
   43.0.2357.13043.0.2357.130
CA pinko #26.06.2015 01:24  @Незнайко#25.06.2015 22:56
+
-
edit
 

pinko

опытный

Незнайко> Ненужно иронизироват, от етого твои минималнъе познания по физике полета не повъйсится ни на милиметра:)
Saturn5> Я тебе сказал но у тебя нет елементарнъйх познаниях физики так что продолжай изобретат "грузик"

Извиняюсь за оффтоп!

Я не вижу причины для этих и других (в этом и других темах) прямые и косвенные личных нападок, каторой Вы, Saturn5 с ник "Незнайко", делаете на меня. Так как мы никогда не встречались, очевидно что Вы чувствуете себя оскорбленным за то, что я когда-либо сказал - я не помню такого случая, но если Вы чувствуете что это так - то я извиняюс ... пожалуйста, можно сейчас остановитe с личные нападок против меня?
   38.038.0
Это сообщение редактировалось 26.06.2015 в 05:21

Xan

координатор

Внезапно догадался ткнуть магнитом в имеющийся у меня генератор на 12.8 МГц и обнаружил, что он магнитится.
То есть, он будет искажать магнитное поле, которое я собираюсь мерить магнитометром, расположенным на этой же плате.
Искажение магнитного поля магнитомягкой железкой оценивается так (а магнитожёсткая просто смещает нули, с ней проще):

относительная_ошибка = ((длина + ширина + высота) / 2 / расстояние_до_магнитометра)3

Это значит, что если хочется ошибку меньше 1/1000, то железка размерами 8 мм должна находиться от датчика на расстоянии больше 40 мм. Какая-то огромная плата получается! :)

Ну, помчался в лабаз, искать что-нибудь другое.
Тем более, что мне захотелось заодно поменять частоту с 12.8 на 7.3728 MГц.
Нашёл такой генератор, размер у него в два раза меньше, так что если он и железный (а скорее всего), то допустимое расстояние будет миллиметров 20, уже вполне приемлемо.

С новым генератором у UART получаются точные частоты (мне хотелось 230400).

С новым генератором в моём МК можно включить учетверение системной частоты, так что скорость счёта повысится в 2.3 раза, по сравнению с генератором на 12.8 МГц.

Сплошное щястие!!! :)


Потом задумался о скорости отсчётов.
Конечно, 400 в секунду — это хорошо. Но нужно ли?
У рулевых машинок предельная частота управляющих импульсов 140 в секунду, в три раза меньше.
Если складывать три последовательных отсчёта, то получится 133 в секунду, как раз уложится в 140.
И считать можно будет в три раза реже.
Но и ошибка приближения косинусов (1 - x2 / 2) при максимальной скорости вращения будет 1/5000.

Но тут вскакивает вопрос, а будет ли в нормальном полёте максимальная скорость вращения?

Если машинка отрабатывает команду за 0.05 с, то "туда-сюда" она отработает за 0.1 с, это как бы 10 колебаний в секунду = 10 Гц.
Вообще-то, врядли машинка сможет управлять ракетой, которая колеблется с такой частотой, слишком большая она. Но, предположим, ракета так колеблется.
Если при этом колебания имеют амплитудную скорость 2000 градусов в секунду, то эта амплитуда колебаний будет равна:

x = A * sin(w * t) — колебания по синусоиде

dx/dt = A * w * cos(w * t) — скорость колебаний

Максимальная_скорость = A * w * Косинус_нуля

A = Максимальная_скорость / w

2000 град/с = 2000 / 2 / pi = 34.9 рад/с

10 Гц = 2 * pi * 10 = 62.8 рад/с

A = 34.9 / 62.8 = 0.55 радиана = 32 градуса.

Шибко много, однако! Если ракета будет рыскать на ± 32 градусов, это врядли можно назвать нормальным полётом! :)
Если же предположить, что рыскать она будет всего на несколько градусов, и частота этих рысканий будет меньше 10 Гц, то измеряемая гироскопами скорость вращения будет в десятки раз меньше максимальной, так что ошибки в арифметике будут совсем небольшие, миллионные и меньше.

То есть, не имеет особого смысла делать 400 вычислений в секунду, а лучше уменьшить скорость до той, которую машинки могут переварить — 400 / 3 = 133.
При этом вычисления (с новым генератором) будут занимать менее 30% времени.
   
RU Бывший генералиссимус #02.07.2015 22:48  @RocKI#26.06.2015 01:24
+
-
edit
 
Ну, что, слетали сегодня с гироскопом. правда, рулями крутить не пробовали, решили, на первый раз только запишем данные на флэшку.
Парашют не вышел, ракета упала в лес, но мы её успешно нашли, данные сняли. Правда, рули обломились, так что предстоит серьёзный ремонт.
Вот данные.
К сожалению, угловое положение удастся проинтегрировать только до 1,13 секунды - дальше скорость по крену ушла в зашкал. А жаль - по другим осям скорости были более умеренные.
Прикреплённые файлы:
полёт_02_07.png (скачать) [1264x832, 33 кБ]
 
 
   11.011.0
RU RocKI #03.07.2015 00:04  @Бывший генералиссимус#02.07.2015 22:48
+
-
edit
 

RocKI

опытный

Б.г.> Вот данные.


Не мог бы ты трактануть поведение ракеты в свете этих данных? А то с чтением такого графика есть некоторые сложности.
   43.0.2357.13043.0.2357.130
RU Бывший генералиссимус #03.07.2015 00:12  @RocKI#03.07.2015 00:04
+
-
edit
 
Б.г.>> Вот данные.
RocKI> Не мог бы ты трактануть поведение ракеты в свете этих данных? А то с чтением такого графика есть некоторые сложности.

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

Плюс продольное ускорение в метрах в секунду (для "же" надо поделить на 9,81).

Ракета поднялась на 180 метров (по барометрическому датчику), но парашют не вышел, и ракета упала в лес, на деревья. Обломала о деревья рули.

Если бы парашют вышел, не исключено, что ракету мы бы вовсе не нашли.

Если бы ракета полетела достаточно вертикально, то она бы поднялась на 225 метров, а не на 180.
От старта до падения прошло 18 секунд. Здесь, на графике, только до апогея.
Время по горизонтальной оси в секундах, угловые скорости в градусах в секунду, ускорение в метрах в секунду в квадрате.
   11.011.0
RU RocKI #03.07.2015 00:44  @Бывший генералиссимус#03.07.2015 00:12
+
-
edit
 

RocKI

опытный

Б.г.> Время по горизонтальной оси в секундах, угловые скорости в градусах в секунду, ускорение в метрах в секунду в квадрате.

А с чем связана эта синусоида по х и у?
   43.0.2357.13043.0.2357.130
RU Бывший генералиссимус #03.07.2015 01:01  @RocKI#03.07.2015 00:44
+
-
edit
 
Б.г.>> Время по горизонтальной оси в секундах, угловые скорости в градусах в секунду, ускорение в метрах в секунду в квадрате.
RocKI> А с чем связана эта синусоида по х и у?

Малым запасом устойчивости (расстоянием между ЦТ и ЦД) и малым демпфированием колебаний (решётчатые рули гораздо меньше демпфируют, чем классика). Вот ракету и колбасило. А после прохождения апогея она вовсе полетела почти плашмя. А дальше падала хвостом вниз.
   11.011.0
RU RocKI #03.07.2015 01:54  @Бывший генералиссимус#03.07.2015 01:01
+
-
edit
 

RocKI

опытный

Б.г.> Малым запасом устойчивости (расстоянием между ЦТ и ЦД) и малым демпфированием колебаний (решётчатые рули гораздо меньше демпфируют, чем классика).

Трудно представить синусоидальное изменение амплитуды угловой скорости с такой частотой.
А управлять будете полностью поворотными решетками?

Можно для начала компенсировать только крен и посмотреть работу электроники. А то осевое вращение очень путает восприятие поведения ракеты.
   43.0.2357.13043.0.2357.130
RU Бывший генералиссимус #03.07.2015 08:56  @RocKI#03.07.2015 01:54
+
-
edit
 
Б.г.>> Малым запасом устойчивости (расстоянием между ЦТ и ЦД) и малым демпфированием колебаний (решётчатые рули гораздо меньше демпфируют, чем классика).
RocKI> Трудно представить синусоидальное изменение амплитуды угловой скорости с такой частотой.

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

RocKI> А управлять будете полностью поворотными решетками?

Да.

RocKI> Можно для начала компенсировать только крен и посмотреть работу электроники. А то осевое вращение очень путает восприятие поведения ракеты.

Да, так и предполагается. Но в этом полёте мы при приземлении обломали все четыре руля о деревья, надо новые делать.
   11.011.0
RU RocKI #03.07.2015 10:34  @Бывший генералиссимус#03.07.2015 08:56
+
-
edit
 

RocKI

опытный

Б.г.> Да, так и предполагается. Но в этом полёте мы при приземлении обломали все четыре руля о деревья, надо новые делать.

В этом смысле классический стаб труднее сломать и проще восстановить.
Машинки не устанавливали?
   43.0.2357.13043.0.2357.130
RU Бывший генералиссимус #03.07.2015 13:35  @RocKI#03.07.2015 10:34
+
-
edit
 
RocKI> В этом смысле классический стаб труднее сломать и проще восстановить.

Стабилизатор - может быть, но не руль, стоящий на оси. Тут паритет.

RocKI> Машинки не устанавливали?

Машинки стояли, но они не пострадали - "где надо" порвались рулевые тяги.
   11.011.0
RU RocKI #03.07.2015 13:50  @Бывший генералиссимус#03.07.2015 13:35
+
-
edit
 

RocKI

опытный

Б.г.> "где надо" порвались рулевые тяги.

Подстелили соломку! ;) И все же ССР должна как часы. Я бы даже продублировал.
   43.0.2357.13043.0.2357.130
KZ Xan #03.07.2015 14:25  @Бывший генералиссимус#02.07.2015 22:48
+
-
edit
 

Xan

координатор

Б.г.>

"Синусоиды", похоже, сдвинуты по фазе на 90 градусов и являются просто следствием того, что ось ракеты "вращается", описывая конус.
Возможно, из-за быстрого вращения по крену.

А смотрели, как работают рули, когда ракету руками наклоняешь/вращаешь?
   
RU Бывший генералиссимус #03.07.2015 15:10  @Xan#03.07.2015 14:25
+
-
edit
 
Б.г.>>
Xan> "Синусоиды", похоже, сдвинуты по фазе на 90 градусов и являются просто следствием того, что ось ракеты "вращается", описывая конус.
Xan> Возможно, из-за быстрого вращения по крену.

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

Xan> А смотрели, как работают рули, когда ракету руками наклоняешь/вращаешь?

Нет. И в этом полёте машинки вообще были застопорены.

Файл с данными приложен к сообщению. Данные в формате csv.
Первые три колонки - угловые скорости (1 LSB = 0.00125 градуса в секунду, период 1/409,6 секунды), следующие три колонки - ускорения по осям, 8020 LSB = 1 g.

Только там есть маленькая хитрость. Данные, на самом деле, 17-битные, и старший бит кое-где потерян. Я его восстанавливал руками по такому алгоритму - если разница 2 соседних сэмплов больше 65000 в ту или другую сторону, считать, что 17-й бит изменил значение в ту или, соответственно, другую сторону. Но угловая скорость по крену переполнилась и за пределы этого хака.
Прикреплённые файлы:
 
   43.0.2357.13043.0.2357.130
AD Реклама Google — средство выживания форумов :)
RU Бывший генералиссимус #03.07.2015 15:28  @Бывший генералиссимус#02.07.2015 22:48
+
-
edit
 
Б.г.> К сожалению, угловое положение удастся проинтегрировать только до 1,13 секунды - дальше скорость по крену ушла в зашкал. А жаль - по другим осям скорости были более умеренные.

Эх, в экселевском файле допущена ошибка, из-за которой угловые скорости, показанные на графике, в 2 раза больше, чем было на самом деле. Т.е. где написано "100", читать "50" градусов в секунду.

Ускорение правильное, максимум был в районе 50 м/с2.
   43.0.2357.13043.0.2357.130
1 26 27 28 29 30 53

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru