Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.07.28;
Скачать: CL | DM;

Вниз

Нужен алгоритм.   Найти похожие ветки 

 
Германн ©   (2013-03-03 02:05) [0]

Я уже много лет помогаю моему старому товарищу поддерживать разработанный им прибор (газоанализатор). Обычно всегда есть ситуации, когда датчик предназначенный для измерения одного газа чувствует и некоторые другие газы. Это легко обходится вычислением при калибровке прибора т.н. "перекрестных коэффициентов".
Но вот сейчас впервые возникла ситуация когда есть два датчика для двух газов, которые имеют чувствительность к обоим газам.
Понимаю что в общем случае такая задача нерешаема. Но в данном случае есть то обстоятельство, что чувствительность датчика1 к газу2 "существенно" меньше, чем чувствительность датчика2 к газу1.
Степень "существенности" я пока не знаю точно.
Вот и вопрос. Получить перекрестные коэффициенты - нет проблем. А вот знает ли кто алгоритм как эти перекрестные коэффициенты можно использовать в при измерении?


 
Smile   (2013-03-03 08:45) [1]

Несколько параллельных замеров различных концентраций газа родным и не родным датчиками.
А дальше простор для определения перекрестных коэффициентов.


 
MBo ©   (2013-03-03 12:54) [2]

>Понимаю что в общем случае такая задача нерешаема.
Если чувствительность датчиков к газам разная, то такая задача как раз проще, чем для одного датчика - например, для (простого случая) линейной чувствительности - система из двух линейных уравнений с двумя неизвстными.
Думаю, проблема всё же сложнее, чем пока описано.


 
Smile   (2013-03-03 13:23) [3]

А мне не совсем понятна фраза (оборот): "алгоритм как эти перекрестные коэффициенты можно использовать в при измерении?"


 
Pavia ©   (2013-03-03 13:25) [4]

В общем случае задачка не решается.
1. Надо построить график.
Типо такого
http://www.bestreferat.ru/images/paper/40/95/4399540.jpeg
По оси x значения от первого датчика.
По оси y значения от второго датчика. Точкой или звездочкой или цветом обозначаешь газ 1 и газ 2.
2. По графику будет видно. Куда дальше действовать, линейное разделение нелинейное. На картинке выше показано идеальное разделение.  На практике такого может и не быть и граница между классами будет размыта.

Далее можно минимизировать ошибку разбиения на классы с учётом мощности классов. Это вам надо в сторону расстояния Махаланобиса смотреть.  Или хотя бы в сторону собственных чисел матрицы.

Допустим вы сделали измерения двумя датчиками.
х1,х2 умножаем на матрицу (не помню надо смотреть как называется)
Получаем новую пару с более лучшем разделением на 2 газа  чем есть сейчас.

PS. Не стоит надеется на то что результат вас устроит скорее всего он будет чуть лучше чем есть сейчас.


 
Pavia ©   (2013-03-03 13:27) [5]


> А мне не совсем понятна фраза (оборот):

Тут речь идёт о косвенных измерениях.


 
Германн ©   (2013-03-03 15:31) [6]


> MBo ©   (03.03.13 12:54) [2]
>
> >Понимаю что в общем случае такая задача нерешаема.
> Если чувствительность датчиков к газам разная, то такая
> задача как раз проще, чем для одного датчика - например,
>  для (простого случая) линейной чувствительности - система
> из двух линейных уравнений с двумя неизвстными.
> Думаю, проблема всё же сложнее, чем пока описано.

