[image]

Электронное оборудование ракет - БРЭО,часть XIV

 
1 169 170 171 172 173 253
RU Бывший генералиссимус #24.01.2015 20:49  @Xan#24.01.2015 15:01
+
-
edit
 
Б.г.>> Критическая перегрузка для компьютерного "джампера", в зависимости от изготовителя (и, соответственно, марки сплава контакта, толщины и т.д.) составляет 150-500 "же".
Xan> Это эксперименты?

Да, на ударном стенде. В ОКБ "ТЕМП", г. Арзамас, начальник моей сестры делал.

Xan> Надо будет всё проверять. И по всем осям.

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

Xan> Интересно, а кварцы и кварцевые генераторы сколько терпят?
Xan> И ползёт ли у них частота?

Ползёт, поскольку увеличивается сопротивление держателя и т.д. Выглядит, как ускоренное старение. Для кварцев в корпусе Б1 50 "же" терпят обратимо, 100 "же" обычно вызывает необратимые изменения, но не разрушение, уменьшается добротность и немного вниз съезжает частота. Но, чем меньше кристалл, тем более относительно он прочен, современные SMD резонаторы легко выдерживают 2000 "же". А в специсполнении и 10000 "же" могут.
   11.011.0
LT Lioxa #09.03.2015 15:44  @Бывший генералиссимус#24.01.2015 20:49
+
-
edit
 

Lioxa

втянувшийся
Хочу сделать новое БРЕО , на основе ардуино, датчика давления BMP180 и акселерометра ADXL345, данные кидать в AT45DB321D.
Вроде все ясно кроме акселерометра, по дефалту он выдает данные по 3 осям , и показывает угловое ускорение м/с2 , мне нужны единицы G. Значит беру ось z и умножаю на 0.031 это при 16г. и получаю красивый график ускореиня ?
   40.0.2214.11540.0.2214.115
RU Бывший генералиссимус #09.03.2015 17:08  @Lioxa#09.03.2015 15:44
+
-
edit
 
Lioxa> Хочу сделать новое БРЕО , на основе ардуино, датчика давления BMP180 и акселерометра ADXL345, данные кидать в AT45DB321D.
Lioxa> Вроде все ясно кроме акселерометра, по дефалту он выдает данные по 3 осям , и показывает угловое ускорение м/с2 , мне нужны единицы G. Значит беру ось z и умножаю на 0.031 это при 16г. и получаю красивый график ускореиня ?

Во-первых, не угловое, а линейное, во-вторых, как ты оси сориентируешь, я не знаю :) Я же не знаю, какой у тебя калибр ракеты, может, туда ардуина плашмя войдёт, а, может, только боком :)

Ну, а в-третьих, да, если помножить 32 LSB/g на 0,031, то получится перегрузка в желаемых единицах, только не напутай при преобразовании типов (INT во FLOAT). Правда, у акселерометра разброс плюс-минус 10% от номинала, так что, в программе нужно предусмотреть калибровку и подстройку.

А ещё у него перекос осей датчиков, отклонение нуля и т.д.

Я подбирал смещения и коэффициенты, для акселерометра, встроенного в ADIS16300, таким методом - сумма квадратов показаний по трём осям после коррекции должна быть постоянна во всех положениях прибора. Для этого нужен качающийся стол или его эквивалент, да :)
   11.011.0
RU Бывший генералиссимус #09.03.2015 17:13  @Lioxa#09.03.2015 15:44
+
-
edit
 
Lioxa> Значит беру ось z и умножаю на 0.031 это при 16г.
Однажды (давным-давно) я сопрягал вход АЦП ADIS16251 (у него есть выведенный наружу канал, правда, однополярный) с выходом акселерометра ADXL150. Всё бы ничего, но у АЦП 0 вольт - это 0000, а 2,5 вольта - 0xfff. А у акселерометра ноль - это 2,5 вольта, а, в зависимости от направления ускорения, он может выдавать как вверх, так и вниз :). Пришлось поставить его вверх ногами. Тогда обычное "же" давало ему смещение в нужную сторону. Он мог регистрировать от невесомости до плюс 25 "же", но с его точки зрения, это было минус 25 "же".
   11.011.0
