[image]

Комплексное БРЭО

 
1 7 8 9 10 11 29
UA Serge77 #24.11.2010 20:16  @Alexeev Max#24.11.2010 19:53
+
-
edit
 

Serge77

модератор

Вот данные с высотомера для этого полёта:
http://balancer.ru/_bors/igo?o=forum_post__2267996

Четыре колонки данных это:
показания АЦП (сумма 64 измерений)
напряжение на выходе датчика давления
давление
высота
Прикреплённые файлы:
 
   3.6.123.6.12
RU Alexeev Max #24.11.2010 20:39  @Serge77#24.11.2010 20:16
+
-
edit
 

Alexeev Max

втянувшийся

Serge77> Вот данные с высотомера для этого полёта:
Serge77> http://balancer.ru/_bors/igo?o=forum_post__2267996

Спасибо, для работы самое то ;)
   
+
-
edit
 

Xan

координатор

A.M.> По МНК информации вагон.... вот только вопрос в реализуемости данного метода на атмеге8

На пиках за одну десятую секунды можно много чего посчитать. :)
У меня есть самодельная библиотека арифметики с фиксированной точкой (16 бит). Она быстрее и экономичнее плавающей, но надо за диапазоном величин следить.
Всё на Си.

Для получения фильтрованных данных в некоторых случаях я использую такой алгоритм:
если новое значение больше фильтрованного, фильрованное увеличиваю на маленькую единичку;
если меньше - уменьшаю.
Тогда большие скачки (помехи), даже в большом количестве, не способны сильно повлиять на фильтрованное значение.

Другой алгоритм:
Если в трёх последовательных отсчётах средний больше или меньше любого крайнего, то его ограничиваю.
Примеры:
1, 2, 3 ==> 1, 2, 3
1, 5, 3 ==> 1, 3, 3
1, -99, 3 ==> 1, 1, 3
Одиночные выскоки так режутся.
   7.07.0
+
-
edit
 

Alexeev Max

втянувшийся

Xan> На пиках за одну десятую секунды можно много чего посчитать. :)

8 страниц разговор об контроллере на меге и тут приехали.......

У меня уже проделана львиная доля разработки, есть нарисованная плата 99%, прошивка на 80%, софт на ПК на 70%

Я так подозреваю, что достаточно читателей форума ждут результатов.... и тут PIC.... уже не смешно.

Железо обрисовано. ATMEGA8 в корпусе DIP28- просто и паябельно. Против PIC ничего не имею, но осваивать не готов.

Прошивку и софт я взял на себя, изготовить плату и атмегу впаять смогут все.... насчет пайки пиков в домашних условиях.... вопрос.

А по сему абсолютно круглую БРЭО в вакууме, алгоритмы и задачи которые на ней можно реализовать обсуждать не готов, о чем я уже ранее не раз говорил, готов порадоваться успехам на пиках в других проектах.

Насчет фильтрованных данных... можно подробнее. У меня сейчас усреднение по 64 значениям, но т.к. нет реальных параметров с шумом и прочей дребеденью в сигнале, сложно судить что понадобится в дальнейшем.
   
Это сообщение редактировалось 24.11.2010 в 22:17
+
-
edit
 

Xan

координатор

A.M.> Я так подозреваю, что достаточно читателей форума ждут результатов.... и тут PIC.... уже не смешно.

Я ж не заставляю переделывать! :)
Лучшее то, на чём умеешь.
А если пишешь на Си, то можно использовать наработки от другого железа. Всего лишь.

A.M.> насчет пайки пиков в домашних условиях.... вопрос.

Да пики тоже в дипах есть, просто я уже давно дипы не использую. Уж очень они... АГРОМАДНЫЕ!!! :D

A.M.> Насчет фильтрованных данных... можно подробнее.

Про что именно?
Первый из них для медленно меняющихся, вроде температуры или веса (для статических весов). Когда частота отсчётов много больше частоты сигнала и есть белый шум. И короткие но большие помехи.
Второй для быстрых. Чтобы уменьшить влияние на результат помех (например, в линии связи). Но тоже частота отсчётов должна быть с некоторым запасом.

Для измерения высоты можно было бы использовать первый, но сначала брать производную сигнала, фильтровать, а фильтрованное значение интегрировать.

ЗЫ
Про фильтрование - завтра.
   7.07.0
RU Alexeev Max #25.11.2010 10:18
+
-
edit
 

Alexeev Max

втянувшийся

Как обычно с утра пришла "гениальная" мысль :) Максимум высоты - это минимум давления.... в БРЭО мы оперируем показаниями датчика давления.....

