坐标系与物理量约定¶
很多 SHARPy 错误都来自坐标方向和符号约定。
SHARPy 中的参考系¶
SHARPy 在其线性化与线性气动弹性分析框架中使用以下参考系。
| 参考系 | 符号 | 含义 |
|---|---|---|
| G 系(惯性 / 全局系) | \(G\) | 地球固连惯性参考系,SHARPy 的全局基准坐标 |
| A 系(机体 / 局部系) | \(A\) | 固定在飞行器或梁上的体轴系,随结构变形而转动 |
| U 系(UVLM 线性化系) | \(U\) | 线性气动弹性分析中的参考系:线性化扰动坐标下,U 系在线性化瞬间与 G 系重合,此后与 A 系保持固定的相对姿态差 \(\chi_0\);仅在 track_body=True 的 StepLinearUVLM/LinearAeroelastic 上下文中使用 |
在 SHARPy 线性化框架下的变换关系:
其中 \(\mathbf{C}^{AG}\) 是由四元数参数化的 A → G 旋转矩阵,\(\chi_0\) 为线性化点处的姿态。
注意:以上参考系定义和变换关系来自 SHARPy 线性气动弹性分析框架(
sharpy.linear.src.lin_aeroelastic),主要用于解释气动弹性系统线性化、状态空间组装和降阶模型中的坐标变换。
对此更详细的推导参见 SHARPy 线性气动弹性理论文档。
UVLM 气动坐标系约定¶
UVLM 采用右手全局坐标系,标准配置下:
- 气动网格在 \(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]),使梁轴成为气动模型的展向参考轴。
核验时看三件事:
- SHARPy UVLM 期望来流沿 \(+x\),展向沿 \(+y\),升力沿 \(+z\)。
- 梁轴不应与来流方向共线(否则 UVLM 网格退化)。
- 结构内力 / 外力 / 反力的分量顺序保持
[Fx, Fy, Fz, Mx, My, Mz],但其物理含义随坐标系方向变化。
警告:纯结构 \(x\) 轴(梁长方向)和耦合工况的 \(y\) 轴(翼展方向)代表同一物理方向。读取和对比两类结果时,必须注意坐标轴标签的对换,避免将面内弯曲与面外弯曲混淆。
自由度与结果量的分量顺序¶
结构节点自由度¶
每个结构节点有 6 个自由度,所有 SHARPy 结构数据均使用以下顺序:
| 分量 | 含义 | 单位 |
|---|---|---|
| \(u_x, u_y, u_z\) | 平移位移 | \(\mathrm{m}\) |
| \(r_x, r_y, r_z\) | 转角(右手螺旋正方向) | \(\mathrm{rad}\) |
截面内力 / 合力 / 反力¶
所有力的量使用 SHARPy 结构载荷顺序:
| 分量 | 含义 | 单位 |
|---|---|---|
| \(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\) | 扭转曲率 | \(\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.h5 的 twist 字段施加(见 src/sharpy_cantilever/aeroelastic_case.py:830,twist = 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\) 一致:
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 输出与物理量映射的注意事项¶
- 符号方向:SHARPy 的力/力矩分量的正方向遵从右手法则;在气动弹性耦合计算中,升力 \(F_z\) 为正才是物理合理的方向。如果出现负升力,检查迎角符号或坐标系映射。
- 内力与外力不要混淆:
root_external_resultant是外力合力换算到根部的值,root_reaction是支座对梁的反作用力,两者数值相近但符号相反。 - 纯结构与耦合工况的坐标映射:纯结构算例中梁轴沿 \(x\),耦合算例中梁轴沿 \(y\)。对比
(ux, uy)或(ry, rz)时需做轴对换。具体映射关系见本章"气动弹性耦合算例"部分。 - 应变定义:SHARPy 的分布应变基于未变形坐标系中的工程应变定义,大变形时与真实 Green-Lagrange 应变的关系需额外转换。
- 转角分量:\(r_x, r_y, r_z\) 是绕对应全局坐标轴的右手螺旋转角(弧度),不是欧拉角。