LT Lioxa #09.03.2015 17:47  @Бывший генералиссимус#09.03.2015 17:08
+
-
edit
 

Lioxa

втянувшийся
Б.г.> А ещё у него перекос осей датчиков, отклонение нуля и т.д.
Б.г.> Я подбирал смещения и коэффициенты, для акселерометра, встроенного в ADIS16300, таким методом - сумма квадратов показаний по трём осям после коррекции должна быть постоянна во всех положениях прибора. Для этого нужен качающийся стол или его эквивалент, да :)

А можно с этого места поподробнее :) Вот на столе ADX лижит никого нетргает. Шлет такую кашу .
X Y Z
-1.05g,-3.44g,-2.64g
-1.09g,-3.44g,-2.54g
-1.05g,-3.41g,-2.57g
-1.12g,-3.44g,-2.57g
-1.05g,-3.44g,-2.57g
-1.05g,-3.41g,-2.54g
-1.09g,-3.44g,-2.54g
-1.09g,-3.41g,-2.57g
-1.09g,-3.44g,-2.54g
-1.05g,-3.47g,-2.54g
-1.05g,-3.44g,-2.54g

Как мне получить 0 ?
   40.0.2214.11540.0.2214.115
RU Бывший генералиссимус #10.03.2015 01:31  @Lioxa#09.03.2015 17:47
+
-
edit
 
Б.г.>> А ещё у него перекос осей датчиков, отклонение нуля и т.д.
Б.г.>> Я подбирал смещения и коэффициенты, для акселерометра, встроенного в ADIS16300, таким методом - сумма квадратов показаний по трём осям после коррекции должна быть постоянна во всех положениях прибора. Для этого нужен качающийся стол или его эквивалент, да :)
Lioxa> А можно с этого места поподробнее :) Вот на столе ADX лижит никого нетргает. Шлет такую кашу .
Lioxa> X Y Z
Lioxa> -1.05g,-3.44g,-2.64g
Lioxa> -1.09g,-3.44g,-2.54g
Lioxa> -1.05g,-3.41g,-2.57g
Lioxa> -1.12g,-3.44g,-2.57g
Lioxa> -1.05g,-3.44g,-2.57g
Lioxa> -1.05g,-3.41g,-2.54g
Lioxa> -1.09g,-3.44g,-2.54g
Lioxa> -1.09g,-3.41g,-2.57g
Lioxa> -1.09g,-3.44g,-2.54g
Lioxa> -1.05g,-3.47g,-2.54g
Lioxa> -1.05g,-3.44g,-2.54g
Lioxa> Как мне получить 0 ?
У него такие дикие смещения? что за ужас? Корень квадратный из суммы квадратов по трём осям получается 4,4 "же", значит, он не в режиме 16 "же", а в режиме 4 "же". Но, всё равно, если он лежит ровно-горизонтально, смещения слишком большие. По даташиту должно быть не больше 0,15 "же" по X и Y, и не больше 0,25 "же" по Z.
Ориентируешь плату с гироскопом шестью способами, направляя вдоль отвеса поочерёдно все оси в плюс и в минус. Находишь среднее показаний плюс же и минус же, делаешь смещение в математике через регистры 0x1e, 0x1f и 0x20. Но это грубая установка, она не учитывает нелинейность и перекос осей. Для точной надо подбирать ручками, я делал в экселе.
   11.011.0
+
+2
-
edit
 

pinko

опытный

Привет Lioxa,

вот несколько советов для вашего БРЭО:

- ADXL345 eто LGA пакета и будет трудно паять и проверить связи на плати. За ту же цену можно купить другой 3D-акселерометр который будет легче паять.
- ±16g можно быть недостаточно, вероятно 50% полета можно превышать ±16g
- цифровые акселерометры тоже нуждаются калибровку. Хороший способ калиброват сензора и получить функцию ускорение будет если вы сделаете ето в прошивке с помощью ускорению Земли.
- BMP180 тоже LGA пакета и будет сложно паять.
- AT45DB321D ето FLASH память, поэтому надо писать в ней в целых страниц по 512 байт - так что вам надо буфер в память контролера не менее к 512 байт. Уидел, что это память имеет внутренний RAM буфер.
- В зависимости как вы думаете обнаружить старта ракеты, вероятно будет нужен большой временный буфер в памяти контролера, так что не пропустите записать начало полета. Уидел, что это память имеет внутренний RAM буфер.
- Вам не нужно высокоя резолюция - 12 бит АЦП будет достаточно, но рекомендуется высокая скорость записи.

С уважением

П.с. Извините за плохой русский язык.
   36.036.0
Это сообщение редактировалось 10.03.2015 в 17:20

RocKI

опытный

pinko> Привет Lioxa,
pinko> вот несколько советов для вашего БРЭО:


pinko, ты забыл сказать, что в твоем активе много действующего (и успешно!) электронного оборудования. :)
   40.0.2214.11540.0.2214.115

Lioxa

втянувшийся
Что-то много колдовать надо с этим акселерометром, летный сезон не за горами , сделаю пока схему на датчике давления а там видно будет. Данные записываю на micro SD , в обычные файлы , места много потом прикручу акселерометр.
   40.0.2214.11540.0.2214.115

RocKI

опытный

Skyangel> Пуск был плановым. Тестировалось новое брэо

И какие выводы?
   41.0.2272.8941.0.2272.89
+
-
edit
 

Skyangel

опытный

Skyangel>> Пуск был плановым. Тестировалось новое брэо
RocKI> И какие выводы?
Ну, как видишь, все отработало штатно ;) Есть небольшие, как мне кажется, косячки с софтом, но это поправимо. Я , кстати, обновил график высоты..
   36.036.0
+
-
edit
 

Skyangel

опытный

Skyangel>> Пуск был плановым. Тестировалось новое брэо
RocKI> И какие выводы?
Как ты наверно знаешь, контроллер после завершения полета (т.е. приземления) должен переходить в спящий режим. При тестах в барокамере все так и работает. Но в реальности получилось следующее: ракета приземлилась на площадку, высота которой отличается от высоты места старта, а именно несколько выше места старта. Так вот, после приземления компьютер продолжал запись, пока я его не выключил. Скорее всего он думает, что еще летит :D Не большой баг, но с этим надо разобраться. И еще были проблемки с переносом данных на комп, но это, как я уже говорил, баги скорее софта. В общем буду работать ))
   36.036.0
+
-
edit
 

RocKI

опытный

Skyangel> Ну, как видишь, все отработало штатно ;)
Это хорошо, поздравляю. :)

Skyangel> Я , кстати, обновил график высоты..
Не заметил, а в чем?

Skyangel> высота которой отличается от высоты места старта
Надо немного изменить условия посадки. Я думаю тут не очень сложно.
   41.0.2272.8941.0.2272.89
+
-
edit
 

Skyangel

опытный

Skyangel>> Я , кстати, обновил график высоты..
RocKI> Не заметил, а в чем?
Изначально на графике были всплески - это сработал пиропатрон, а отсек с брэо у меня не очень хорошо изолирован :( Поэтому я удалил данные, которые явно не имеют отношения к графику высоты.
   36.036.0
+
-
edit
 

Skyangel

опытный

RocKI> Надо немного изменить условия посадки. Я думаю тут не очень сложно.
Есть идеи? Существующий алгоритм таков: если давление не изменялось в течении 2-х секунд и текущая высота не превышает 3-4 метров высоты точки старта, то это считается приземлением. Таким образом, если ракета приземлилась скажем на дерево (выше точки старта например на 10 метров), то это не считается приземлением и комп будет работать пока не закончится память или его не выключить. Алгоритм должен исключать любое двоякое толкование положения ракеты, дабы исключить возможность остановки записи, пока полет еще продолжается. Если это не получается, то лучше пусть комп пишет до заполнения памяти или ждет выключения питания :)
   36.036.0