Мысль: Нужно искать МИНИМУМ !!!!!!! как говорил один извесный мульт персоонаж "На то оно и утро" :D
   
UA Serge77 #25.11.2010 10:34  @Alexeev Max#25.11.2010 10:18
+
-
edit
 

Serge77

модератор

A.M.> Мысль: Нужно искать МИНИМУМ

Я скажу больше: нужно искать минимум, но не давления, а показаний АЦП. Честно говоря, я думал, что это само собой разумеется, и когда писал "максимум высоты" именно это и имел в виду.
Я тебе с самого начала предлагал внутри МК оперировать только показаниями АЦП, не переводя их в высоту, ускорение и т.д. Это проще и быстрее, потому что всё в целых числах, а не с плавающей точкой.
   3.6.123.6.12
RU Alexeev Max #25.11.2010 10:42  @Serge77#25.11.2010 10:34
+
-
edit
 

Alexeev Max

втянувшийся

Serge77> Я скажу больше: нужно искать минимум, но не давления, а показаний АЦП. Честно говоря, я думал, что это само собой разумеется, и когда писал "максимум высоты" именно это и имел в виду.
Serge77> Я тебе с самого начала предлагал внутри МК оперировать только показаниями АЦП, не переводя их в высоту, ускорение и т.д. Это проще и быстрее, потому что всё в целых числах, а не с плавающей точкой.

С показаниями АЦП и собирался работать изначально. Просто вчера загрузил твои файл и увидел "яму" по первому параметру (показания АЦП), програмно перевернул, получил "горку" и лег спокойно спать. С утра осенила очевидная мысль... просто раньше об этом не задумывался. Забавно.
   
Это сообщение редактировалось 25.11.2010 в 10:51
А конфигурационные возможности каковы будут?
Можно ли будет не влезая в прошивку поставить выброс парашюта по скажем датчику давления и одновременно по таймеру?
   
+
-
edit
 

Alexeev Max

втянувшийся

GOGI> А конфигурационные возможности каковы будут?
GOGI> Можно ли будет не влезая в прошивку поставить выброс парашюта по скажем датчику давления и одновременно по таймеру?

Я думаю да. Програмные возможности буду наращивать постепенно.

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

Параметры сработки ССР
1. Апогей
2. Заданная высота после апогея
3. Таймер (со старта, после апогея)
4. Команда с земли

Постепенно все можно будет реализовать.
   
Это сообщение редактировалось 25.11.2010 в 11:05
RU umbriel #25.11.2010 11:29  @Alexeev Max#25.11.2010 10:18
+
-
edit
 

umbriel

опытный

A.M.> Мысль: Нужно искать МИНИМУМ !!!!!!! как говорил один извесный мульт персоонаж "На то оно и утро" :D

Ну вот, зачем обсуждение было устраивать. Я думал проблема в том, как найти этот минимум не зная всю траекторию целиком...

Serge77> Это проще и быстрее, потому что всё в целых числах, а не с плавающей точкой.

Никаких плавающих точек, только целочисленная арифметика. Это касается скоростей, ускорений и тд
   
RU Alexeev Max #25.11.2010 11:46  @Oxandrolone#25.11.2010 11:29
+
-
edit
 

Alexeev Max

втянувшийся

A.M.>> Мысль: Нужно искать МИНИМУМ !!!!!!! как говорил один извесный мульт персоонаж "На то оно и утро" :D
umbriel> Ну вот, зачем обсуждение было устраивать. Я думал проблема в том, как найти этот минимум не зная всю траекторию целиком...

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

В любом случае факт достижения апогея знать надо и БРЭО должно знать прошла ракета апогей или нет.

Serge77>> Это проще и быстрее, потому что всё в целых числах, а не с плавающей точкой.
umbriel> Никаких плавающих точек, только целочисленная арифметика. Это касается скоростей, ускорений и тд

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

Возможно нужно будет вычислить высоту. Но при постоянной температуре высота также переводится в давление, а давление в значение АЦП и записывается на борт. При совпадении сохраненного значения и полученного принимаем решение, что высота достигнута. Аналогично с ускорением, на борту записано значение ацп при g=0.... и все операции сравнения и прочих подсчетов относительно этих значений.
   
Это сообщение редактировалось 25.11.2010 в 12:07
RU Alexeev Max #26.11.2010 00:24  @Alexeev Max#25.11.2010 11:46
+
-
edit
 

Alexeev Max

втянувшийся

