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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Построение функции по графику, формула для графика
Stefan1
сообщение Sep 30 2011, 10:57
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Здравствуйте!
Подскажите как можно по графику построить функцию? Мне нужно построить формулу, которая довольно точно опишет этот график:
Прикрепленное изображение
Go to the top of the page
 
+Quote Post
V_G
сообщение Sep 30 2011, 11:15
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Это действие называется аппроксимация. Различные виды аппроксимаций проходят по математике на 1-2 курсах института. Вам стоит для начала определиться с видами аппроксимирующих функций. Часто в их качестве используют полиномы.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Sep 30 2011, 11:24
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(V_G @ Sep 30 2011, 15:15) *
Это действие называется аппроксимация. Различные виды аппроксимаций проходят по математике на 1-2 курсах института. Вам стоит для начала определиться с видами аппроксимирующих функций. Часто в их качестве используют полиномы.

Я пробовал аппроксимировать через полином 9 степени в программе advanced grapher - не получается, т.к. слишком большое отклонение. Гиперболическая тоже не подходит. Здесь нужна какая-то сложная функция, как мне кажется.

Сообщение отредактировал Stefan1 - Sep 30 2011, 11:24
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Sep 30 2011, 11:25
Сообщение #4





Guests






Приблизительно: Y=60*e^(-X/4)+5
Go to the top of the page
 
+Quote Post
ataradov
сообщение Sep 30 2011, 11:54
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



Расскажите что такое "довольно точно" и дайте данные в виде таблицы хотябы.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Sep 30 2011, 14:05
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(Taradov Alexander @ Sep 30 2011, 15:54) *
Расскажите что такое "довольно точно" и дайте данные в виде таблицы хотябы.

Чем точнее, тем лучше. В принципе сходимость с таблицей в числах до запятой (т.е. в целых числах) была бы идеальной.

Прикрепленное изображение


Сообщение отредактировал Stefan1 - Sep 30 2011, 14:12
Go to the top of the page
 
+Quote Post
_Anatoliy
сообщение Sep 30 2011, 14:39
Сообщение #7


Утомлённый солнцем
******

Группа: Свой
Сообщений: 2 646
Регистрация: 15-07-06
Из: г.Донецк ДНР
Пользователь №: 18 832



Цитата(Stefan1 @ Sep 30 2011, 15:05) *
Чем точнее, тем лучше. В принципе сходимость с таблицей в числах до запятой (т.е. в целых числах) была бы идеальной.

Прикрепленное изображение


Есть такая программа,TableCurve называется,выдаст вам несколько тысяч вариантов и каждый со своей погрешностью.Ищите...
Go to the top of the page
 
+Quote Post
Alex11
сообщение Sep 30 2011, 14:43
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Вы не подберете функцию по Вашим данным - они не лежат на плавной кривой. Если Вам нужны именно эти точки - то только аппроксимация сплайнами по кускам. Если немного подвинуть точки, то кое-что получается, хотя, конечно, и не 2 точных знака:
CODE


57.595*exp(-col(A)/2.516)+8.807*exp(-col(A)/11.059)+6.222

0 73 72.624
1 52 52.97299
2 39.8 39.58308
3 31 30.4167
4 24 24.10317
5 20 19.7201
6 17 16.64648
7 14.2 14.46391
8 12 12.89027
10 10.7 10.86957
12 10 9.68632
14 9.2 8.92605
16 8.6 8.39418
18 8 7.99665
20 7.6 7.68582
25 7 7.14325
40 6.4 6.4586
70 6.3 6.2377
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Sep 30 2011, 18:44
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(_Anatoliy @ Sep 30 2011, 18:39) *
Есть такая программа,TableCurve называется,выдаст вам несколько тысяч вариантов и каждый со своей погрешностью.Ищите...

Благодарю, _Anatoliy!