+
-
edit
 

RocKI

опытный

Skyangel> Есть идеи? Существующий алгоритм таков: если давление не изменялось в течении 2-х секунд и текущая высота не превышает 3-4 метров высоты точки старта,

Ну, в принципе, все правильно, пусть пишет до упора. Как вариант - растянуть время контроля давления до 5-10 сек, а анализ высоты убрать совсем. Т.к. если ракета 5-10сек не меняет высоту, то значит отлеталась, или это не ракета. :)
Еще вариант, увеличить высоту контроля до 10 м. Такой перепад на местности вполне возможен и не критичен для анализа полета. Можно даже проверяемую высоту поставить в зависимость от высоты апогея, что вполне логично. Скажем 1%.
   41.0.2272.8941.0.2272.89
Это сообщение редактировалось 16.03.2015 в 11:27

Xan

координатор

RocKI> если ракета 5-10сек не меняет высоту, то значит отлеталась

Самое правильное.

Ну и надо использовать инструмент, разработанный для программирования Бурана.
Ракеты от этого сразу лучше летать начнут! :)

Ссылка на книжку, учебные ролики и на рабочую прогу:

Язык ДРАКОН

Интегрированная среда и программирование на языке ДРАКОН. // www.drakon-practic.ru
 

Картинки придают правильное направление уму программиста. Ставят на рельсы, чтоб не съезжать в болото ошибок.
   

Skyangel

опытный

RocKI>> если ракета 5-10сек не меняет высоту, то значит отлеталась
Xan> Самое правильное.
Мне не совсем понятно, что это даст? Данные с датчика все равно будут меняться, пусть совсем немного, но будут. За это время возможен порыв ветра например, который изменит показания датчика давления. Как определить диапазон допустимых изменений? ± метр? 1% от апогея - вариант, но для высотных пусков теряем довольно много по высоте.
   36.036.0

RocKI

опытный

Xan> Ссылка на книжку, учебные ролики

Первое впечатление хорошее. Для сложных схем и алгоритмов вещь полезная.
   41.0.2272.8941.0.2272.89
+
-
edit
 

RocKI

опытный

Skyangel> Мне не совсем понятно, что это даст? Данные с датчика все равно будут меняться, пусть совсем немного, но будут. За это время возможен порыв ветра например, который изменит показания датчика давления. Как определить диапазон допустимых изменений? ± метр? 1% от апогея - вариант, но для высотных пусков теряем довольно много по высоте.

Не, ну такие задачи всегда компромисс. Исходный алгоритм нормальный. Просто возможны другие рабочие алгоритмы, с другими недостатками. :) Кстати, процентовку тоже можно поставить в зависимость от апогея. :D
Но все же проще, без анализа исходной высоты. Вот и Хаn согласен. А критерий "неизменности" высоты можно задать из каких-то соображений, например, ± 5м за 5 сек.
А насчет ветра, я сомневаюсь, что он может повлиять на показания. Ведь по условиям "правильности" установки датчика давления он должен отлавливать только статику.
   41.0.2272.8941.0.2272.89

pinko

опытный

Спасибо за советы. Да, все что сказано правильно, но я тоже надо учитывать аппаратные ограничения етого БРЕО. :)

Здесь АЦП 12 бит с оверсемплинг на 13 бит и с некоторой усреднения для шума для обо каналов. Формулы преобразования АЦП -> высота не сложный, но они длинные и они всегда комбинации из
передаточные функции АЦП бит -> напряжение ; напряжение -> давление ; давление -> высота. Время между записями есть только 25 млсек. Вот в этот период времени надо будет семплинг и все проверки, а микроконтроллер только 8 бит с 12 млн. инструкции/секунду. Операционная памят также ограничена. Поэтому все программирования для части полета должно быть быстры a математике только с целыми числами.

