Программа обработки данных от БРЭО

 
1 2 3 4
RU Alexeev Max #14.06.2011 15:02  @Ignis Caelum#14.06.2011 14:45
+
-
edit
 

Alexeev Max

втянувшийся

I.C.> Возможен ли мой случай : с кадры разной длиной появляющиеся в потоке с разной частотой ?

Нужно их преобразовать в фиксированную частоту и вопрос уже значительно проще решить. Т.е. если "медленный параметр" появляется с частотой 1 раз в сек, а "быстрый" 10 раз всек, то заполнить промежуток между медленными параметраи 9-ю значениями этого параметра и тем самым уравняв его с быстрым.
В результате такой конвертации получаем массив кадров с частотой "быстрых" парметров и фиксированной длиной кадра.

Получается ты не меняешь свой софт и я не вношу корректив под твой проект... нужен такой конвертор - а над этим надо подумать.

I.C.> P.S.
I.C.> для отображения используешь Tchart или другую библиотеку ?

Своя разработка... причин много... на мой взгляд TChart весьма громоздок.
 
+
-
edit
 

ST

втянувшийся

A.M.> Надо будет задать свою функцию преобразования АЦП->Высота в DLL и прописать её в файле настроек.
A.M.> Чуть попозже, выложу релиз с такой возможностью.
A.M.> С функцией помогу, т.е. включу её в DLL под отдельным названием...
Спасибо! Буду ждать релиза.
 
+
-
edit
 

Alexeev Max

втянувшийся

ST> Спасибо! Буду ждать релиза.

Функцию напиши :)
 
+
-
edit
 

ST

втянувшийся

A.M.> Функцию напиши :)
Функцию в каком виде? На дельфи я не очень силён.
 
+
-
edit
 

Alexeev Max

втянувшийся

A.M.>> Функцию напиши :)
ST> Функцию в каком виде? На дельфи я не очень силён.

Напиши языком математики.

Y = f(X)

где X значение АЦП, а Y высота в метрах. f - искомая функция.
 
+
-
edit
 

ST

втянувшийся

A.M.> где X значение АЦП, а Y высота в метрах. f - искомая функция.
Легко :) Y = k * X, где k-коэффициент, полученный опытным путем, он изменяется, при изменении прошивки бортового компа.
 

Massaraksh

аксакал

ST> Легко :) Y = k * X, где k-коэффициент, полученный опытным путем, он изменяется, при изменении прошивки бортового компа.
Чем больше давление, тем больше высота? Не путаешь?
Сайт - http://massaraksh.rocketworkshop.net  4.0.14.0.1
UA Serge77 #14.06.2011 20:19  @Massaraksh#14.06.2011 19:45
+
-
edit
 

Serge77

модератор

ST>> Легко :) Y = k * X, где k-коэффициент, полученный опытным путем, он изменяется, при изменении прошивки бортового компа.
Massaraksh> Чем больше давление, тем больше высота? Не путаешь?

Коэффициент может быть и отрицательный.

ST

втянувшийся

Massaraksh> Чем больше давление, тем больше высота? Не путаешь?
Нет. Для примера данные последнего старта А-5/7 "REDSTONE"
Сумма
АЦП Высота, м
14328 1,88
14326 2,34
14317 4,45
14303 7,73
14301 8,2
14288 11,25
14272 15

Нулевой уровень : 14336, коэффициент 0,23438 м/ед.АЦП.
Формула: (Нул.ур.-Сум.АЦП)* k = высота, м
Минус за скобки можно.
PS не получается нормально таблицу оформить :(
 
Это сообщение редактировалось 14.06.2011 в 21:42
RU Massaraksh #14.06.2011 22:27  @Serge77#14.06.2011 20:19
+
-
edit
 

Massaraksh

аксакал

ST>...
Serge77>...
Тогда не Y=k*X, а Y=k1*X+k2
Сайт - http://massaraksh.rocketworkshop.net  4.0.14.0.1

ST

втянувшийся

Massaraksh> Тогда не Y=k*X, а Y=k1*X+k2
В программе Макса предусмотрена установка нулевой линии, так что k2 не нужен.
 

Serge77

модератор

ST> Нет.

Ну как же нет? Чем меньше АЦП, тем больше высота.

ST> Формула: (Нул.ур.-Сум.АЦП)* k = высота, м

Вот и получается отрицательный коэффициент k, как я и написал.
RU Massaraksh #14.06.2011 22:39  @Alexeev Max#14.06.2011 17:52
+
-
edit
 

Massaraksh

аксакал

Ешё раз:

A.M.> Напиши языком математики.
A.M.> Y = f(X)
A.M.> где X значение АЦП, а Y высота в метрах. f - искомая функция.
ST> Y = k * X, где k-коэффициент

Формула, которую ты написал, неверна для вопроса, который тебе задан.
Сайт - http://massaraksh.rocketworkshop.net  4.0.14.0.1

ST

втянувшийся

Serge77> Ну как же нет? Чем меньше АЦП, тем больше высота.
Все верно :) мое нет был к вопросу "Не путаешь?"
Serge77> Вот и получается отрицательный коэффициент k, как я и написал.
Да, просто я еще не знаю с каким знаком нужно будет прописывать коэффициент в программе Макса, поэтому такую формулу и написал.
 

