реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Оптимизация параметров константной функции
NikolyaN
сообщение Dec 3 2013, 07:34
Сообщение #1


Участник
*

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



Здравствуйте уважаемые коллеги!

Возникла не совсем стандартная оптимизационная задача.
Нужно подобрать параметры некоей функции (линеаризирующей температурную характеристику датчика). F(t) -> Const
То есть есть сигнал с датчика, измеренный при нескольких температурах. Есть таблица характеристик термокомпенсирующих элементов. И нужно подобрать параметры дополнительных элементов.
Простейший вариант который пришел в голову и был реализован, вычисляется значение функции в какой-то температурной точке (Tconst). Затем берется сумма квадратов разностей между функцией и функцией в определенной температурной точке Sum((F(t) - F(Tconst)) Pow 2), и методом наименьших квадратов вычисляются параметры. Но результат сильно зависит от того, какая точка была взята за константную, при этом для разных датчиков получается сильно по-разному. Получается, что заранее выбранная константа это неправильно.
То есть собственно задача: оптимизировать параметры чтобы выходное значение функции было максимально приближено к константе при том, что сама константа неопределена и может быть любой.
Может есть какой готовый метод оптимизации, или может кто подскажет как это правильно математически выразить для МНК.
Не знаю насколько прозрачно объяснил. Надеюсь кто в теме - поймет.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Dec 3 2013, 08:13
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Извините, но, на мой взгляд, совсем непонятно объяснили. Попробуйте объяснить, что за функция, какие измерения, какие параметры?
Go to the top of the page
 
+Quote Post
NikolyaN
сообщение Dec 3 2013, 10:06
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 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
Go to the top of the page
 
+Quote Post
fontp
сообщение Dec 3 2013, 15:27
Сообщение #4


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



QUOTE (NikolyaN @ Dec 3 2013, 11:34) *
Может есть какой готовый метод оптимизации, или может кто подскажет как это правильно математически выразить для МНК.
Не знаю насколько прозрачно объяснил. Надеюсь кто в теме - поймет.


Для суммы квадратов нелинейных функций (в частности МНК) действительно есть специальный метод оптимизации. Называется он алгоритм Маркуардта-Левенберга

Сама задача не очень понятна, но в любом случае, вы можете составить сумму квадратов разностей своих нелинейных функций для разных t и эту весовую функцию прооптимизировать по параметрам. Хотя та функция, что вы написали линейна по параметрам, а значит можно сформировать нормальные уравнения и получить решение в замкнутом виде (псевдоинверсия, минимизирующая невязку)
Go to the top of the page
 
+Quote Post
RHnd
сообщение Dec 3 2013, 23:30
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 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 и сигналы достаточно "частотно богаты".
Go to the top of the page
 
+Quote Post
Tanya
сообщение Dec 4 2013, 03:42
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(NikolyaN @ Dec 3 2013, 14:06) *
Я намеренно не приводил здесь всю модель, т.к. на мой взгляд она не должна влиять на метод оптимизации.

Пора менять взгляды. Вы бы все же изложили свои вопросы и соображения русским языком с разумным использованием слов: модель, оптимизация, параметр, если не хотите получить ответ: тщательнее оптимизируйте модель по параметрам для снижения невязки.
Go to the top of the page
 
+Quote Post
NikolyaN
сообщение Dec 5 2013, 08:10
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 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. Сейчас мне важно понять что данной цепочкой действительно можно скомпенсировать характеристику датчика.
Go to the top of the page
 
+Quote Post
RHnd
сообщение Dec 5 2013, 18:23
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 518
Регистрация: 12-04-07
Из: Санкт-Петербург
Пользователь №: 26 997



Да, правильно поняли.
Частотно богатый - это такой жаргноизм, в системах управления ему соответствует понятие неисчезающего возбуждения (PE condition). В вашем случае, если вы для температуры t1 сформируете вектор X1, для t2 вектор X2, а потом составите матрицу [X1; X2; ...; Xn], то получившаяся матрица должна быть матрицей полного ранга. Это зависит не только от шума в измерениях d, но и от соотношения между табличными значениями x1, x2.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 28th June 2025 - 18:26
Рейтинг@Mail.ru


Страница сгенерированна за 0.01401 секунд с 7
ELECTRONIX ©2004-2016