|
|
  |
Оптимизация параметров константной функции |
|
|
|
Dec 3 2013, 07:34
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-08-09
Пользователь №: 52 074

|
Здравствуйте уважаемые коллеги!
Возникла не совсем стандартная оптимизационная задача. Нужно подобрать параметры некоей функции (линеаризирующей температурную характеристику датчика). F(t) -> Const То есть есть сигнал с датчика, измеренный при нескольких температурах. Есть таблица характеристик термокомпенсирующих элементов. И нужно подобрать параметры дополнительных элементов. Простейший вариант который пришел в голову и был реализован, вычисляется значение функции в какой-то температурной точке (Tconst). Затем берется сумма квадратов разностей между функцией и функцией в определенной температурной точке Sum((F(t) - F(Tconst)) Pow 2), и методом наименьших квадратов вычисляются параметры. Но результат сильно зависит от того, какая точка была взята за константную, при этом для разных датчиков получается сильно по-разному. Получается, что заранее выбранная константа это неправильно. То есть собственно задача: оптимизировать параметры чтобы выходное значение функции было максимально приближено к константе при том, что сама константа неопределена и может быть любой. Может есть какой готовый метод оптимизации, или может кто подскажет как это правильно математически выразить для МНК. Не знаю насколько прозрачно объяснил. Надеюсь кто в теме - поймет.
|
|
|
|
|
Dec 3 2013, 10:06
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-08-09
Пользователь №: 52 074

|
Цитата(RHnd @ Dec 3 2013, 12:13)  Извините, но, на мой взгляд, совсем непонятно объяснили. Попробуйте объяснить, что за функция, какие измерения, какие параметры? Я намеренно не приводил здесь всю модель, т.к. на мой взгляд она не должна влиять на метод оптимизации. К тому же модель достаточно запутанная, берутся интерполированные значения для термокомпенсационных элементов из таблиц производителя для определенной температуры, все это подставляется в функцию, перемножается с показаниями датчика. Боюсь, если я тут все это изложу, то количество непонятного только увеличится. И с другой стороны, если я вдруг пойму, что у меня термокомпенсационная цепочка не совсем правильная и как-то поменяю целевую функцию в оптимизации, то что от этого должен измениться сам метод оптимизации? Для примера, сильно упрощенная модель. Если сможете предложить метод для нее, то для своей модели надеюсь я его смогу адаптировать. d(t)*(x1(t)*k1 + x2(t)*k2 + k3) -> Const d(t) - измеренный сигнал датчика от температуры x1(t) - значение 1-го термокомпенсационного элемента при температуре снятия показаний датчика (берется из одной таблицы) k1 - 1-ый оптимизируемый параметр x2(t) - значение 2-го термокомпенсационного элемента при температуре снятия показаний датчика (берется из другой таблицы) k2 - 2-ой оптимизируемый параметр k3 - 3-ий оптимизируемый параметр Оптимизация должна проводиться по критерию минимального отклонения значения функции во всех снятых температурных точках от какого-то константного значения. Константное значение не определено заранее. Т.е. идеальный график целевой функции это прямая параллльная оси температуры.
Сообщение отредактировал NikolyaN - Dec 3 2013, 10:11
|
|
|
|
|
Dec 3 2013, 23:30
|
Знающий
   
Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997

|
Я правильно понимаю, что d(t) - набор измеренных значений сигнала d для разных значений t: t1, t2,..., tn? И аналогично для x1 и x2? И вы ищете такие k1, k2, k3, чтобы функция F(t)=d(t)*(x1(t)*k1 + x2(t)*k2 + k3) имела одно и то же значение для всех t? Скажем, C. Тогда у вас линейная регрессия с 4 неизвестными параметрами: Y=X*Q, Y=0(t), X=[d(t)*x1(t), d(t)*x2(t), d(t), -1], Q'=[k1, k2, k3, C]. Решается в лоб через МНК. Надеюсь, у вас много этих t и сигналы достаточно "частотно богаты".
|
|
|
|
|
Dec 5 2013, 08:10
|
Участник

Группа: Участник
Сообщений: 20
Регистрация: 28-08-09
Пользователь №: 52 074

|
Цитата(RHnd @ Dec 4 2013, 03:30)  Я правильно понимаю, что d(t) - набор измеренных значений сигнала d для разных значений t: t1, t2,..., tn? И аналогично для x1 и x2? И вы ищете такие k1, k2, k3, чтобы функция F(t)=d(t)*(x1(t)*k1 + x2(t)*k2 + k3) имела одно и то же значение для всех t? Скажем, C. Да, это вы абсолютно точно поняли. И главная проблема здесь в том что в качестве С я не могу задать какую-то конкретную величину. Цитата(RHnd @ Dec 4 2013, 03:30)  Тогда у вас линейная регрессия с 4 неизвестными параметрами: Y=X*Q, Y=0(t), X=[d(t)*x1(t), d(t)*x2(t), d(t), -1], Q'=[k1, k2, k3, C]. Решается в лоб через МНК. Правильно ли я понял, что то к чему должна стремиться целевая функция, Вы предлагаете тоже использовать в качестве параметра оптимизации? Как говорится, все гениальное просто. Теперь удивляюсь почему самому не пришло такое на ум. Спасибо за подсказку, сейчас буду пробовать. У меня была идея считать кореляцию, между различными температурными точками, но как потом все это привязать к МНК для получения параметров у меня в голове так и не сложилось. Цитата(RHnd @ Dec 4 2013, 03:30)  Надеюсь, у вас много этих t и сигналы достаточно "частотно богаты". Если под "сигналы достаточно частотно богаты" Вы имели в виду присутствие в них белого шума, то он там присутствует, местами даже больше чем хотелось бы http://electronix.ru/forum/style_images/1/...icons/icon1.gifВ качестве эксперимента t можно менять и сигналы снимать хоть через градус, но в последствии при реальном производстве, температурных точек должно быть 4, в крайнем случае 5. Сейчас мне важно понять что данной цепочкой действительно можно скомпенсировать характеристику датчика.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|