ST

втянувшийся

Massaraksh> Формула, которую ты написал, неверна для вопроса, который тебе задан.
Хм.. Поясни, пожалуйста, возможно что то путаю :( Алгоритм моего расчета в Excel я привел выше.
 

Massaraksh

аксакал

ST> Хм.. Поясни, пожалуйста, возможно что то путаю :( Алгоритм моего расчета в Excel я привел выше.

(Нул.ур.-Сум.АЦП)* k = высота, м

Y=k1*X+k2,

где k1=-k
k2=Нул.ур.*k
Сайт - http://massaraksh.rocketworkshop.net  4.0.14.0.1

ST

втянувшийся

Massaraksh> (Нул.ур.-Сум.АЦП)* k = высота, м
Massaraksh> Y=k1*X+k2,
Massaraksh> где k1=-k
Massaraksh> k2=Нул.ур.*k
Согласен.
Но в программе Макса, как я думаю, алгоритм будет такой: загружаем ряд данных из БРЭО, умножаем их на коэффициент, получаем график с завышенными данными, устанавливаем нулевой уровень, получаем график с реальной высотой.

14328 -3358,13 1,87
14326 -3357,66 2,34
14317 -3355,55 4,45
14303 -3352,27 7,73
14301 -3351,8 8,20
14288 -3348,75 11,2
14272 -3345 15
PS Опять таблица плохо получилась. Может кто подскажет как правильно сделать?
 

Massaraksh

аксакал

code text
  1. [table_html]
  2. [tabtr][td]14328[/td][td]-3358,13[/td][td]1,87[/td][/tabtr]
  3. [tabtr][td]14326[/td][td]-3357,66[/td][td]2,34[/td][/tabtr]
  4. [tabtr][td]14317[/td][td]-3355,55[/td][td]4,45[/td][/tabtr]
  5. [tabtr][td]14303[/td][td]-3352,27[/td][td]7,73[/td][/tabtr]
  6. [tabtr][td]14301[/td][td]-3351,8[/td][td]8,20[/td][/tabtr]
  7. [tabtr][td]14288[/td][td]-3348,75[/td][td]11,2[/td][/tabtr]
  8. [tabtr][td]14272[/td][td]-3345[/td][td]15[/td][/tabtr]
  9. [/table_html]

14328-3358,131,87
14326-3357,662,34
14317-3355,554,45
14303-3352,277,73
14301-3351,88,20
14288-3348,7511,2
14272-334515
Сайт - http://massaraksh.rocketworkshop.net  4.0.14.0.1

ST

втянувшийся

Massaraksh> [code]>
Спасибо! Буду использовать :)
 
+
-
edit
 

Alexeev Max

втянувшийся

ST> Но в программе Макса, как я думаю, алгоритм будет такой: загружаем ряд данных из БРЭО, умножаем их на коэффициент, получаем график с завышенными данными, устанавливаем нулевой уровень, получаем график с реальной высотой.

Мне нужен коэффицент K и тестовый файл с данными. Для твоей задачи осталось создать DLL с требуемой функцией и проверить работу.
 
RU Alexeev Max #16.06.2011 16:15  @MartKot#11.06.2011 07:28
+
-
edit
 

Alexeev Max

втянувшийся

MartKot> Память AT45DB161D (16Мбит), датчики (по порядку записи данных, по колонкам): MPXA4115A, MMA2201D, KMZ51, светодиодный. Частота записи в память (сумма 10 измерений, на один датчик) 1раз в 0,04сек. АЦП 10разрядов (ATmega16 8MHz).

Мне от тебя нужны формулы преобразования твоих сумм АЦП в вольты, чтобы воткнуть эти функции в DLL

Для MPXA4115A нужна функция преобразования вольты в килопаскали.
 
+
-
edit
 

ST

втянувшийся

A.M.> Мне нужен коэффицент K и тестовый файл с данными. Для твоей задачи осталось создать DLL с требуемой функцией и проверить работу.
Легко :)
Прикреплённые файлы:
Data.txt (скачать) [218,91 кбайт, 46 загрузок] [attach=229237]
 
 
 
RU MartKot #16.06.2011 19:32  @Alexeev Max#16.06.2011 16:15
+
-
edit
 