Это означает, что все расчеты и сравнения во время полета сделани с целыми показаниями от АЦП и единственные операции есть: прибавление, вычитание и деление на 2 ^ n (n сдвиг вправо). Чтобы сделать это, на основе базовом давлении перед полета, все высоты в настройках преобразуются в целых чисел на базе 13бит АЦП и хранится в оперативную память для адресации.

Еще одно ограничение является точность АЦП - ето 13бит с оверсемплинг. При нормальной базовом давления это означает ~1,2 м/бит, а внутренний шум около 2бит. Так что если есть процентая проверка (деление), она надо быйт кратная 64 или 128, в то же время она должна превышать собственный шум. Так что это тоже не практично для низких полетов.

Поэтому я думаю, что лучше будет если сделаю как вы уже сказали - текущий алгоритм хранится и только контрольная высота увеличивается, сказать на 10м, а время увеличивается до 5-6 секунд ..

С уважением
   36.036.0

Xan

координатор

Skyangel> Данные с датчика все равно будут меняться, пусть совсем немного, но будут. За это время возможен порыв ветра например, который изменит показания датчика давления. Как определить диапазон допустимых изменений?

Если взять формулы для давления ветра и давления от высоты и скомбинировать, то получится, что ошибка высоты, которую может "надуть" ветер:

rho * v2 / 2 = rho * g * h

h = v2 / 2 / g

Для скорости ветра 10 м/с получается ошибка высоты 5 метров.

Скорость снижения ракеты не менее 5 м/с.
Если сравнивать старый отсчёт с новым с интервалом 5 секунд, то изменение высоты должно быть 25 и более метров.
Можно взять в качестве порога 15 метров, это будет одинаково далеко и от 25 и от 5.
   

pinko

опытный

Xan> Можно взять в качестве порога 15 метров, это будет одинаково далеко и от 25 и от 5.

Привет Xan,

Я боюсь, что может быть вертикальную порыв ветра (в летнее время), которы может в то же время усилить давление и замедлить или остановить спуск в течение 5 секунд и более. Как вы думаете, это возможно?

С уважением
   36.036.0

Xan

координатор

pinko> Я боюсь, что может быть вертикальную порыв ветра (в летнее время), которы может в то же время усилить давление и замедлить или остановить спуск в течение 5 секунд и более. Как вы думаете, это возможно?

1. Давление от скорости ветра меняется слабо — врядли кто-то будет пускать ракеты при скорости ветра 10 м/с, а эта скорость даёт ошибку всего 5 метров высоты.
2. Восходящие потоки могут остановить снижение, но это уже заключительная стадия полёта (после раскрытия парашюта, она не очень интересна, даже если не запишется.
3. Можно в программе взять более длинный интервал времени (10 секунд?), на нём искать максимальное и минимальное значение высоты и, если разница между ними меньше, скажем, 10 метров, то заканчивать запись. Врядли ракета столько провесит в потоке почти неподвижно.
4. Можно просто после апогея делить фактическую высоту на 5 м/с — получится предполагаемое время снижения. И через это время (+ некоторый запас) прекращать запись.
   
AD Реклама Google — средство выживания форумов :)

RocKI

опытный

Xan>> Можно взять в качестве порога 15 метров
pinko> Я боюсь, что может быть вертикальную порыв ветра (в летнее время),

Простите, господа, но вы рассматриваете случай влияния скоростного напора, когда ракета расположена перепускным отверстием против ветра и устойчиво в этом положении находится некоторое немалое время. При этом ветер рассматриваете 10 м/с, т.е. ну очень не слабый. При всем старании я так и не смог представить такую ситуацию. Точнее в голову лезут некие фантастические сюжеты. Особенно порадовало беспокойство pinko о восходящих потоках. :)
Да, какие-то редкие случайные забросы наверно возможны, но прозакладывать на них алгоритм посадочного условия совершенно бессмысленно.
   41.0.2272.8941.0.2272.89
1 169 170 171 172 173 253

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