跳转至

坐标系与物理量约定

很多 SHARPy 错误都来自坐标方向和符号约定。

SHARPy 中的参考系

SHARPy 在其线性化与线性气动弹性分析框架中使用以下参考系。

参考系 符号 含义
G 系(惯性 / 全局系) \(G\) 地球固连惯性参考系,SHARPy 的全局基准坐标
A 系(机体 / 局部系) \(A\) 固定在飞行器或梁上的体轴系,随结构变形而转动
U 系(UVLM 线性化系) \(U\) 线性气动弹性分析中的参考系:线性化扰动坐标下,U 系在线性化瞬间与 G 系重合,此后与 A 系保持固定的相对姿态差 \(\chi_0\);仅在 track_body=TrueStepLinearUVLM/LinearAeroelastic 上下文中使用

在 SHARPy 线性化框架下的变换关系:

\[ \mathbf{v}^U = \mathbf{C}^{GA}(\chi_0) \cdot \mathbf{C}^{AG}(\chi) \cdot \mathbf{v}^G \]

其中 \(\mathbf{C}^{AG}\) 是由四元数参数化的 A → G 旋转矩阵,\(\chi_0\) 为线性化点处的姿态。

注意:以上参考系定义和变换关系来自 SHARPy 线性气动弹性分析框架(sharpy.linear.src.lin_aeroelastic),主要用于解释气动弹性系统线性化、状态空间组装和降阶模型中的坐标变换。

对此更详细的推导参见 SHARPy 线性气动弹性理论文档

UVLM 气动坐标系约定

UVLM 采用右手全局坐标系,标准配置下:

\[ \begin{aligned} \text{来流方向(弦向)}&: +x \\ \text{翼展方向}&: +y \\ \text{正升力方向}&: +z \quad (\mathbf{x} \times \mathbf{y} = \mathbf{z}) \end{aligned} \]
  • 气动网格在 \(x\)-\(y\) 平面上生成:面板按弦向(\(M\) 列)和展向(\(N\) 行)划分。
  • 自由来流方向默认 \([1, 0, 0]\)(沿 \(+x\))。
  • 迎角 \(\alpha\) 通过对气动面的 twist 字段施加(绕 \(y\) 轴旋转),正迎角产生正 \(z\) 方向升力。
  • 涡格法的环量 \(\Gamma\) 按右手定则确定诱导速度方向,沿 \(+y\) 方向的涡丝产生 \(+z\) 方向的下洗。

梁结构坐标系约定

纯结构算例(无气动耦合)

在本项目的纯结构分析中,梁参考轴的坐标系为:

坐标轴 定义 方向
\(x\) 梁长方向 从固支端(\(x=0\))指向自由端(\(x=L\)
\(y\) 截面宽度方向 矩形截面宽度所在方向
\(z\) 竖直向上 右手系 \(\mathbf{x} \times \mathbf{y} = \mathbf{z}\)

节点坐标生成规则:\(x_i = i \cdot 0.125\ \mathrm{m}\)\(y_i = 0\)\(z_i = 0\)\(i = 0, 1, \dots, 16\))。

气动弹性耦合算例(含 UVLM)

在引入气动耦合后,梁轴必须与 UVLM 的展向对齐。本项目的映射方式为:

物理含义 纯结构坐标系 气动弹性坐标系 说明
梁轴 / 翼展方向 \(x\) \(y\) 梁轴与 UVLM 展向对齐
来流 / 弦向 \(x\) 来流 \(+x\),垂直于梁轴
升力 / 竖直 \(z\) \(z\) 两个坐标系中升力方向一致

这一映射通过 .fem.h5 的节点坐标实现:将梁节点沿 \(y\) 轴放置(coordinates = [0, y_i, 0]),使梁轴成为气动模型的展向参考轴。

核验时看三件事:

  1. SHARPy UVLM 期望来流沿 \(+x\),展向沿 \(+y\),升力沿 \(+z\)
  2. 梁轴不应与来流方向共线(否则 UVLM 网格退化)。
  3. 结构内力 / 外力 / 反力的分量顺序保持 [Fx, Fy, Fz, Mx, My, Mz],但其物理含义随坐标系方向变化。

警告:纯结构 \(x\) 轴(梁长方向)和耦合工况的 \(y\) 轴(翼展方向)代表同一物理方向。读取和对比两类结果时,必须注意坐标轴标签的对换,避免将面内弯曲与面外弯曲混淆。

自由度与结果量的分量顺序

结构节点自由度

每个结构节点有 6 个自由度,所有 SHARPy 结构数据均使用以下顺序:

\[ [\,u_x,\ u_y,\ u_z,\ r_x,\ r_y,\ r_z\,] \]
分量 含义 单位
\(u_x, u_y, u_z\) 平移位移 \(\mathrm{m}\)
\(r_x, r_y, r_z\) 转角(右手螺旋正方向) \(\mathrm{rad}\)

截面内力 / 合力 / 反力

所有力的量使用 SHARPy 结构载荷顺序:

\[ [\,F_x,\ F_y,\ F_z,\ M_x,\ M_y,\ M_z\,] \]
分量 含义 单位
\(F_x, F_y, F_z\) 力分量 \(\mathrm{N}\)
\(M_x, M_y, M_z\) 力矩分量(右手正方向) \(\mathrm{N \cdot m}\)