Написал прогу для экспериментов по уверенному нахождению минимума давления.

На входе файл (*.dat) в нем столбик цифр - показания датчика давления (АЦП) во время полета.

Выражаю благодарность камраду ST и камраду Serge77 за данные полетов.

Камрад -VMK- выдал алгоритм

Комплексное БРЭО

  umbriel, вот это хорошая мысль. Вычисляя скорость по показаниям высотомера, можно легко отличить ложный апогей из-за перехода через Мах от настоящего. Но сам настоящий апогей ловить просто по высоте.  инфо  инструменты umbriel> Ты сам написал:>>при переходе через скорость звука в обе стороны датчик давления показывает кратковременное падение давления, а значит МК подумает, что это апогей. Это основная проблема для барометрических датчиков апогея. // Дальше — www.balancer.ru
 

Приминительно к минимому АЦП
0. Порог = 10
1. Читаем Pn,
2. Cравниваем значения Pn и Pn-1
если Pn в противном случае Порог = Порог - 1
3. если Порог = 0 то Апогей
4. n = n + 1 преход к 1

Алгоритм выдает апогей при ровном сигнале и отсутствии шума.

Прога написана на коленке, поэтому возможно не совсем корректное отображение.

кнопка Файл открывает файл с данными, Старт - начало работы алгоритма, величину порога можно задавать.

Результат работы весьма неоднозначен. По данным Serge77 апогей определяется при значении порога 10. Данные ST имеют провалы давления на активном участке, их алгоритм не проходит.

Мое мнение, нужна предфильтрация данных.
Прикреплённые файлы:
 
   
Это сообщение редактировалось 26.11.2010 в 00:41
UA Serge77 #26.11.2010 09:09  @Alexeev Max#26.11.2010 00:24
+
-
edit
 

Serge77

модератор

A.M.> 1. Читаем Pn,
A.M.> 2. Cравниваем значения Pn и Pn-1

А где тут максимальная высота? Сравнивать нужно не последовательные измерения, а максимум высоты с текущим измерением.
   3.6.123.6.12
RU Alexeev Max #26.11.2010 09:45  @Serge77#26.11.2010 09:09
+
-
edit
 

Alexeev Max

втянувшийся

A.M.>> 1. Читаем Pn,
A.M.>> 2. Cравниваем значения Pn и Pn-1
Serge77> А где тут максимальная высота? Сравнивать нужно не последовательные измерения, а максимум высоты с текущим измерением.

Не совсем понял.
Максимальная высота изначально неизвестна.
Ракета летит, с датчика давления валятся показания
Pn - текущее значение давления
Pn-1 - предыдущее значение

Соответственно минимум давления - это и есть точка апогея, что данный алгоритм и делает

Алгоритм имитирует работу БРЭО с показаниями датчика давления.
   
UA Serge77 #26.11.2010 10:34  @Alexeev Max#26.11.2010 09:45
+
-
edit
 

Serge77

модератор

A.M.> Максимальная высота изначально неизвестна.

Я в курсе.

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

А мой алгоритм такой: нужно, чтобы десять последовательных измерений были меньше, чем максимальное. Максимальное определяется динамически, сравнивая каждое измерение с текущим максимальным.

В чём разница? Допустим, вот 10 последовательных измерений:

99
98
97
96
95
94
93
92
91
90

Для таких данных - никакой разницы, оба алгоритма сработают.

Вот другие данные, более реальные, т.е. с наличием небольшого шума:

99
98
97
98 - шум
95
94
95 - шум
92
91
90

Глазом здесь хорошо видно, что ракета снижается. Мой алгоритм сработает, а твой нет. Более того, твой может не сработать и до самой земли, именно из-за шума.
   3.6.123.6.12
RU Alexeev Max #26.11.2010 10:58  @Serge77#26.11.2010 10:34
+
-
edit
 

Alexeev Max

втянувшийся

Serge77>> Мой алгоритм сработает, а твой нет. Более того, твой может не сработать и до самой земли, именно из-за шума.

Так по порядку. Программа пробный шар.... алгоритм использовал который предложил -VMK-
Других алгоритмов реализуемых на МК не предлагалось(апроксимация и МНК не в счет), прогнав ваши данные полетов через этот алгоритм мне стало понятно, что он не дает уверенного апогея.

Результаты выложил в виде программы и данных. С небольшими пояснениями.

Фраза "Мой алгоритм сработает, а твой нет" не совсем понятна. Я ни с кем не соревнуюсь, а пытаюсь с Вашей помощью и опираясь на Ваш опыт найти истину, которая, как известно, где то рядом.