Цитата(Alex11 date='Sep 30 2011, 18:39) *
Вы не подберете функцию по Вашим данным - они не лежат на плавной кривой. Если Вам нужны именно эти точки - то только аппроксимация сплайнами по кускам. Если немного подвинуть точки, то кое-что получается, хотя, конечно, и не 2 точных знака:
57.595*exp(-col(A)/2.516)+8.807*exp(-col(A)/11.059)+6.222

А как построить аппроксимацию сплайнами по кускам? Это уравнение я так понимаю и есть такая аппроксимация? Хотелось бы понять сам принцип построения таких функций.

Сообщение отредактировал Stefan1 - Sep 30 2011, 18:49
Go to the top of the page
 
+Quote Post
ataradov
сообщение Sep 30 2011, 18:54
Сообщение #10


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



А что вы с этой функцией потом делать собираетесь? получать значение в произвольных точках? Или хочется сэкономить место и просто восстанавливать эти значения?

Для второго сплайны не годятся - места для хранения коэффициентов нужно будет еще больше чем для сырых данных.

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

CODE
x = [0,1,2,3,4,5,6,7,8,10,12,14,16,18,20,25,40,70];
y= [73, 52, 44, 31, 24, 20, 17, 16, 12, 10.7, 10, 9.2, 8.6, 8, 7.6, 7, 6.4, 6.3];

p = spline(x,y);
y1 = ppval(p, x);
figure; hold on; plot(x, y); plot(x, y1, 'r--');
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Sep 30 2011, 19:02
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(Taradov Alexander @ Sep 30 2011, 22:54) *
А что вы с этой функцией потом делать собираетесь? получать значение в произвольных точках? Или хочется сэкономить место и просто восстанавливать эти значения?

Для второго сплайны не годятся - места для хранения коэффициентов нужно будет еще больше чем для сырых данных.

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

Благодарю за информацию, Taradov Alexander! Функция эта нужна для задания зависимости проходной ёмкости LDMOS транзистора для расчёта его эквивалентной схемы.

Сообщение отредактировал Stefan1 - Sep 30 2011, 19:07
Go to the top of the page
 
+Quote Post
ataradov
сообщение Sep 30 2011, 19:08
Сообщение #12


Профессионал
*****

Группа: Участник
Сообщений: 1 014
Регистрация: 8-01-07
Из: San Jose, CA
Пользователь №: 24 202



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

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

Так что если вы уточните какой именно софт потом эту функцию будет использовать, может еще чем поможем.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Sep 30 2011, 19:12
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(Taradov Alexander @ Sep 30 2011, 23:08) *
Сплайн - это все равно кусочно-заданная функция, так что вашу проблему они не решат, если вам нужно получить нормальную функцию для запихивания в моделирующий софт.

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

Так что если вы уточните какой именно софт потом эту функцию будет использовать, может еще чем поможем.

Софт - матлаб.
Go to the top of the page
 
+Quote Post
Guest_@Ark_*
сообщение Sep 30 2011, 20:01
Сообщение #14





Guests






Stefan1, а Вы уверены, что необходимо такое точное совпадение функции с исходными данными?
По моему, стоит оценить, какой вклад вносит это выражение в результаты моделирования. Вполне возможно, что и точность в 5-10% Вас устроит.
Тогда лучше поискать более точные коэффициенты (A,B,C) для наиболее простого выражения вида Y=А*e^(-B*X)+C. И на этом остановиться.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Oct 2 2011, 17:47
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(@Ark @ Oct 1 2011, 00:01) *
Stefan1, а Вы уверены, что необходимо такое точное совпадение функции с исходными данными?
По моему, стоит оценить, какой вклад вносит это выражение в результаты моделирования. Вполне возможно, что и точность в 5-10% Вас устроит.
Тогда лучше поискать более точные коэффициенты (A,B,C) для наиболее простого выражения вида Y=А*e^(-B*X)+C. И на этом остановиться.

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

Сообщение отредактировал Stefan1 - Oct 2 2011, 18:05
Go to the top of the page
 
+Quote Post
xemul
сообщение Oct 2 2011, 18:02
Сообщение #16



*****

Группа: Свой
Сообщений: 1 928
Регистрация: 11-07-06
Пользователь №: 18 731



Цитата(Stefan1 @ Oct 2 2011, 21:47) *
Хочется по-точнее, т.к нужно добиться максимального совпадения экспериментального результата с расчетом.

Тогда вопрос - сколько значащих цифр в экспериментальных данных? Бессмысленно добиваться точности аппроксимации большей, чем точность измерений.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Oct 2 2011, 18:10
Сообщение #17


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(xemul @ Oct 2 2011, 22:02) *
Тогда вопрос - сколько значащих цифр в экспериментальных данных? Бессмысленно добиваться точности аппроксимации большей, чем точность измерений.

Порядок точности измерений - десятые доли. Так что здесь хорошо бы добиться совпадения целых чисел.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Oct 4 2011, 09:09
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Используя программу TableCurve удалось получить функцию, наиболее точно совпадающую с точками из данной таблицы. Программа - отличная, вот только результат почему-то не сохраняет, точнее сохраняет, но в виде таблицы, что не очень наглядно. Спасибо всем за помощь!
Go to the top of the page
 
+Quote Post
i-mir
сообщение Oct 12 2011, 07:19
Сообщение #19


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Цитата(Stefan1 @ Oct 2 2011, 20:47) *
Сложно пока оценить какой вклад вносит это выражение в результаты моделирования, т.к. есть ещё аналогичные выражения, влияющие на результат.


Цитата(Stefan1 @ Oct 4 2011, 12:09) *
Используя программу TableCurve удалось получить функцию, наиболее точно совпадающую с точками из данной таблицы.


Взгляните еще на регрессионный анализ. Кажется что вы задачу решаете не тем методом,
т.е. не строите качественную модель, а пытаетесь подобрать формулу для исходных данных.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Oct 26 2011, 11:24
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(i-mir @ Oct 12 2011, 11:19) *
Взгляните еще на регрессионный анализ. Кажется что вы задачу решаете не тем методом,
т.е. не строите качественную модель, а пытаетесь подобрать формулу для исходных данных.

Эта зависимость нужна для описания емкости транзистора. А модель сама описывает поведение транзистора, когда он работает в режиме.
Go to the top of the page
 
+Quote Post
i-mir
сообщение Oct 28 2011, 09:47
Сообщение #21


Частый гость
**

Группа: Свой
Сообщений: 197
Регистрация: 17-06-10
Из: Киев
Пользователь №: 57 986



Хорошо, другими словами.
Вы например получите: C,мкф = f (t,мс)
А что нужно получить ? Без цели,
дальнейшие рассуждения теряют смысл.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Nov 2 2011, 13:48
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(i-mir @ Oct 28 2011, 12:47) *
Хорошо, другими словами.
Вы например получите: C,мкф = f (t,мс)
А что нужно получить ? Без цели,
дальнейшие рассуждения теряют смысл.

Получаю зависимость C, мкФ от U, В. Затем подставляю эту зависимость в эквивалентную схему транзистора. Эта схема имеет несколько нелинейных элементов, зависящих от U, один из них эта емкость. Таким образом я могу описать поведение транзистора при различных напряжениях. В частности можно посмотреть как изменяется импеданс транзистора.
Go to the top of the page
 
+Quote Post
sp1noza
сообщение Nov 3 2011, 05:45
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 120
Регистрация: 18-06-08
Из: Томск
Пользователь №: 38 375



Цитата(Stefan1 @ Nov 2 2011, 17:48) *
Получаю зависимость C, мкФ от U, В. Затем подставляю эту зависимость в эквивалентную схему транзистора. Эта схема имеет несколько нелинейных элементов, зависящих от U, один из них эта емкость. Таким образом я могу описать поведение транзистора при различных напряжениях. В частности можно посмотреть как изменяется импеданс транзистора.


В обычных нелинейных моделях (в стандартных) проходная емкость описывается формулой: Cgs = Cgs0/ sqrt(1- Vgs/Vgsi). Где Cgs0 – это значение емкости затвор-исток при Vgs = 0 В; Vgsi – потенциал поля барьера Шотки. Эта формула основа, обычно еще добавляют всякие разные сглаживающие функции (как в модели Statz или Raytheon). Посмотрите описание моделей Angelov, Statz, Curtice-Ettenberg и прочих, например, в help'e Agilent'a, возможно многие вопросы отпадут.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Nov 3 2011, 07:42
Сообщение #24


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(sp1noza @ Nov 3 2011, 08:45) *
В обычных нелинейных моделях (в стандартных) проходная емкость описывается формулой: Cgs = Cgs0/ sqrt(1- Vgs/Vgsi). Где Cgs0 – это значение емкости затвор-исток при Vgs = 0 В; Vgsi – потенциал поля барьера Шотки. Эта формула основа, обычно еще добавляют всякие разные сглаживающие функции (как в модели Statz или Raytheon). Посмотрите описание моделей Angelov, Statz, Curtice-Ettenberg и прочих, например, в help'e Agilent'a, возможно многие вопросы отпадут.

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

Сообщение отредактировал Stefan1 - Nov 3 2011, 07:43
Go to the top of the page
 
+Quote Post
Andrey307
сообщение Nov 10 2011, 11:52
Сообщение #25





Группа: Новичок
Сообщений: 9
Регистрация: 20-04-09
Из: Санкт-Петербург
Пользователь №: 47 967



В матлабе есть функции апроксимации. Создается структура, содержащая коэффициенты полинома. Затем просто подставить их в аналитическую запись. Все это в пакете Spline toolbox вроде
Go to the top of the page
 
+Quote Post
antenna_hunter
сообщение Nov 11 2011, 06:50
Сообщение #26


Участник
*

Группа: Свой
Сообщений: 70
Регистрация: 27-05-11
Из: почти Москва
Пользователь №: 65 305



Цитата(Andrey307 @ Nov 10 2011, 14:52) *
В матлабе есть функции апроксимации. Создается структура, содержащая коэффициенты полинома. Затем просто подставить их в аналитическую запись. Все это в пакете Spline toolbox вроде


А в качестве самого простого варианта в среде Matlab можно воспользоваться функцией polyfit, но "хороший" результат сложно получить для плохо обусловленной матрицы...
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Nov 11 2011, 06:56
Сообщение #27


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(Andrey307 @ Nov 10 2011, 14:52) *
В матлабе есть функции апроксимации. Создается структура, содержащая коэффициенты полинома. Затем просто подставить их в аналитическую запись. Все это в пакете Spline toolbox вроде

Я пробовал уже, но то, что хотел сделать - не получилось. В итоге нашел проще способ.
Go to the top of the page
 
+Quote Post
Андрей Алексееви...
сообщение Dec 1 2012, 19:28
Сообщение #28





Группа: Новичок
Сообщений: 3
Регистрация: 30-11-12
Из: Москва
Пользователь №: 74 635



Цитата(Stefan1 @ Sep 30 2011, 23:02) *
Благодарю за информацию, Taradov Alexander! Функция эта нужна для задания зависимости проходной ёмкости LDMOS транзистора для расчёта его эквивалентной схемы.

Stefan доброго времени суток, не могу отправить вам в личку сообщение. вопрос такой:как вы расчитываете эквивалентную схему транзистора? какие измерения делаете? какая методика. заранее благодарю.
Go to the top of the page
 
+Quote Post
Stefan1
сообщение Dec 3 2012, 07:03
Сообщение #29


Местный
***

Группа: Участник
Сообщений: 414
Регистрация: 7-04-11
Из: Москва
Пользователь №: 64 187



Цитата(Андрей Алексеевич @ Dec 1 2012, 22:28) *
Stefan доброго времени суток, не могу отправить вам в личку сообщение. вопрос такой:как вы расчитываете эквивалентную схему транзистора? какие измерения делаете? какая методика. заранее благодарю.

Методика - ничего необычного:
1) Измеряем ВАХи.
2) Измеряем емкости кристалла транзистора.
3) Дальше измеряем индуктивности проволочек внутри корпуса транзистора (делаем тесты, например, для измерения проволочек между кристаллом и бортом).
4) Самое сложное - это измерение паразитных сопротивлений. В зарубежных статьях пишут, что вычисляют их из S параметров, но тут не все так просто, т.к. для мощных транзисторов их сложно мерить, нужно специальное оборудование. У нас его нет и мы эти сопротивления измеряем на малом сигнале и затем подгоняем, понятно, что точность при этом не ахти какая.
Go to the top of the page
 
+Quote Post
Андрей Алексееви...
сообщение Dec 5 2012, 12:27
Сообщение #30





Группа: Новичок
Сообщений: 3
Регистрация: 30-11-12
Из: Москва
Пользователь №: 74 635



Благодарю sm.gif
эх нужен приборчик для х параметров. и не париться с эквивалентными схемами
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 02:54
Рейтинг@Mail.ru


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