截面分布应变 / 曲率

梁截面的工程应变使用 SHARPy 应变顺序:

\[ [\,\varepsilon_x,\ \gamma_y,\ \gamma_z,\ \kappa_x,\ \kappa_y,\ \kappa_z\,] \]
分量 含义 单位
\(\varepsilon_x\) 轴向拉伸应变 无量纲
\(\gamma_y, \gamma_z\) 横向剪切应变 无量纲
\(\kappa_x\) 扭转曲率 \(\mathrm{m^{-1}}\)
\(\kappa_y, \kappa_z\) 弯曲曲率 \(\mathrm{m^{-1}}\)

主要物理量定义

根部反力 / 内力 / 外力

这是本项目标准化后处理层的约定(适用于静态工况的质量检查),不是 SHARPy 原生输出中的直接字段:

含义 符号关系
root_external_resultant 所有外加载荷(集中力、分布力、重力)换算到根部参考点的合力 / 合矩
root_internal_resultant 梁侧根部截面内部作用的合力 / 合矩
root_reaction 夹持支座施加在梁上的反向约束力 / 力矩 静态平衡时 \(\text{root\_reaction} = -\text{root\_external\_resultant}\)

在本项目静态工况的标准化 QC 中,检查 \(\text{root\_reaction} + \text{root\_external\_resultant} \approx 0\) 以验证仿真结果的物理一致性。

注意:SHARPy 原生输出不直接给出这三个命名字段,而是后处理脚本从原始力/位移数据中推导得出。在动态/惯性/气动耦合工况中,惯性和气动阻尼项的参与使得这个简单等量关系不再成立,不能照搬静态平衡公式。这三个字段仅在本项目标准化静态输出中使用。

迎角(Angle of Attack, AoA)

迎角 \(\alpha\) 定义为来流方向与机翼参考线(通常为弦线)之间的夹角。本项目在 SHARPy 建模中的实现方式是将 \(\alpha\) 通过 .aero.h5twist 字段施加(见 src/sharpy_cantilever/aeroelastic_case.py:830twist = radians(alpha_deg),配合 freestream_dir=[1,0,0]、结构展向 +y)。

这是本项目的建模约定,不是 SHARPy 对 AoA 的唯一官方定义。SHARPy 也可以通过改变 freestream_dir、机体姿态四元数、网格初始姿态等方式表达迎角。如果读者在自己的 SHARPy 案例中看到不同的 AoA 实现方式,应先检查具体求解器配置,不要默认与本节一致。

本项目约定:

  • \(\alpha > 0\):正迎角,机翼前缘上偏,产生 \(+z\) 方向升力。
  • 气动面 twist 的单位为弧度。

空速

  • 空速 \(U_\infty\) 在 SHARPy 配置中通过 u_inf 参数传入,单位为 \(\mathrm{m/s}\)
  • 用于 UVLM 自由来流速度场和尾迹对流速度。
  • 本项目使用的典型空速范围:\(15\)\(25 \ \mathrm{m/s}\)

总升力

总升力为气动力在 \(+z\) 方向的分量之和,记为 total_lift_N,单位为 \(\mathrm{N}\)。在本项目的数据集中,升力符号与 \(F_z\) 一致:

\[ \text{total\_lift\_N} = \sum_{\text{all panels}} F_z^{\text{aero}} \]

SI 单位体系

本项目全部使用 SI 单位,汇总如下:

物理量 单位 符号
长度(位移、梁长、弦长) \(\mathrm{m}\)
质量(总质量、线质量) 千克、千克/米 \(\mathrm{kg}\)\(\mathrm{kg/m}\)
牛顿 \(\mathrm{N}\)
力矩 牛顿·米 \(\mathrm{N \cdot m}\)
角度 / 转角 弧度 \(\mathrm{rad}\)
频率 赫兹 \(\mathrm{Hz}\)
时间 \(\mathrm{s}\)
密度 千克/立方米 \(\mathrm{kg/m^3}\)
弹性模量 帕斯卡 \(\mathrm{Pa}\)
应变 无量纲
曲率 每米 \(\mathrm{m^{-1}}\)
速度 米/秒 \(\mathrm{m/s}\)

SHARPy 输出与物理量映射的注意事项

  1. 符号方向:SHARPy 的力/力矩分量的正方向遵从右手法则;在气动弹性耦合计算中,升力 \(F_z\) 为正才是物理合理的方向。如果出现负升力,检查迎角符号或坐标系映射。
  2. 内力与外力不要混淆root_external_resultant 是外力合力换算到根部的值,root_reaction 是支座对梁的反作用力,两者数值相近但符号相反。
  3. 纯结构与耦合工况的坐标映射:纯结构算例中梁轴沿 \(x\),耦合算例中梁轴沿 \(y\)。对比 (ux, uy)(ry, rz) 时需做轴对换。具体映射关系见本章"气动弹性耦合算例"部分。
  4. 应变定义:SHARPy 的分布应变基于未变形坐标系中的工程应变定义,大变形时与真实 Green-Lagrange 应变的关系需额外转换。
  5. 转角分量\(r_x, r_y, r_z\) 是绕对应全局坐标轴的右手螺旋转角(弧度),不是欧拉角。