Домой
назад Оглавление вперед




[стр.-1]

A Ids, А

7

х

777

х

7

к

х7

-"

1-"

231 mv j spline л Ids

391 mv VdS, V

Рис 1. Интерполяция канального тока сплайном вида (3) (увеличенный участок ВАХ)

На рис.1 видно, что сплайн не плотно прилегает к функции. Максимальная относительная погрешность сплайн-интерполяции достигает 3.1 %.

dlds/dVgs, 1/Ohm

0v0.2v

□ dlds/dVgs i dSpline/dVgs

Vds, V

Рис. 2. Производные сплайна и функции по vgs.

На рис.2 показаны графики проводимостей. Гладкая линия - это аналитическая производная функции канального тока. Зубчатая линия - производная сплайна функции канального тока. Из проведенного эксперимента видно, что точность интерполяции функции приемлема. По крайней мере, ее можно улучшить, увеличив число ячеек. Но получаемая от сплайна производная значительно отличается от реальной, и это видно даже не вооруженным глазом. Для поставленной задачи такое решение не приемлемо. Поскольку производные тока являются важными величинами для схемотехнического моделирования. Можно конечно принять решение отдельно интерполировать каждую производную функции канального тока. Их всего три. Таким образом, количество таблиц, а соответственно и отводимой для них машинной памяти увеличится в 4 раза. Следовательно, можно сделать вывод, что стандартный способ определения коэффициентов сплайна для поставленной задачи не подходит. Он не может обеспечить высокую точность одновременно функции и ее трех частных производных без значительных затрат вычислительных ресурсов.

Вычисление коэффициентов

Проанализировав способ интерполяции, описанный выше, можно объяснить плохую точность по производным сплайна. Рассмотрим подробнее правые части уравнений в системе


(10). Они находятся посредством решения системы (9) для каждого одномерного сплайна. На примере сплайна (5) решим эту систему. [ a0 = f (vds, ,vgsj ,vbsk)

A0 + A1* (yds,+1 - vdsx) + A2* (vds,+1 - vds, )2 + A3* (vds,+1 - vds, )3 = f (vds,+1, vgsj, vbsk) df (vds1 ,vgs} ,vbsk)

a1 =

dvds

2 df (vds,+1,vgs, ,vbsk) dvds

Из решения видно, что a0 отвечает за равенство сплайна и функции в точке (vds ,vgsj,vbsk),

al отвечает за равенство производной сплайна по vds и производной функции по vds в точке (Vdsi,vgsj,vbsk), a2 косвенно отвечает за равенство производных в конечной точке отрезка

(vdsi+1, vgs j ,vbsk) по координате Vds, и a3 отвечает за оставшееся условие интерполяции, то

есть за равенство функции и сплайна в конечной точке отрезка (vds1+1,vgsj,vbsk) . По аналогии

такие же выводы можно сделать и для коэффициентов B, c, d.

В системе (10) нет уравнений для коэффициентов b3, c0, cl, d0. Следовательно, не будет выполняться равенство производной функции по vgs и производной сплайна в точке (vdst+1, vgs j ,vbsk ) . Отсюда и следуют сильные расхождения графиков производных функции и

сплайна. Проблему можно решить удачным выбором уравнений в (10), но следует отметить, что уравнений всего 12 и какие то из условий учесть все равно не получится.

Определимся с необходимым количеством выполняемых условий для обеспечения достаточной точности интерполяции функции и её производных. В текущей ячейке известны значения функции и её производных по всем трем координатам в восьми точках, ограничивающих ячейку. Из рисунка 1 видно, что наличие в системе уравнений для всех 4 коэффициентов а обеспечило хорошую точность интерполяции функции по координате Vds. Отсюда следует вывод, что наличие всех 32 коэффициентов a,b,c и d в системе (10) позволит обеспечить достаточную точность интерполяции функции и ее первых производных. Так как на концах отрезка по одной из координат сплайн и функция точно равны и равны тангенсы углов наклона касательных к ним, сплайн будет максимально «прижиматься» к функции на всех промежуточных значениях отрезка, тем самым, обеспечивая и приближение своей производной к производной функции. Если обеспечить такие условия на всех отрезках, ограничивающих ячейку, то точность интерполяции значительно увеличится.