Serge77 я тебе благодарен за данные полетов, но алгоритма поиска апогея я от тебя не получал. Если бы ты его предоставил, то в программе было бы реализовано 2 алгоритма, твой и от -VMK-.

Изложи более подробно свой алгоритм, я его внесу в прогу. Результат выложу.
   
RU Alexeev Max #26.11.2010 14:29  @Serge77#26.11.2010 10:34
+
-
edit
 

Alexeev Max

втянувшийся

Serge77> А мой алгоритм такой: нужно, чтобы десять последовательных измерений были меньше, чем максимальное. Максимальное определяется динамически, сравнивая каждое.

Это в случае если высота растет, а если график высоты достаточно ровный (горизонтальный), ракета стоит на стартовом столе. Высота постоянна.... тогда на фоне шума произойдет всплеск и это будет максимум.... а следующие десять значений будут меньше... апогей???
   
Это сообщение редактировалось 26.11.2010 в 14:38
UA Serge77 #26.11.2010 14:30  @Alexeev Max#26.11.2010 10:58
+
-
edit
 

Serge77

модератор

A.M.> Программа пробный шар....

Да всё понятно, я написал "твоя-моя" только для обозначения. Ясно, что твоя-не твоя, и моя тоже не моя ;^)) Насколько я знаю, так и работают высотомеры, где-то читал, но не гарантирую.

Алгоритм я описывал, могу ещё подробнее.

начало программы
ADC_min = 9999

поиск апогея

N=10
While N>0
Get ADC
If ADC<ADC_min Then ADC_min=ADC , N=10
Else N=N-1
Wend

Выход из While означает апогей.
   3.0.173.0.17
RU Alexeev Max #26.11.2010 14:32  @Serge77#26.11.2010 14:30
+
-
edit
 

Alexeev Max

втянувшийся

Serge77> N=10
Serge77> While N>0
Serge77> Get ADC
Serge77> If ADC<ADC_min Then ADC_min=ADC , N=10
Serge77> Else N=N-1
Serge77> Wend
Serge77> Выход из While означает апогей.

Смотри мой предыдущий пост....
   
UA Serge77 #26.11.2010 14:34  @Alexeev Max#26.11.2010 14:29
+
-
edit
 

Serge77

модератор

A.M.> Это в случае если высота растет, а если он достаточно ровный (горизонтальный), ракета стоит на стартовом столе. Высота постоянна.... тогда на фоне шума произойдет всплеск и это будет максимум.... а следующие десять значений будут меньше... апогей???

В смысле сработает при стоянии на старте из-за шума? Может быть. Нужна проверка на наличие подъёма ракеты на высоту, скажем, 20-30-50 м, т.е. на такую высоту, которая не может получиться из-за шума в неподвижной ракете.
   3.0.173.0.17
UA Serge77 #26.11.2010 14:37  @Alexeev Max#26.11.2010 14:32
+
-
edit
 

Serge77

модератор

A.M.> Смотри мой предыдущий пост....

Смотри мой ;^))

Ещё: значение N нужно выбирать в зависимости от частоты измерений. Наверно нужно, чтобы высота падала в течение 0.5-1с. Т.е. если измеряется 50 точек в секунду, то N=50.
   3.0.173.0.17
Сергей, тут мне кажется отлично подойдет предложенный тобой на стенд из лазерной указки алгоритм поиска. Естественно, немного подправленный с учетом того, что апогей надо искать прямо сейчас, а не когда ракета уже упадет.
   
RU Alexeev Max #26.11.2010 14:48  @Serge77#26.11.2010 14:37
+
-
edit
 

Alexeev Max

втянувшийся

A.M.>> Смотри мой предыдущий пост....
Serge77> Смотри мой ;^))
Serge77> Ещё: значение N нужно выбирать в зависимости от частоты измерений. Наверно нужно, чтобы высота падала в течение 0.5-1с. Т.е. если измеряется 50 точек в секунду, то N=50.

А если на старте не запустился двигатель или произошла задержка (кнопку долго искал), БРЭО уже работает получаем сработку ССР на земле.

Нужно вводить порог по высоте, а не по времени.
   
UA Serge77 #26.11.2010 14:54  @Alexeev Max#26.11.2010 14:48
+
-
edit
 

Serge77

модератор

A.M.> А если на старте не запустился двигатель или произошла задержка (кнопку долго искал), БРЭО уже работает получаем сработку ССР на земле.

Почему?
   3.0.173.0.17
1 7 8 9 10 11 29

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