Том XLII
УЧЕНЫЕ ЗАПИСКИ ЦАГИ 2011
№ 5
УДК 629.735.33.015.3 629.735.33.01
ПЕРЕСЕЧЕНИЕ ПОВЕРХНОСТЕЙ АГРЕГАТОВ В АЭРОДИНАМИЧЕСКОЙ КОМПОНОВКЕ САМОЛЕТА
А. В. ВЕРМЕЛЬ, В. Д. ВЕРМЕЛЬ, Е. И. КАЛИТИН
Рассматривается проблема определения линии пересечения заданных в параметрическом виде поверхностей агрегатов летательных аппаратов разного назначения. Предлагается два подхода к решению задачи, которые в практическом использовании взаимно дополняют друг друга.
Подробно описаны итерационные алгоритмы поиска точки на линии пересечения.
Проведен анализ в параметрическом пространстве сингулярных точек, в которых нарушается регулярный итерационный процесс. Рассмотрены методы преодоления возникающих трудностей решения задачи для сингулярных точек разного типа. Приведены соотношения для оптимальной длины шага из найденной точки пересечения при определении новой точки пересечения.
Результаты работы нашли практическое применение в CAD/CAM системе.
Ключевые слова: пересечение параметрических поверхностей, сингулярные точки, трассировка линии пересечения.
Аэродинамическая компоновка самолета образуется в результате объединения основных его агрегатов — фюзеляжа, центроплана, консолей крыла, оперений, мотогондол и др. Поверхности агрегатов строятся в соответствии с определенными условиями формообразования, обуславливаемыми их функциональным назначением. В процессе отработки аэродинамической компоновки изменяется взаимное расположение агрегатов и модифицируются их поверхности. При объединении агрегатов часть поверхности может оказаться во внутренних объемах компоновки и тогда она не участвует в образовании обтекаемой (внешней) поверхности аэродинамической компоновки, которая выделяется для каждого агрегата линиями пересечения с другими агрегатами.
ВЕРМЕЛЬ ВЕРМЕЛЬ КАЛИТИН
Андрей Владимирович Владимир Дмитриевич Евгений Иванович
кандидат технических наук, доктор технических наук, ведущий инженер ЦАГИ
Planit CAD/CAM software, plc начальник отделения ЦАГИ
Построение линий пересечений поверхностей агрегатов является обязательным элементом подготовки исходной геометрической информации для визуального анализа, аэродинамического расчета и технологической подготовки производства.
Алгоритмы, используемые для построения линий пересечения, в значительной степени зависят от представления пересекающихся поверхностей. В настоящее время в системах конструирования и технологической подготовки производства преобладающий объем поверхностей агрегатов самолета описывается параметрическими сплайнами. При применении других методов представления поверхности аппроксимируются параметрическими сплайнами.
В литературе ([1, 2] и др.) наиболее полно описаны методы построения линий пересечения поверхностей, представленных неявными функциями вида ^(х, у, г) = 0. В последние годы
выполнен целый ряд работ по построению пересечений параметрических поверхностей, использующих различные геометрические подходы. В настоящей работе используется метод, предложенный в [3], который определяет конструктивное направление в решении задач пересечения поверхностей, и предлагаются алгоритмы построения линии пересечения параметрических поверхностей применительно к аэродинамическим компоновкам самолетов.
В работе рассматриваются два подхода к решению задачи. В первом — используются характерные геометрические особенности поверхностей агрегатов самолета и их сопряжения с другими агрегатами. Во втором — для общего случая пересечения поверхностей решение ищется методом градиентного спуска для функции невязки векторного уравнения.
1. ПРЕДСТАВЛЕНИЕ ПОВЕРХНОСТЕЙ АГРЕГАТОВ АЭРОДИНАМИЧЕСКОЙ
КОМПОНОВКИ САМОЛЕТА
Рассматривается параметрическое представление поверхностей агрегатов в виде векторной функции двух криволинейных координат
Г = Г (и V), и е[0, мшах I V е[0, Утах I
определенной на каркасе линий обводов поверхности. Каркас составляют, как правило, два семейства трансверсальных линий, соответствующих и и V координатным линиям. Для примера на рис. 1 показан опорный каркас поверхности фюзеляжа аэродинамической модели самолета. Он образован характерными поперечными сечениями (и линии) и линиями продольных обводов (V линии), включающими верхний и нижний батоксы в плоскости симметрии, линию максимальной ширины, линию, определяющую нижний обвод фонаря, и др.
Линии опорного каркаса образуют координатную сетку на поверхности. В физическом пространстве ячейки сетки могут существенно различаться по размерам и отличаться от прямоугольной формы (рис. 1). При параметризации линиям сетки присваиваются определенные значения параметров и1 > и1+1, V^ > V^+1, где 7,] — номера текущих и и V линий.
В качестве значений параметра на линиях сетки используются последовательные члены натурального ряда, т. е. и7 = 7, V^ 7 = 0,1,..., т, ] = 0,1,..., п, где т и п — число поперечных
и продольных линий сетки. Такая параметризация при упрощении расчетных соотношений снижает затраты на интервальный поиск [1, 2].
В плоскости uov сетка координатных линий поверхности представляет собой квадратные клетки со стороной, равной единице.
Для описания поверхности на каждой клетке сетки определяется векторная функция
•(и, V) =
X
(u, V) У (и V) (и V)
и, V <
= [0,1]. (1)
Для приложений наряду со значениями координат точек поверхности г (и, V) должно быть
реализовано вычисление дифференциальных характеристик, обеспечивающих расчет касательных, нормалей и кривизн.
Рис. 1. Опорный каркас поверхности фюзеляжа
Совокупность сегментов поверхностей (1) на клетках сетки образует описание составной поверхности. В дальнейшем предполагается, что поверхность, описываемая на сетке кривых,
характеризуется непрерывностью функции г (и, V) при и е [0, т], V е [0, п], а также, по крайней
мере, непрерывностью направления нормали по линиям сопряжения сегментов поверхности. Тогда на линиях сетки (рис. 2) выполняются следующие условия:
г(1) (г, V) = г(2) (г, V), г(1) (и, 7) = г(2) (и, 7),
п(1)(г, V) = п(2)(г, V), п(1)(и, 7) = п(2)(и, 7), (2)
г = 1,2,..., т -1, 7 = 1,2, ..., п -1,
где п = NN1, N = ги х г,, — нормаль к поверхности. При нарушении условий (2) на одной из линий сетки принимается существование двух поверхностей, разделенных этой линией.
Характерной особенностью поверхностей агрегатов типа фюзеляжей и гондол является наличие вырожденных сегментов, образуемых при совпадении на определенных участках нескольких каркасных линий (см. рис. 1). Число линий сетки по каждой из параметрических координат обусловлено описанием наиболее сложных участков. На более простых участках (например, носовая часть фюзеляжа) ряд линий продольных обводов совпадает. По мере усложнения поверхности каркасные линии расходятся, формируя выступающую поверхность фонаря. Соответствующее использование каркасных линий позволяет описывать сложные гладкие поверхности на единой сетке [2]. У вырожденных, например, в и направлении сегментов (рис. 3)
г(2) (г +1, V ) = г( 2)( г + 2, V). (3)
Дифференциальные характеристики в и направлении (ги, гии) и, следовательно, нормаль
для данного сегмента не определены. Неопределенность дифференциальных характеристик является формальной. Она обусловлена не свойствами поверхности, а совпадением линий координатной сетки и разрешается в каждом конкретном методе описания поверхности. Обязательным при этом остается выполнение условий (2).
Рис. 2. Сопряжение сегментов поверхности
Проанализируем условия сопряжения сегментов составной поверхности. На линии сопряжения, являющейся общей для соседних сегментов (см. рис. 2),
r(1) (i, v) = r(2) (i, v). Также тождественно будут равны Рис. 3. Вырожденный сегмент поверхности:
производные вдоль границы по параметру V. Рассмот- а — в физических координатах; б — в параметрической рим линию на поверхности, пересекающую границу плоскости
между сегментами, p(i^ (u) = r(iu, const), i = 1,2.
Учитывая равенство производных r(1) (i, v) и r( 2) (i, v) вдоль границы, из (2) получаем для точки сопряжения отрезков кривой p(u), лежащей на линии сопряжения сегментов, р(1)( j) _ р(2)( j)
t =
р (1)( j) р (2)( j)
>(2)<
Обозначим а1 =
р (1)( j )
и а2 =
р (2)( j )
тогда
р (,,(. I начр(2 ’(j),
(4)
где 1 — единичный вектор касательной в точке сопряжения отрезков кривой на границе сегментов.
В случае обеспечения непрерывности кривизны $ на линии сопряжения наряду с (4) должно выполняться следующее условие [1]:
$В =р (1)( j )хр (1)( j ) = р(2)( j )хр(2)( j ).
>(2)<
р (1)( j )
Перепишем последнее соотношение:
р (2)( j )
t хр(2)( j) = 1 ^ I t Xf>(1)( j).
а
а
рМ,
(5)
Поскольку 1 х р(1) (]) = 0, то соотношение (5) удовлетворяется при выполнении следующего условия:
р (2)( ])=] р (1)( ■) )+мр (1)( ■)), (6)
где ц — произвольная константа.
Таким образом, в общем случае для составной поверхности (1) характерны разрывы модуля первых и вторых производных (соотношения (4) и (6)) на линиях сетки в ортогональных направлениях к линиям вне зависимости от условий сопряжения сегментов.
Указанную особенность, а также наличие вырожденных сегментов необходимо учитывать при реализации вычислительных процедур.
2. ПОИСК ТОЧКИ ЛИНИИ ПЕРЕСЕЧЕНИЯ ПОВЕРХНОСТЕЙ
Постановка задачи. Имеются (рис. 4) две пересекающиеся поверхности г1 (и1, у1 ) и Г (и2, У2 ). Поверхности определены на прямоугольной параметрической сетке с условиями сопряжения (2). Для каждой из поверхностей реализованы процедуры расчета координат точек и дифференциальных характеристик. Поверхности характеризуются наличием особенностей — вырожденных сегментов (3) по каждой из параметрических координат, а также разрывов модулей
первых и вторых производных на линиях сетки. Необходимо найти точку р* линии пересечения поверхностей Г1 и Г2, где
* и1 *
^1 * и2
*
V _
Очевидно, линия пересечения определяется из векторного уравнения
Г(1)(и1, V)- Г(2)(и2, ^2 ) = 0. (7)
Уравнению соответствует система трех алгебраических уравнений:
Х1 (и1, V)-Х2 (и2, ^2) = 0.
У1 (и1, V)- У2 (и2, ^2 ) = 0. (8)
г1 (и1, V)- ^2 (и2, V2 ) = 0.
Число неизвестных системы (и1, у1, и2, у2 ) на единицу превышает число уравнений. Традиционный прием ([1] и др.) состоит во введении дополнительного условия, определяющего точку линии пересечения. Наиболее широко используется задание плоскости, секущей обе поверхности. Принадлежность решения секущей плоскости дает четвертое уравнение, замыкающее систему (8):
Р [Г1 (иъ V ), Г2 (^ Ъ )_ = 0.
*
р =
Рассмотрим другие способы, позволяющие сохранить размерность задачи и, следовательно, повысить эффективность построения линии пересечения.
ЗАКРЕПЛЕНИЕ ПАРАМЕТРИЧЕСКОЙ КООРДИНАТЫ
Способ 1. У одной из пересекающихся поверхностей определяется изопараметрическая линия, имеющая точку пересечения со второй поверхностью.
Особенно просто (см. рис. 4) соответствующие линии могут быть установлены для поверхностей агрегатов с аэродинамической профилировкой, таких как крыло, оперения, пилоны. Вид линий и расположение агрегатов дают возможность их определения как в интерактивном, так и в автоматическом режимах.
В примере на рис. 5 показана линия на поверхности крыла и2 = с, пересекающаяся с поверхностью фюзеляжа. Уравнение линии:
Р(^2) = Г2 (С ^2).
ГТ1 ^ и
Таким образом, у искомого вектора р компонента и2 считается известной и равной с. Введем обозначение Е (р^ ) для невязки векторного уравнения (7) в точке р^ :
Г (Р к ) =
(Рк) ¥У (Р к ) Рг (Рк )
(9)
где
Рх (Рк ) = Х1 (и1к, Л1к )- Х2 (с, Ък ) = 0 Ру (Рк ) = У1 (и1к, Л1к )- У2 (С Л2к ) = 0, Рг (Рк ) = г1 (и1к, Л1к ) - г2 (С Ък ) = 0
Рк — текущая точка в системе изменяемых параметрических координат:
Рк =
'л1к
Л1к
Л2к,
Разлагая функцию (9) в ряд Тейлора и сохраняя первый член разложения, получаем систему линейных алгебраических уравнений для нахождения поправки Ак к вектору рк при итерационном решении нелинейных уравнений (8) методом Ньютона:
J (Р к )Л к = -Г (Р к ),
(10)
где J (Рк) — матрица Якоби.
УКх
УК
у
УК
УК — градиент функции.
Шаг метода Ньютона р к+і = р к + Лк, где
дК х дК дК ^ х
ди1 ду1 дУ2
дКу дКу дКу
у у
ди1 ду1 дУ2
дК_ К К
ди1 ду1 дУ2
Рк
Л к =^-1 (Р к ) Г ( Рк ).
ДВИЖЕНИЕ ПО ГРАДИЕНТУ ФУНКЦИИ НЕВЯЗКИ
(11)
Способ 2. Считаем все параметрические координаты свободными. Тогда вектор Рк, являющийся решением уравнения (7), и шаг метода Ньютона Лк являются четырехкомпонентными векторами. Поэтому шаг Лк не может быть определен из уравнения (10), соответствующего системе трех алгебраических уравнений.
J
Представим решение уравнения (8) в пространстве новых четырех координат. Три оси направим параллельно векторам градиентов компонент невязки в точке р к. Направление четвертой оси — вектор 1 определим как ортогональный градиентам. Возможность такого перехода обосновывается в работе [3].
Общее решение уравнения (8) запишем в следующем виде:
Ак = ак1 + Рк(Рк ) + Ук^ (Рк ) + 5к^ (Рк ). (12)
В окрестности точки Рк шаг в направлении 1 приводит к незначительному изменению величины Е. Поэтому принимаем а к = 0. Отсюда
Ак = ^ (Рк )Ак, (13)
где А к — шаг в новом пространстве:
1 * са і УКх
А* = У * , і = УКу
А _ ур2
дК КУА х г 4 д дК ^ х г 4 д
ди1 ди2 ду1 дУ2
дКу дКу дК
у у у у
ди1 ди2 ду1 дУ2
К К К
ди1 ди2 ду1 дУ2
Таким образом, мы перешли от четырех неизвестных (и1, у1, и2, v2 ) к трем неизвестным
(Рк, у к, ^к ), которые могут быть определены из уравнения (10).
Подставим (12) в (10):
і (р *) JT (р* )а* = -г (р к).
После выполнения преобразований
і'(р* К =-Г (р* ), (14)
где матрица
Шаг метода Ньютона
УКХ-У^ У^-УКу У^-УК2
УКу• У^. УКу-УКу УКу• УК2
УК2 • УКх УК2 • УКу УК2 • УК2
А* =
(і'( р* ))-1 Г ( р* ).
р *+1 = р * ■
где А* = іT (р* )А*.
При необходимости закрепления одной из параметрических координат эта компонента вектора р* считается постоянной и не изменяется в процессе решения.
і
ОГРАНИЧЕНИЕ ШАГА ИТЕРАЦИОННОГО ПРОЦЕССА
Величина шага, рассчитываемая по формулам (11) и (13), соответствует дифференциальным характеристикам в точке данного сегмента поверхности. Поскольку на границах сопряжения сегментов в общем случае реализуется ступенчатое изменение модуля первой производной (соотношение (4)), возможно зацикливание итерационного процесса в окрестности решения. Для его исключения достаточно ограничить шаг одним сегментом поверхности.
СИНГУЛЯРНЫЕ ТОЧКИ. СРАВНЕНИЕ СПОСОБОВ
Рассмотренные два способа определения точки линии пересечения поверхностей характеризуют линейные системы (10) и (14), матрицы коэффициентов которых соответственно J и Видно, что расчет шага в методе Ньютона для первого способа требует существенно меньшего числа операций по сравнению со вторым. Детальный подсчет показывает, что для определения шага в первом способе объем выполняемых арифметических операций в 2 раза меньше, чем во втором. В регулярном случае (см. рис. 5) направление и величина шага итерационного процесса Ньютона для обоих способов приблизительно одинаковы. Время построения линии пересечения при предварительной фиксации одного из параметров для первого способа будет соответственно меньшим. Введение дополнительного условия, например, секущей плоскости (как это рекомендуется в [1]), наряду с затратами на ее задание приводит к увеличению объема вычислений вследствие решения системы четырех уравнений в 6 раз по сравнению с первым способом и в 3 раза по сравнению со вторым.
Существенным достоинством второго способа является то, что в нем не вводятся какие-либо ограничения на взаимное расположение поверхностей и топологию координатных линий. Также не требуется дополнительное проведение вспомогательных построений. Снижение размерности задачи производится исходя из ясных геометрических соображений для общего случая пересечения.
Проанализируем возможное вырождение линейных систем, соответствующее сингулярным точкам в параметрических координатах. Для матрицы J системы уравнений (10) оно обуславливается уменьшением ранга матрицы вследствие стремления к нулю градиента одной из компонент вектора невязки, а также возникновением линейной зависимости между столбцами матрицы. Обнуление одного столбца матрицы, а также линейная зависимость строк в рассматриваемой постановке не имеют геометрического смысла.
НОЛЬ ГРАДИЕНТА КОМПОНЕНТЫ ВЕКТОРА НЕВЯЗКИ
=0, п = х|^|г. Реализуется в точках параметрического пространства, для которых нормали к обеим поверхностям коллинеарны одной из осей координат. Соответствующий пример приведен на рис. 6. При случайном попадании в точки (п11, п21), (п12, п21) или (п11, п22)
Рис. 6. Сингулярные точки, п: ||п2
процесс решения восстанавливается после любого пробного шага. В точке касания поверхностей (п12, п 22 ) предельный случай пересечения, вырождение матрицы J не позволяет получить решение с заданной точностью.
ПОДОБИЕ СТОЛБЦОВ МАТРИЦЫ J
^ . дК
де ’ де ’ де
= к
д^ . ^ ду ’ ду ’ ду
е = и1 V! и2\у2, у = и1 VI и2\у2, еФу.
Возникает в точках, принадлежащих параллельным участкам параметрических линий двух семейств, в которых касательные к параметрическим линиям (рис. 7) коллинеарные. Итерационный процесс (11) прерывается.
Рассмотренные сингулярные точки сохраняются и при традиционном решении системы четырех уравнений для параметров (и1, v1, и2, v2 ).
При втором способе поиска точек линии пересечения в результате перехода к новым координатам (12) матрица системы (13) становится симметрической.
Попадание в сингулярные точки вида ноль градиента приводит к одновременному обнулению строки и столбца, а в точки вида подобие столбцов — к попарному подобию строк и столбцов. Вычеркивание строки и столбца приводит к квадратичной матрице для системы двух уравнений (в предельном случае остается одно уравнение), из которых находятся две компоненты вектора перемещения к решению на данном шаге. В примере на рис. 6 в окрестности точки касания поверхностей это будет соответствовать движению вдоль оси г. Совместное перемещение по осям у и г произойдет при выравнивании невязок, а затем продолжится движение вдоль одной координаты, и так до достижения требуемой точности. В случае, иллюстрируемом рис. 7, будет выполняться перемещение, ортогональное одному из параллельных участков параметрических линий, вплоть до восстановления регулярного процесса решения.
Таким образом, в случае хорошей обусловленности матрицы целесообразно использование процесса (11). Нарушение сходимости устраняется за счет перехода к процессу (12). В общем
Рис. 7. Сингулярные точки, ^ 11 V
случае процесс (12) имеет существенные преимущества по быстродействию и устойчивости по сравнению с традиционным методом поиска точки пересечения поверхностей.
Кроме рассмотренных решений целесообразно обратиться и к более общему подходу преодоления проблем, касающихся вырожденных точек и плохой обусловленности системы. Это метод сингулярного разложения для численного решения плохо обусловленных систем.
ИСПОЛЬЗОВАНИЕ СИНГУЛЯРНОГО РАЗЛОЖЕНИЯ ДЛЯ ПРЕОДОЛЕНИЯ ВЫРОЖДЕННЫХ ТОЧЕК
И ПЛОХОЙ ОБУСЛОВЛЕННОСТИ
Для численного решения плохо обусловленных систем широко применяется метод сингулярного разложения. Рассмотрим применение сингулярного разложения для решения уравнения (10). При помощи быстро сходящейся итерационной процедуры матрицу I можно привести к виду:
J (Рк)4хЗ = и4х4 Л4x3 ^х3>
где U, v — ортогональные матрицы; л — диагональная матрица,
U = [Ub U2, U3, U4],
л =
Xi
0
0
0
X 2 0
0
0
X-J
Поскольку вектора и1; и2, из, и4 образуют ортонормированный базис в четырехмерном пространстве, решение уравнения (10) можно представить в виде:
Ak = aUi + PU 2 + yU + 5U 4.
Уравнение (10) принимает вид:
aX1
PX2
JX3.
= - v
F(pk).
б) X3 < X2 < 8,
в) X3 < |X2 < |XJ < 8,
откуда, при отличных от нуля Х1; X2 и Х3, непосредственно находятся значения a, р и у.
С точки зрения численного решения, плохая обусловленность системы эквивалентна вырождению. Поэтому, при реализации вычислительной процедуры, необходимо задаться малым числом в, существенно превышающим машинную точность. Возможны три степени вырожденности матрицы J(Pk):
а) |Х31 < в, Rank (J(pk )) = 2, свободные переменные у и 5;
Rank (J (pk )) = 1, свободные переменные Р, у и 5;
Rank ( J ( Pk )) = 0, полное вырождение.
При итерационном уточнении начального приближения полагаем 5 = 0, что соответствует движению в сторону наиболее быстрого уменьшения невязки ------- вдоль v||F (Pk )|| . Для обеспе-
чения скорейшего приближения к линии пересечения также положим у = 0 в случае (а) и р = 0 в случае (б). Случай (в) в реальных примерах может иметь место только в отдельных точках, поэтому данная ситуация преодолевается с помощью малого возмущения начального приближения. Вектор U4 задает направление шага вдоль линии пересечения в отсутствии вырождения.
В вырожденных случаях (а), (б) и (в) направление шага принадлежит пространству (U3, U4), (U2, U3, U4) и (U1, U2,U3, U4) соответственно. Для разрешения имеющей место неопределенности можно приблизительно определить направление шага проекцией предыдущего шага в соответствующее пространство.
3. ПОСТРОЕНИЕ ЛИНИИ ПЕРЕСЕЧЕНИЯ ПОВЕРХНОСТЕЙ
Известный способ построения линии пересечения [1] после нахождения одной из ее точек заключается в перемещении по вектору ортогональному векторам нормалей к поверхностям в точке пересечения в новую начальную точку. В общем случае полученная точка
г = г I х , у , г ) физического пространства, в которую выполняется перемещение, не лежит на линии пересечения.
Новая точка на линии пересечения ищется в два этапа: на первом устанавливается точка
*/****! ^ р 1^1, V , М2, V2 I параметрического пространства, соответствующая г . Соответствие устанавливается, например, по наименьшему расстоянию от г до каждой из поверхностей.
гтп */**\*/**\ *
Т очки г IМ1, Vl I и Г2 I М2, v^ с наименьшим расстоянием от г ищутся в результате итерационного процесса, характеризующегося значительным объемом вычислений [1]. На втором этапе найденная точка уже параметрического пространства используется в качестве начальной при нахождении новой точки линии пересечения из решения системы (8).
Однако существуют соотношения для определения шага вдоль линии пересечения поверхностей, исключающие необходимость в первом этапе описанного алгоритма, а также позволяющие оценить зависимость между длиной шага вдоль касательной к линии пересечения и отклонением от нее новой начальной точки.
Пусть р0 = р0 [м10, ^, м20, ^0 ] — точка на линии пересечения, найденная в соответствии
с алгоритмами раздела 2. Линия пересечения р (5), 5 — длина дуги, имеет непрерывные производные на отрезках, выделяемых границами сегментов пересекающихся поверхностей. Разложим ее на отрезке в ряд Тейлора по степеням 5, сохраняя первые 4 члена разложения:
2 3
р (5) = Р0 + 5р0 + 52 р0+ ^р0, (15)
и Фт
где р ’ =----.
ё5Ш
Для его использования необходимо найти производные р0т). Найдем их [3] из разложения вектора невязки (9) для линии пересечения:
52
М5) = ^(р0)+5УКлр0 + -у уклр^+ рОИ,р0
53
увд+Зрт иРп р0 + рт
г=1 да>
ро
где п = х|у|г, а = [м1, у1, и2, у2], — матрица Гессе в точке р0.
На линии пересечения Рп(Р (5)) = 0, следовательно, коэффициенты при всех степенях 5
должны быть равны нулю. Выделим в них члены со старшими производными Ро, перенеся
остальные слагаемые за знак равенства.
В результате преобразований получаем систему из девяти уравнений с неизвестными ком-
(т)
понентами векторов р0 .
уРлРот)= вп, т; П = Х, У, 2; т = 1,2,3, (16)
где
ВП,1 = 0,
Вп,2 = -Сп (М1, v1) + СП (^ V2 ),
Вп,3 = - °п (М1, V1) + °п( М2, v2 ),
Сп (М v) = Пии (и')2 + 2n„vUV + П (^)2,
°П (u, V) = Пиии (М)3 + 3П^ (М)2 ^ + 3Пи^М (^)2 + Л™ (^)3 + 3 [ПииМ'и" + (и+и) + П™Л"].
Поскольку р0т) являются четырехкомпонентными векторами, система не замкнута. В принципе, она должна быть дополнена еще тремя уравнениями. Сократим размерность задачи, использовав прием, примененный в координатах УКх, УКу, УК2, і :
использовав прием, примененный в разделе 2 (выражение (12)). Представим производные р0т)
Pom) = amt +ßmVFx + ymVFy +5mVFz. (17)
Подставим (17) в (16) и выполним преобразования, учитывая, что вектор t ортогонален градиентам, т. е. V^t = 0, n = x|y|z, tt = 1. В результате получаем систему из девяти уравнений с девятью неизвестными:
ß VF VF +y VF VF +5 VF VF = B (18)
rm v ± n x ' t m v ± n y 1 wm v ± n z -^n, m ? \±%J/
П = x|y|z; m = 1, 2,3.
Особенностью системы является то, что при определении компонент m-го вектора используются значения компонент (m - 1)-го.
Пусть решение системы (18) — ßm, y*m, 5*m. Тогда общее решение системы (16):
Po^ = «mt +ß*mVFx +y*mVFy + 5*„^. (19)
Из (16) имеем:
ßiVFx + Y* VFy +5*VFz =0.
Следовательно, p0 =a1t. Поскольку |p0| = 1, a1 = 1 и p0 = t.
Для второй производной p0 = d(p0 ), следовательно p0 ± t.
Таким образом,
a2 =0, p0 =ß2Vi^x + y*2VFy +5*2VFz .
Положим p0 = |p0|n. Тогда
p0 = (Ip 0Іn).
Выполнив дифференцирование, получаем:
т (3) d /\ ,, i\ I „|2
p0 = pO = ds (poI)n -|p0\ t,
I "|2
откуда a3 = -|p0| .
Окончательно:
p0 = - |pO|2 t + ß*VFx +Y^VFy + 5ЗЗ VFz.
Найденные величины p0, p0, p™ позволяют по соотношению (15) оценивать величину
* ^
шага s от исходной точки вдоль линии пересечения и величину отклонения в пространстве параметров.
1. Задан шаг h = As. Оценка отклонения
„ „ h\ , h3,, ,,
IM s hY\№ т1 М.
2. Задана оценка допустимого отклонения ||Ap|| от линии. Принимаем, что на шаге вклад в величину отклонения от третьего и четвертого членов разложения (15) не должен превышать
Ap||/2. Оценка шага:
s = min{s2, s3},
где
3. Ограничивается относительное отклонение по длине шага, т. е. суммарный вклад третьего и четвертого членов не должен превышать величины в от второго члена. Отклонение на шаге, обуславливаемое третьим и четвертым членами разложения, не должно превышать 1/2в для каждого. Оценка шага:
s = min{s2, s3},
4. ПРИМЕРЫ ПОСТРОЕНИЯ ЛИНИИ ПЕРЕСЕЧЕНИЯ
На рис. 8 иллюстрируется применение алгоритма при построении линии пересечения для двух сегментов поверхностей типа фюзеляжа и крыла. Перемещение поверхности крыла относительно фюзеляжа в верхнее положение (рис. 8, а) приводит к замыканию линий пересечения в один контур. В нем наряду с точками собственно пересечения присутствуют точки касания поверхностей. Другой вариант взаимного расположения поверхностей (рис. 8, б) характеризуется наличием двух замкнутых контуров.
Рис. 8. Примеры линий пересечения
Опыт практического использования алгоритмов подтвердил их высокую эффективность и надежность построения при их совместном использовании.
ЛИТЕРАТУРА
1. Фокс А., Пратт М. Вычислительная геометрия. — М.: Мир, 1982, с. 304.
2. Шенен П., Коснар М.. Гардан И. и др. Математика и САПР. — М.: Мир,
1988. Т. 2, с. 264.
3. B aj aj C. L., H o f fmann C. M., Lynch R. E., H o p t c ro ft J. T. H. Tracing surface intersections // Computer Aided Geometric Design. 1988. V. 5, p. 285 — 307.
Рукопись поступила 11/XI2010 г.