Вот ведь зашоренность мышления!
О решении системы уравнений я даже и не подумал (((
Буду думать в этом направлении. Спасибо, Борис.

P.S.
А проблема действительно сложнее.
Во-первых датчик газа 2 чувствует не только газ 1, но и газы 3 и 4.
Во-вторых у меня пока в руках только целочисленная арифметика. Ввести арифметику с плавающей точкой боюсь не смогу. Не влезет в память.


 
alexdn ©   (2013-03-03 16:05) [7]

> Германн ©   (03.03.13 15:31) [6]
Я бы ещё посмотрел металлоискатели, они тоже на несколько металлов работают, ну так, на всякий случай..


 
Jeer ©   (2013-03-04 09:44) [8]

См. планирование многофакторного эксперимента.


 
robt   (2013-03-04 13:41) [9]

Удалено модератором


 
Smile   (2013-03-04 14:02) [10]

Smile   (03.03.13 08:45) [1]
Несколько параллельных замеров различных концентраций газа родным и не родным датчиками.
А дальше простор для определения перекрестных коэффициентов


Это разовая операция, строится математическая модель для "перекрестных коэффициентов", и только потом прошивается "модель" непосредственно в датчики
Успеха и понимания в решении поставленной (описаноой, как мне представляется) задачи


 
Sha ©   (2013-03-04 14:33) [11]

> Германн

Возможны варианты.

Чувствительность к своему газу:
1 константа,
2 зависит от концентрации измеряемого газа,
3 зависит от концентрации других газов.

Какой из них у тебя? Вид функции?


 
Inovet ©   (2013-03-04 14:36) [12]

> [11] Sha ©   (04.03.13 14:33)
> 3 зависит от концентрации других газов.

Это более правдоподобно.


 
Inovet ©   (2013-03-04 14:37) [13]

> [12] Inovet ©   (04.03.13 14:36)
> 3 зависит от концентрации других газов.

зависит И от концентрации других газов.


 
Sha ©   (2013-03-04 14:45) [14]

ну, если f1(x1)=a*f2(b*x2), то все еще не так плохо


 
Jeer ©   (2013-03-04 15:45) [15]

Обычно правдоподобным является сведение к варианту:
y = a*x1 + b*x2 + c*x1*x2;

ну а там - хто ж его знает, как на самом деле:)


 
Inovet ©   (2013-03-04 16:03) [16]

> [15] Jeer ©   (04.03.13 15:45)
> y = a*x1 + b*x2 + c*x1*x2;

Квадраты не надо?


 
Jeer ©   (2013-03-04 16:58) [17]

Это минимальная взаимозависимость.


 
Германн ©   (2013-03-05 01:46) [18]

Прошу прощения, что потревожил.
Ситуация самая простая. Достаточно решить систему из двух линейных уравнений первой степени.
Сложность только в ограниченности возможностей того гибридного компилятора, который я вынужден (исторически) использовать и ограниченного количества доступной мне программной памяти.
Из-за этого мне просто и не вспоминались "алгоритмы" из начальной школы (((

Сейчас придумываю алгоритм вычисления "решения системы двух уравнений" для целочисленной арифметики с допустимой точностью.


 
MBo ©   (2013-03-05 05:49) [19]

Парциальные чувствительности дачиков к газам - считаются постоянными, или их определение требует регулярной перекалибровки?
Я к тому, что в первом случае InvDet вычисляется заранее как M/2^k и всё в целых числах считается
a*x+b*y=c
d*x+e*y=f
Det=a*e - d*b
InvDet=1/Det
InvDet=M/2^k   //находится хорошее приближение
y= M *(a*f - d*c) shr k          //сдвиг с учётом знака, конечно
x= M * (c*e - f*b)  shr k


 
Германн ©   (2013-03-06 01:31) [20]


> MBo ©   (05.03.13 05:49) [19]

Спасибо, Борис за подсказку в MBo ©   (03.03.13 12:54) [2]
Далее уже мои "особые" проблемы, беспокоить которыми никого не хочу ибо в их решении мне никто,кроме меня самого, помочь не сможет.

P.S. Прошу модераторов закрыть обсуждение в этой ветке.



Страницы: 1 вся ветка

Текущий архив: 2013.07.28;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.008 c
3-1291295803
svb
2010-12-02 16:16
2013.07.28
Одна таблица или много маленьких


2-1354043911
adept
2012-11-27 23:18
2013.07.28
Операции с данными в ячейках StringGrid а


15-1362342603
Юрий
2013-03-04 00:30
2013.07.28
С днем рождения ! 4 марта 2013 понедельник


15-1362341410
Хыхы
2013-03-04 00:10
2013.07.28
Singleton в Delphi


3-1291630604
DOA User
2010-12-06 13:16
2013.07.28
Проблема с вставкой/редактированием записей в TOracleDataSet