MartKot

втянувшийся

A.M.> Мне от тебя нужны формулы преобразования твоих сумм АЦП в вольты, чтобы воткнуть эти функции в DLL
A.M.> Для MPXA4115A нужна функция преобразования вольты в килопаскали.
А я в мм.рт.ст. пересчитывал, удобней для бытового барометра :)
Для высоты, давление в высоту пересчитываю, как и ST, через коэффициент:
H(м) = (Ao – Ax)K/N ; где,
H(м) – высота в метрах;
N – количество суммируемых измерений для одного значения (N=10);
K – коэффициент пересчёта значений АЦП в высоту (K=1,95);
Ao – сумма N измерений для начального значения АЦП высоты (первое значение из памяти);
Ax – текущее значение суммы N измерений АЦП высоты.
Пример: (9611-9451)1,95/10=31,2м;
N=10; K=1,95; Ao=9611; Ax=9451


Для ускорения:
G(g) = (Ax – 512*N)Uref/1024*K*N; где,
G(g) – ускорение в g;
Ax – текущее значение суммы N измерений АЦП датчика ускорения;
512 – значение датчика ускорения для 0g, (512*10 = 5120, для N=10);
N – количество суммируемых измерений для одного значения (N=10);
Uref – значение опорного напряжения АЦП (Uref=4,98);
K – коэффициент пересчёта значений АЦП в ускорение (K=0,05).


С магнитным и светодиодным датчиком, для пересчёта bit –> U, пока не знаю, смысл есть или нет. Можно просто в цифрах выводить от 0 до 10240 (для N=10). А формула стандартная для Меги16:
U = (Ax*Uref)/1024*N; где,
Ax – текущее значение суммы N измерений АЦП датчика;
Uref – значение опорного напряжения АЦП (Uref=4,98);
N – количество суммируемых измерений для одного значения (N=10);
Простите,-спросили Мартовского Кота,-действительно ли в марте месяце? Какая чушь,- ответил Мартовский Кот,- и март месяц не исключение! http://martkot.embedders.org  
Это сообщение редактировалось 16.06.2011 в 19:40
RU Alexeev Max #26.06.2011 00:29
+
-
edit
 

Alexeev Max

втянувшийся

Собрал новую пробную версию. Архив с файлами программы выложен в первом посте.

Теперь формат данных и операции преобразования данных описывается в файле config.dat там достаточно комментариев для понимания.
В архиве есть файлы конфигураций для чтения данных в виде текстовых файлов от БРЭО Serge77, MartKot и ST. Сами файлы данных от БРЭО так же имеются, не забываем задавать 0 на графике АЦП датчика давления... иначе график высоты не построить.
Для чтения данных от определенной модели БРЭО достаточно переименовать соответствующий файл (*.dat) в config.dat и программа начинает корректно понимать и отображать загруженные данные.
Функции преобразования АЦП хранятся во внешней DLL (GraphFunc.dll). Для добавления новой функции достаточно её добавить в DLL и прописать в config.dat. На первых порах это можно сделать связавшись со мной.

Еще хватает глюков со скролингом и масштабированием и отсутствует проверка корректности файла config.dat так что следите чтобы в нем не было ошибок... исправления и дополнения в дальнейшем.

На картинках графики высоты полученные по данным MartKot и ST.
Прикреплённые файлы:
MartKot.png (скачать) [16,82 кбайт, 12 загрузок] [attach=230383]
 
ST.png (скачать) [14 кбайт, 17 загрузок] [attach=230384]
 
 
 
Это сообщение редактировалось 26.06.2011 в 12:52
RU MartKot #26.06.2011 16:51  @Alexeev Max#26.06.2011 00:29
+
-
edit
 

MartKot

втянувшийся

A.M.> Собрал новую пробную версию. Архив с файлами программы выложен в первом посте.
Класс! Я в восторге! Всю жизнь мечтал о такой проге! Ещё бы масштабирование, поудобней добавить. Чтобы можно было в ручном режиме вводить значение ограничивающие шкалу X и Y «сверху». Допустим, для шкалы напряжений по Y нам надо всего 5Вольт. Тогда это будет и max и ограничивающее шкалу «сверху» значение. Аналогично для шкалы X. Наверно сложновато это сразу для 4-х графиков сделать.
Прикреплённые файлы:
Volt-max.JPG (скачать) [80,41 кбайт, 15 загрузок] [attach=230404]
 
17_54_50_volt.png (скачать) [17,23 кбайт, 11 загрузок] [attach=230405]
 
 
Простите,-спросили Мартовского Кота,-действительно ли в марте месяце? Какая чушь,- ответил Мартовский Кот,- и март месяц не исключение! http://martkot.embedders.org  
1 2 3 4

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