Для этого необходимо наличие еще 20 уравнений в системе (10), рассчитанной всего на 12 неизвестных коэффициентов сплайна (3). Естественно, что 12 неизвестных не смогут обеспечить одновременное выполнение 32 уравнений.

Для обеспечения выполнения всех 32 условий можно воспользоваться раскрытием скобок в кубическом трехмерном сплайне, тогда получится 64 неизвестных коэффициента. Потребуется изыскание дополнительных условий интерполяции - условий равенства вторых производных сплайна и функции и т.д. Дополнительные условия хоть и повышают точность, но при этом значительно усложняют задачу, увеличивая вычислительные затраты для расчета коэффициентов сплайна. Поэтому, предложенный способ повышения точности интерполяции рекомендуется применять только для задач, где требуется высокая точность интерполяции функции и ее производных до второго порядка включительно. Например, для современных средств радиочастотного анализа такая величина, как вторая производная функции канального тока, имеет важное физическое значение. Для задач временной верификации схем достаточно высокой точности интерполяции функции и ее первых производных. Такая точность вполне может быть обеспечена квадратичным трехмерным сплайном, коэффициенты которого рассчитываются новым способом, описанным ниже.


В соответствии с определением, приведенным в [4] и по аналогии с выражением (3) квадратичный трехмерный сплайн имеет вид:

= £ а (vds - vds,)r * £ ъ\(vgs - vgsj)r * £ ckr(vbs - vbsk )r,(11)

r=0r=0r=0

i - текущий шаг по координате vds, j - текущий шаг по координате Vgs, k - текущий шаг по координате Vbs, ar, b} , crk - коэффициенты сплайна. r=0,1,2. Переменные сплайна ограничены условиями (2). В такой форме записи сплайна содержится 9 неизвестных коэффициентов, которые необходимо вычислить, составив систему уравнений из условий интерполяции. Понятно, что для выполнения 32 условий их явно не достаточно. В связи с этим предлагается, раскрыв скобки в (11), привести сплайн к формуле содержащей 27 неизвестных коэффициентов.

s2 3jk = c0 + c1 • y + c2 y2 + c3 • x + c4 • xy + c5 xy2 + c6 x2 + c7 x2y + c8 • x2y2 + c9 z +

c10 yz + c11 y2 z + c12 xz + c13 xyz + c14 xy2 z + c15 x2 z + c16 x2yz + c17 x2y2 z + c18 z2 + (12)

c19 yz2 + c20 y2 z2 + c21 xz2 + c22 xyz2 + c23 x2 z2 + c24 x2yz2 + c25 x2y2 z2 + c26 xy2 z2

Здесь: x = vds - vds, y = vgs - vgsj, z = vbs - vbsk.

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

К отрицательным свойствам сплайна (12) следует отнести большие затраты памяти для хранения коэффициентов и процессорного времени для вычисления самого сплайна по сравнению со сплайном вида (3). Процессорные затраты можно сократить уменьшением числа машинных операций для расчета формулы (12). Это достигается с помощью простейших математических преобразований формулы, таких как, например вынесение за скобки общего члена некоторого числа произведений. Затраты памяти тоже можно сократить. Для этого следует модернизировать алгоритм организации данных табличной модели и доступа к ним в машинной памяти. В современных условиях постоянного удешевления машинной памяти приоритетной становится задача повышения точности за счет увеличения числа коэффициентов сплайна.

После проведенных исследований были найдены уравнения, подходящие для вычисления 27 коэффициентов в (12). Более того, подобранные уравнения позволяют определять неизвестные систем аналитическим способом, не прибегая к различным алгоритмам решения СЛАУ, вносящим дополнительную погрешность в решение. Погрешность определения неизвестных коэффициентов благодаря такому подходу соизмеряется с погрешностью машинного округления, возникающей при делении в алгебраических выражениях. Из этих уравнений составляются следующие четыре системы: = cf(vds, vgsj, vbsk )

1 dvdsdvgs

, 2 Cf (vds ,vbsk )

cvds(13)

, 2vgsj ,vbbsk)

c4 hx+c7 hx =--c,

cvgs

c4 hxhy+ c5 hxhy2 + c7 hx2hy+c8 hx2hy2 = f (ydsi+1, vgsj+1, vbsk ) - c0 - c1 hy - c2 hy2 - c3 hx - c6 hx2



[стр.Начало] [стр.1] [стр.2] [стр.3]