Полный математический аппарат псевдогиперболоида со смещенной осью (базового элемента Геометрической волновой инженерии) строится на интеграции аналитической геометрии кривых второго порядка, дифференциальной геометрии поверхностей и топологического анализа.
Ниже представлено строгое математическое описание, необходимое для моделирования, трассировки лучей и решения волновых уравнений в объеме такой структуры.
1. Уравнение образующей (Профильная кривая)
В основе поверхности лежит каноническая гипербола, заданная в декартовой системе координат Oxy. Ее уравнение имеет вид:
a2x2−b2y2=1
Для параметризации поверхности выразим ординату y (высоту профиля) как функцию от абсциссы x (продольной оси симметрии):
y(x)=b⋅a2x2−1
Область определения базовой кривой: Функция существует только при ∣x∣≥a. Интервал x∈(−a,a) представляет собой область разрыва. Физически это формирует центральный фокальный зазор резонатора шириной 2a.
2. Смещение оси и функция радиуса вращения
Ключевой принцип создания псевдоповерхностей ГВИ — вращение профиля не вокруг собственной оси симметрии, а вокруг смещенной прямой. Пусть ось вращения задана прямой, параллельной оси Ox и отстоящей от нее на расстояние R:
y=R
В каждой точке x локальный радиус вращения r(x) определяется как кратчайшее расстояние от образующей кривой до оси вращения. Для обеспечения строгой математической и физической корректности (радиус не может быть отрицательным) вводится функция модуля:
r(x)=∣R−y(x)∣=R−b⋅a2x2−1
3. Топологические ограничения (Критерий замыкания)
Поскольку гипербола уходит в бесконечность, существует критическая точка x=L, в которой ветвь гиперболы пересекает ось вращения y=R. В этой точке радиус вращения обращается в ноль:
r(L)=0⟹R=b⋅a2L2−1
Решая это уравнение относительно L, получаем предельную координату (точку «иглы» или смыкания поверхности):
L=a⋅1+(bR)2
Физический домен поверхности: Чтобы избежать топологического самопересечения (выворачивания поверхности наизнанку), построение строго ограничивается областью:
x∈[−L,−a]∪[a,L]
При x=±L фигура стягивается в сингулярные точки (полюса), а при x=±a формируются широкие открытые основания конусообразных раструбов (радиусом R).
4. Трехмерные параметрические уравнения
Для перехода в 3D-пространство вводится азимутальный угол ϕ∈[0,2π]. Каждая точка псевдогиперболоида задается радиус-вектором r(x,ϕ)=(X,Y,Z):
⎩⎨⎧X(x,ϕ)=xY(x,ϕ)=R+R−ba2x2−1⋅cos(ϕ)Z(x,ϕ)=R−ba2x2−1⋅sin(ϕ)
Эта система является абсолютным фундаментом для любого САПР-моделирования или генерации расчетных сеток (Mesh).
5. Анализ влияния параметров (Параметрическое пространство)
Математический аппарат позволяет управлять свойствами резонатора через три базовые константы:
- a (Полуширина зазора): Определяет размер центральной фокальной полости и входной апертуры. Чем меньше a, тем плотнее сближаются зеркальные ветви.
- k=b/a (Коэффициент асимптоты): Задает угол наклона стенок на удалении от центра. Влияет на градиент r′(x). При b→∞ поверхность стремится к прямому цилиндру; при малых b — к резкой воронке.
- R (Смещение оси): Масштабный фактор. Определяет максимальный диаметр резонатора в области x=±a и, согласно формуле для L, общую предельную длину всей конструкции.

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def plot_pseudo_hyperboloid_complete(a, b, R):
«»»
Построение псевдогиперболоида вращения со смещенной осью.
Параметры:
a : полуось гиперболы (половина зазора в центре)
b : параметр формы (наклон асимптот)
R : расстояние от центра координат до оси вращения
«»»
# 1. МАТЕМАТИЧЕСКИЙ ПРЕДЕЛ (Точка смыкания в иглу)
# Это значение x, при котором y(x) становится равным R
L = a * np.sqrt(1 + (R/b)**2)
# 2. ПОДГОТОВКА СЕТКИ ДАННЫХ
# Генерируем значения x от вершины ‘a’ до предела ‘L’
# Используем 500 точек для высокой детализации «горлышка»
x_range = np.linspace(a, L, 500)
theta = np.linspace(0, 2 * np.pi, 100)
X_mesh, Theta_mesh = np.meshgrid(x_range, theta)
# 3. УРАВНЕНИЕ ПОВЕРХНОСТИ
# Вычисляем профиль гиперболы y(x)
y_hyper = b * np.sqrt((X_mesh/a)**2 — 1)
# Радиус вращения вокруг оси y=R
r = R — y_hyper
# Координаты для правой ветви
X_right = X_mesh
Y_right = R + r * np.cos(Theta_mesh)
Z_right = r * np.sin(Theta_mesh)
# Координаты для левой ветви (зеркальное отражение по оси X)
X_left = -X_mesh
Y_left = Y_right
Z_left = Z_right
# 4. ВИЗУАЛИЗАЦИЯ
fig = plt.figure(figsize=(14, 9))
ax = fig.add_subplot(111, projection=’3d’)
# Отрисовка поверхностей (используем градиентную карту для объема)
ax.plot_surface(X_right, Y_right, Z_right, cmap=’plasma’, alpha=0.8, antialiased=True)
ax.plot_surface(X_left, Y_left, Z_left, cmap=’plasma’, alpha=0.8, antialiased=True)
# Отрисовка оси вращения (пунктирная линия)
ax.plot([-L, L], [R, R], [0, 0], color=’red’, linestyle=’—‘, linewidth=2, label=’Ось вращения y=R’)
# Настройка подписей и масштаба
ax.set_title(f’Псевдогиперболоид: a={a}, b={b}, R={R}\nПредельная длина L={L:.2f}’, fontsize=12)
ax.set_xlabel(‘Ось X (Длина)’)
ax.set_ylabel(‘Ось Y’)
ax.set_zlabel(‘Ось Z’)
# Установка равных пропорций осей для корректного отображения формы
max_dim = L
ax.set_xlim(-max_dim, max_dim)
ax.set_ylim(R — max_dim, R + max_dim)
ax.set_zlim(-max_dim, max_dim)
ax.legend()
plt.tight_layout()
plt.show()
# — ЗАПУСК С ВАШИМИ ПАРАМЕТРАМИ —
# a=1, b=1, R=10
plot_pseudo_hyperboloid_complete(a=0.6, b=0.7, R=20)