## 课题背景与当前目标

当前工作的核心不是再证明 pinball 可以被控制，而是解释 **机器学习控制究竟通过哪些流动结构通道改写尾迹**。项目对象是 2D 槽道中的 fluidic pinball：三个等径圆柱按等边三角形排布、各自可独立旋转；控制器利用 **各圆柱受力** 与 **下游三点速度观测** 进行闭环控制，在典型的二维脱涡雷诺数范围内实现 hydrodynamic stealth、illusion 和 wake erasure。已有数值结果已经证明这几类目标可以实现，且部分 stealth 与 illusion case 已完成实验验证。

当前真正的瓶颈不是“控制是否有效”，而是如何把以下链条写清楚：控制器看到了什么，动作首先改变了哪些受力或近尾迹结构，这些结构又怎样传播到下游并决定最终的 signature。换言之，文章和后处理最缺的是

\[
\text{obs} \rightarrow \text{act} \rightarrow \text{flow structure} \rightarrow \text{signature}
\]

而不仅是 `obs -> act` 或“控制前后流场长得不一样”。因此，这份任务书的目标是把已有能力组织成一条可重复的后处理链：从 `obs`、`act`、force、全流场和局部体力 probing 出发，解释控制如何改变低维结构、均值尾迹和下游 signature。对圆柱尾迹与受控 wake，最稳的分析框架是把 **控制代价**、**mean–fluctuation 重组**、**observable-related structure** 和 **localized forcing 诊断** 接起来，而不是单看 DTW 或单看全场误差 [Ber06, Tad10, Man15, Sch12, Lyu23, Jin21]。

## 新人首先需要知道的系统设定

### 研究对象

| 项目 | 内容 | 备注 |
|---|---|---|
| 几何对象 | fluidic pinball | 三个等径圆柱，前一后二，中心构成等边三角形 |
| 流动类型 | 2D 槽道不可压缩流 | 当前主线为抛物面来流，也有上游扰动来流工况 |
| 典型雷诺数 | 约 `Re_D ~ O(10^2)` | 目前分析重点可按 `Re≈100` 附近理解，但文稿中必须始终写清具体口径 |
| 执行器 | 三圆柱独立旋转 | 每个圆柱一个控制输入 |
| 观测 | 圆柱受力 + 下游三点速度 | 三个传感器各含 `u,v` 两分量 |
| 控制目标 | stealth / illusion / erasure | 本质上都是 downstream wake signature shaping |
| 评价方式 | 目标时序匹配 + 力学量辅助 | 当前主指标是 DTW，也保留 force / spectrum / field error |

### 为什么选 pinball

pinball 不是随意挑的玩具系统，而是一个兼具复杂性和可分析性的规范化平台。它同时具有：

- 多输入多输出闭环控制结构
- 近尾迹强非线性与多时间尺度
- 可清楚分辨的几何分工：前圆柱、上下后圆柱
- 已有较成熟的低维建模与模态分析背景 [Den18b, Den20, Den21, Li22b]

因此它既足够复杂，能承载机器学习控制；又足够“干净”，适合追问控制到底在调什么结构。

### 当前课题和传统主动流控的区别

当前目标不是传统 AFC 中常见的单一 drag reduction 或 force tracking，而是 **让下游观测到的时空 signature 变成指定目标**。因此，真正的控制对象不是某个积分量，而是下游可感知流场。对当前项目，更准确的说法是：

- stealth：让 pinball 的 downstream signature 接近“没有 pinball”或目标背景流
- illusion：让 pinball 的 downstream signature 接近另一个目标物体或目标流场
- erasure：强调抹去原有 wake signature，可视为 stealth 的一个极端形式

这也是为什么单纯按全场能量排序的 POD 不够，后续必须围绕 observable 去定义低维结构坐标。

### 当前控制与学习路线

| 模块 | 当前状态 | 用途 |
|---|---|---|
| DRL 闭环控制 | 已完成多类 case | 证明 stealth / illusion / erasure 可实现 |
| DANTE 树搜索 | 已用于替代或补充 DRL 探索 | 加速寻找有效策略 |
| SINDy / SR | 已用于分析 `act-obs` 关系 | 提升策略可解释性 |
| 实验验证 | 部分 stealth 与 illusion 已完成 | 支撑数值结果不是纯仿真特例 |
| 后处理分析 | 正在补强 | 目标是把控制与结构机制连起来 |

当前最缺的不是再给出一个更高分的控制器，而是把黑箱策略推进成：

\[
\text{obs} \rightarrow z \rightarrow \text{act}
\]

并进一步说明这个低维状态 \(z\) 对应哪些 flow structures、force channels 和 downstream signatures。

### 这份任务书要回答的核心问题

后续所有分析，最终都服务于下面几个问题：

1. 控制器到底在调哪些流动结构，而不是仅仅输出了什么动作
2. 这些结构首先体现在哪些量上：受力、均值尾迹、剪切层、回流区还是主模态
3. stealth 与 illusion 是在利用同一条结构通道，还是两类不同机制
4. 简化后的白箱控制律是否作用于少数低维结构态，而不是直接“记住”高维流场
5. CCD / OID / 相关分解是否能比普通 POD 更准确地识别这些与任务相关的结构

## 这一轮调研后新增的关键判断

这一轮最重要的变化，不是又多知道了几篇壁面涡量论文，而是**分析层级要下调到当前网格真正能承受的尺度**。

虽然 Chen Tao 这条线给出了很好的因果方向：旋转先改写壁面/近壁源项，再改写剪切层、受力和尾迹 [Che19, Che21b, Ter21, Zhu15]，但当前 pinball CFD 里单圆柱只占十多格，单圆柱边界层、精确分离点、壁面涡量通量点值都不可信。因此，这条线对本项目最重要的用途不是照着做 wall-resolved diagnosis，而是帮助把机制顺序写对：

\[
\text{rotation} \rightarrow \text{near-body correction} \rightarrow \text{wake structure} \rightarrow \text{force / signature}
\]

这意味着对当前项目，更稳的表述应当是：

- `force` 仍然很重要，但更像近体区修正过程的低维、强相关投影，而不是唯一第一性原因
- 当前最可信的主分析对象不是单圆柱壁面量，而是 **pinball 整体尺度的 near-body correction field**
- OID / CCD / PCD 最好优先作用在“控制额外改出来的那部分结构”上，而不是直接拿原始全流场做全部解释

这并不否定原来 `obs -> z -> act -> force/power -> wake structure -> signature` 的主链，而是要求在 `act` 与 `force/wake` 之间再补上一层更贴近当前数值分辨率的中介：

\[
\text{obs} \rightarrow \text{act} \rightarrow \text{near-body correction} \rightarrow \text{force/wake} \rightarrow \text{signature}
\]

后面几项任务里的新增内容，基本都围绕这一层展开。
## 为什么后处理主线必须引入 observable-related decomposition

当前项目的 reward 和成功判据，本质上都围绕传感器时序和目标 signature 展开。也就是说，真正需要解释的是 **哪些流场结构最影响 observable**，而不是哪些结构能量最大。POD 提供统一坐标系，但它按能量排序；CCD 则更适合回答“与某个 observable 最相关的结构是什么”，并且可以显式纳入时间延迟 [Lyu23]。这正好契合当前项目中最关键但最难的一步：把当前流场结构与未来下游 signature 联系起来。

因此，后续最值得建立的主链条不是停在 `obs -> act`，而是

\[
\text{obs} \rightarrow z \rightarrow \text{act} \rightarrow \text{force/power} \rightarrow \text{wake structure} \rightarrow \text{signature}
\]

其中 \(z\) 不是抽象潜变量，而是由公共 POD、observable-related coordinates、回流区几何量和必要的频域量共同构成的低维状态 [Sch12, Lyu23, Li22b]。

当前数值能力足以支撑一套分层分析：实时获得三个圆柱的独立转速与受力、下游一排三个传感器的速度时序、完整 2D 流场快照，以及在一个或多个小圆形区域内施加局部体力。这意味着可以把主线明确写成

\[
\text{obs} \rightarrow z \rightarrow \text{act} \rightarrow \text{force/power} \rightarrow \text{wake structure} \rightarrow \text{signature}
\]

其中 \(z\) 不是抽象潜变量，而是由公共 POD、observable-related coordinates、回流区几何量和必要的频域量共同构成的低维状态 [Sch12, Li22b, Tad10]。

## 系统设定与统一记号

采用以下统一记号，后续所有脚本、文件名和数据结构都按这一套执行。

| 量 | 记号 | 说明 |
|---|---|---|
| 采样索引 | `n=0,1,2,...` | 每隔若干 CFD 步采一次样，同时更新一次控制 |
| 物理时间 | \(t_n\) | 与采样点一一对应 |
| 三圆柱转速 | \(\Omega_i(t_n)\), `i=1,2,3` | 控制输入 |
| 三圆柱受力与力矩 | \(F_{x,i},F_{y,i},M_{z,i}\) | 实时可得 |
| 三个传感器速度 | \(s(t_n)\in\mathbb{R}^6\) | 每个传感器含 \(u,v\) 两分量 |
| 目标传感器时序 | \(s_{tar}(t_n)\) | 用于 DTW 与相似度 |
| 流场 | \(u(x,y,t_n),v(x,y,t_n)\) | 全域 2D 快照 |
| 局部体力 | \(\mathbf f_p(x,y,t)\) | 只允许作用在一个或多个圆形区域 |

雷诺数口径也必须固定写法：

- \(Re_D\)：以 pinball 单个圆柱直径为特征长度
- \(Re\)：以两倍直径的标准扰流圆柱尺度为特征长度

所有图题、case 标签、数据目录和表格都必须显式写明使用哪一个口径，不能混写。

## 数据输出与目录结构

为了避免后期反复重跑，建议所有 case 都一次性导出下列数据。

| 数据组 | 变量 | 最低格式 |
|---|---|---|
| 流场 | `U[n, iy, ix]`, `V[n, iy, ix]` | float32 或 float64 |
| 压力可选 | `P[n, iy, ix]` | 若存储允许则保留 |
| 力与力矩 | `Fx[n,3]`, `Fy[n,3]`, `Mz[n,3]` | 每个圆柱一列 |
| 控制量 | `Omega[n,3]` | 与受力严格同步 |
| 观测量 | `Obs[n,6]`, `Obs_tar[n,6]` | 顺序固定 |
| case 元数据 | `meta.json` | Re 口径、来流类型、目标类型、采样步长 |
| probing 元数据 | `probe.json` | 圆区中心、半径、方向、频率、幅值、起止时间 |

建议统一目录：

- `case_xxx/raw/`：原始同步数据
- `case_xxx/derived/`：均值场、RMS、涡量、回流区、谱、POD 系数等中间量
- `case_xxx/fig/`：标准图
- `case_xxx/report/`：统计表与摘要

## 时间对齐与窗口原则

控制效应不会立刻在传感器上体现，而是存在明显对流时延。当前设定里，控制通常需要大约 \(L_x/U\) 的传播时间才能在下游传感器上稳定体现；同时每个脱涡周期只有约 10–20 个采样点。因此所有分析都必须把 **时延** 和 **窗口长度** 当成一级问题，而不是事后修正 [Jin21, Jin19b]。

定义采样间隔为 \(\Delta t_s\)，主脱涡周期为 \(T_{shed}\)，则每周期样本数约为

\[
N_T = \frac{T_{shed}}{\Delta t_s} \approx 10\text{--}20
\]

定义控制到传感器的对流时延近似为

\[
\tau_c \approx \frac{L_x}{U_{conv}}
\]

实际代码中不应只用固定 \(U_{in}\)，而应在 pinball 下游到传感器之间取一个代表性的局部平均对流速度 \(U_{conv}\)。随后定义对应的采样滞后步数

\[
N_c = \mathrm{round}\left(\frac{\tau_c}{\Delta t_s}\right)
\]

所有 `act -> obs`、`force -> obs`、probing 响应和窗口化 DTW 计算，默认都要至少测试三种滞后：

- `0`
- `N_c`
- `N_c \pm 0.25 N_T`

这样可以判断最佳对齐是否真接近物理对流时延。

## 任务 1

## 基础后处理

第一批结果必须先把均值、脉动、功率和回流区做扎实。这一层风险最低，但几乎一定能给出物理信息。

### 1.1 均值场与脉动场

对每个 case，在去掉初始过渡后，计算时间均值场

\[
\bar u(x,y)=\frac{1}{N}\sum_{n=1}^{N} u(x,y,t_n),\qquad
\bar v(x,y)=\frac{1}{N}\sum_{n=1}^{N} v(x,y,t_n)
\]

定义脉动场

\[
u'(x,y,t_n)=u(x,y,t_n)-\bar u(x,y),\qquad
v'(x,y,t_n)=v(x,y,t_n)-\bar v(x,y)
\]

以及 RMS 图

\[
\mathrm{RMS}_u(x,y)=\sqrt{\frac{1}{N}\sum_{n=1}^{N} u'(x,y,t_n)^2}
\]

\[
\mathrm{RMS}_v(x,y)=\sqrt{\frac{1}{N}\sum_{n=1}^{N} v'(x,y,t_n)^2}
\]

同时建议输出均值涡量与瞬时涡量：

\[
\omega(x,y,t)=\frac{\partial v}{\partial x}-\frac{\partial u}{\partial y}
\]

### 1.2 回流区几何量

由均值流定义回流区边界为 \(\bar u=0\) 等值线。提取：

- 回流区长度 \(L_r\)
- 回流区面积 \(A_r\)
- 上下半区面积差
- 尾迹中心线偏移

圆柱尾迹的受控变化往往先表现为均值流重构，再改变脉动的增长与饱和，因此这些量应视为主指标，而不是附属图 [Tad10, Man15, Kha24c]。

### 1.3 力、力矩与控制功率

对每个圆柱定义瞬时控制功率

\[
P_{c,i}(t_n)=M_{z,i}(t_n)\,\Omega_i(t_n)
\]

总控制功率

\[
P_c(t_n)=\sum_{i=1}^{3} P_{c,i}(t_n)
\]

对每个 case 输出：

- \(P_{c,i}(t)\) 与 \(P_c(t)\) 时间序列
- 平均功率 \(\overline{P_c}\)
- 功率 RMS
- 功率谱
- 三个圆柱功率占比

旋转控制的功率核算必须和气动收益分开记账，否则很容易得到“结果有效但代价模糊”的控制解释 [Ber06]。

### 1.4 传感器误差与相似度

定义瞬时传感器误差向量

\[
e_s(t_n)=s(t_n)-s_{tar}(t_n)
\]

定义点态误差范数

\[
E_s(t_n)=\lVert e_s(t_n)\rVert_2
\]

DTW 仍保留为最终任务指标，但建议补两个更轻量的窗口量：

- 窗口化欧氏误差均值
- 窗口化相关系数或相位滞后

因为 DTW 适合最终评分，不适合作为所有中间分析唯一指标。

### 1.5 新增：三场分解与 correction field

这是这一轮调研后最值得优先加入的分析层。目的不是替代前面的基础后处理，而是把“pinball 自身阻挡的影响”和“旋转控制额外施加的影响”分开。

对每个主分析工况，至少准备三类同步场：

| 记号 | 含义 |
|---|---|
| \(q_{in}(x,t)\) | 入射参考场：没有 pinball，只有背景来流或上游扰动 |
| \(q_{blk}(x,t)\) | 固定 pinball 场：pinball 在场内，但不旋转 |
| \(q_{ctl}(x,t)\) | 控制 pinball 场：pinball 按 DRL 策略旋转 |

这里的 \(q\) 可以是速度场、涡量场、压力场，或其低维投影。

随后定义两个差分场：

\[
\Delta q_{blk} = q_{blk} - q_{in}
\]

表示 **pinball 几何阻挡本身** 对流场造成的扰动；再定义：

\[
\Delta q_{ctl} = q_{ctl} - q_{blk}
\]

表示 **在 pinball 已经存在的前提下，旋转控制额外施加的修正**。

这一步对 cloak 与 illusion 都特别关键。

- 对 cloak，更合理的任务表述不是“合力为零”，而是：控制产生的 correction field 尽量抵消 blockage wake，因此在任务相关区域里倾向于看到

\[
\Delta q_{ctl} \approx -\Delta q_{blk}
\]

- 对 illusion，更合理的任务表述不是“pinball 直接变成目标物体”，而是：控制在 fixed-pinball 的基线 wake 上叠加一个 target-like correction。若目标物体在相同来流下的场记为 \(q_{tar}\)，则理想上应比较

\[
\Delta q_{ctl}
\]

与

\[
q_{tar} - q_{blk}
\]

之间的接近程度。

第一轮不必追求精细壁面量，只需先在 pinball 整体尺度上回答：

- pinball 本来会把流场改成什么样
- 控制又额外把它改成什么样
- 这部分额外修正是否具有稳定结构，并继续传到 force 与 signature

推荐至少分三个区域看这些差分场：

- pinball 紧邻区
- 近尾迹形成区
- 下游传感器区

并优先用粗粒化指标，而不是单点壁面量。例如：

- 正负涡量面积或积分
- 上下半区涡量不平衡
- 回流区长度与面积变化
- 近尾迹中心线偏移
- 分区能量 / enstrophy 差分

这一步若能跑通，后面的 OID、CCD 和 SR 才有一个真正清楚的中介对象可接。

### 1.6 新增：wake-to-force 视角下的 near-wake 层级

这一轮需要补上的，不只是“控制额外改了什么流场”，还包括：**这些改动里哪些部分最直接投影到 force，哪些部分再继续发展成 downstream signature**。wake-to-force 文献给出的最重要启发，不是又多了一套算力公式，而是指出应把“与物体仍动态相连的近尾迹结构”与“已经成熟脱落的 far wake”分开看。[Noc99, Kan17b, Geh23]

这会把主链条进一步细化为：

\[
\text{obs} \rightarrow \text{act} \rightarrow \Delta q_{ctl} \rightarrow \text{body-connected wake structure} \rightarrow \text{force} \rightarrow \text{future signature}
\]

对当前 pinball，这条补充很重要，因为它正好化解一个表面矛盾：

- **目标 signature** 的形成确实需要若干个 \(D\) 的对流、融合和发展；
- 但**瞬时力与控制直接作用的主结构层**未必需要延伸到整个成熟 far wake，而更可能集中在 pinball 后方有限的 body-connected 区域。[Kan17b]

因此，第一轮分析时不宜把“离 pinball 很近的结构不可能像 target”误写成“近尾迹对机制不重要”。更稳的表述应当是：

- 近尾迹负责 force-relevant structure；
- 更下游的发展区负责 signature formation；
- 两者应区分但不能割裂。[Kan17b, Sch12, Lyu23]

在执行层面上，这意味着至少应把后处理区域分成三层：

| 区域 | 主要问题 | 更适合接哪条线 |
|---|---|---|
| pinball 紧邻区 | 旋转先改了什么近体区修正 | Chen 线 / correction field [Che19] |
| body-connected near wake | 哪些结构最先投影到 force | wake-to-force / force-OID / force-CCD [Noc99, Kan17b, Geh23, Sch12] |
| downstream sensor zone | 哪些结构最终决定 future signature | signature-OID / CCD / delay-aware 相关分解 [Sch12, Lyu23] |

## 任务 2

## 公共 POD 与低维状态

POD 的用途不是直接给最终机制下结论，而是建立统一坐标系，让不同 case 的结构变化可比较 [Den18b, Den20, Tai17]。

### 2.1 公共 POD

把 uncontrolled、stealth、illusion、target，以及必要的 disturbed inflow case 的快照拼在一起，构造状态向量

\[
q(t_n)=
\begin{bmatrix}
 u(x_1,y_1,t_n),\ldots,u(x_M,y_M,t_n),
 v(x_1,y_1,t_n),\ldots,v(x_M,y_M,t_n)
\end{bmatrix}^{\top}
\]

对去均值后的矩阵做 SVD：

\[
Q = U \Sigma V^{\top}
\]

得到空间模态 \(\phi_k\) 与时间系数 \(a_k(t_n)\)。

### 2.2 必须输出的 POD 结果

| 输出 | 说明 | 用途 |
|---|---|---|
| 前 6 阶模态 | 空间结构图 | 看主导 shedding pair、shift-like mode |
| 模态能量占比 | 条形图 | 看各 case 能量重分配 |
| 主系数时间序列 | \(a_1,a_2,a_3,a_4\) | 看周期、相位和稳定态 |
| 主系数相图 | 如 \((a_1,a_2)\) | 看 attractor 与状态迁移 |

### 2.3 主系数与观测/动作/力的关联

至少计算下列相关量：

\[
\mathrm{corr}(a_k,\Omega_i),\qquad
\mathrm{corr}(a_k,F_{x,i}),\qquad
\mathrm{corr}(a_k,F_{y,i}),\qquad
\mathrm{corr}(a_k,E_s)
\]

同时做滞后版本：

\[
\mathrm{corr}(a_k(t),\Omega_i(t-\tau)),\qquad
\mathrm{corr}(a_k(t),E_s(t+\tau))
\]

如果 stealth 与 illusion 主要作用于同一对主模态，则说明它们可能是同一结构通道的不同目标化使用；如果作用对象不同，则可支持“机制并不相同”的判断。

## 任务 3

## observable-related decomposition

你的控制目标仍然是 downstream signature shaping，但这一轮之后，OID 这条线不应再被理解成“对原始全流场做更高级模态分解”。更稳的做法是：**先把流场分成入射场、阻挡场和控制额外修正场，再在 correction field 上做 observable-related decomposition。** 也就是说，OID / PCD / CCD 的默认主对象应优先变成

\[
\Delta q_{ctl} = q_{ctl} - q_{blk}
\]

而不是直接拿 \(q_{ctl}\) 做解释。

同时，cloak 和 illusion 虽然都属于 signature shaping，但它们面对的原始流场和要完成的修正任务并不相同：

- **steady cloak**：均匀来流下，pinball 自身会自激 shedding；控制后要把下游重新推回稳定均匀态。
- **Karman cloak**：上游本来就有涡街；pinball 不控制时把它扰乱；控制后要恢复原来涡街的频率与形状。
- **illusion**：均匀来流下，pinball 不控制时有 natural shedding；控制后要把这个 shedding 改写成目标圆柱的 shedding。

因此，这一部分不能再把 steady cloak、Karman cloak 和 illusion 当成同一种 OID 问题来处理。

### 3.1 为什么 POD 不够

POD 的排序标准是流场能量最大，而不是任务相关性最大 [Den18b, Tai17]。但对当前问题，真正关心的不是“哪个结构最强”，而是：

- steady cloak 中，哪个 correction structure 最能压低 natural shedding、恢复均值尾迹
- Karman cloak 中，哪个 correction structure 最能抵消 pinball 对 incoming street 的破坏
- illusion 中，哪个 correction structure 最能把 natural pinball shedding 改写成 target shedding
- 哪个 structure 最影响总 force 或各圆柱 torque
- 哪个 structure 最决定 future signature

因此必须比较三类坐标：

- **POD 坐标**：最 energetic 的结构
- **OID-style 坐标**：最影响 observable 的结构 [Sch12]
- **PCD-style 坐标**：与 observable 最相关、且可显式处理时延的结构 [Lyu23]

如果后两者与 POD 前几阶不同，反而说明控制不是简单压主模态，而是在调少数 task-relevant correction structures。

### 3.2 前置数据准备

这一轮之后，OID 的前置数据不应只有公共 POD，还必须先有三场分解：

- \(q_{in}\)：入射参考场
- \(q_{blk}\)：固定 pinball 场
- \(q_{ctl}\)：控制 pinball 场

然后定义：

\[
\Delta q_{blk} = q_{blk} - q_{in}
\]

\[
\Delta q_{ctl} = q_{ctl} - q_{blk}
\]

其中：

- \(\Delta q_{blk}\) 代表 pinball 几何阻挡本身带来的被动扰动
- \(\Delta q_{ctl}\) 代表旋转控制额外施加的主动修正

随后在 correction field 上做公共 POD。保留前 \(r\) 阶系数，建议先从 \(r=6,8,10\) 做最小 rank sensitivity，再根据数据长度扩到 \(r=12,16\)。定义 POD 系数向量：

\[
a(t_n)=\begin{bmatrix}a_1(t_n),\ldots,a_r(t_n)\end{bmatrix}^{\top}
\]

对每个系数做标准化：

\[
\tilde a_k(t)=\frac{a_k(t)-\mu_{a_k}}{\sigma_{a_k}}
\]

组成标准化矩阵 \(\tilde A\in\mathbb{R}^{N\times r}\)。observable 也全部做标准化，避免不同量纲主导分解。

### 3.3 三类场景下的 observable 设计

OID 现在不能只机械地区分 force observable 和 sensor observable，还要按场景定主问题。

#### A. steady cloak

steady cloak 的第一问题不是“未来周期性 signature 匹配”，而是：

- 压低自然 shedding
- 恢复均值尾迹
- 收缩回流区
- 让下游重新接近均匀稳定态

因此更适合的 observable 是：

- 总 force / total torque
- control power
- fluctuation amplitude 或局部 RMS
- mean-wake 指标，如 \(L_r\)、\(A_r\)、尾迹中心线偏移
- 下游相对于均匀稳态的误差

steady cloak 第一轮不必强行套入 periodic future-signature 模板。

#### B. Karman cloak

Karman cloak 的第一问题是：

- pinball 破坏了 incoming vortex street 的什么结构
- 控制又额外施加了什么 correction 去恢复该 street
- 哪些结构最决定 future signature 的相位、频率和形状恢复

这里最自然的 observable 是：

\[
y_F(t)=\begin{bmatrix}
\sum_i F_{x,i}(t),\sum_i F_{y,i}(t),\sum_i M_{z,i}(t)
\end{bmatrix}^{\top}
\]

以及 future-signature observable：

\[
p_{sig}(t)=\begin{bmatrix}
e_s(t+\tau_c), e_s(t+\tau_c+\tau), e_s(t+\tau_c+2\tau)
\end{bmatrix}^{\top}
\]

其中 \(\tau_c\) 取控制到传感器的对流时延，\(\tau\) 建议先取约四分之一脱涡周期。

#### C. illusion

illusion 的第一问题不是 suppress wake，而是 retune wake：

- natural pinball shedding 如何被改写成 target shedding
- 哪些结构主要改频
- 哪些结构主要改空间形态
- 这些结构与 force 的关系是同一条通道，还是先近尾迹调制、后下游重组

这里同样优先保留：

\[
y_F(t)=\begin{bmatrix}
\sum_i F_{x,i}(t),\sum_i F_{y,i}(t),\sum_i M_{z,i}(t)
\end{bmatrix}^{\top}
\]

以及 future-signature observable：

\[
p_{sig}(t)=\begin{bmatrix}
e_s(t+\tau_c), e_s(t+\tau_c+\tau), e_s(t+\tau_c+2\tau)
\end{bmatrix}^{\top}
\]

必要时再补与目标 shedding 直接相关的低维指标，如主频偏差、phase error 或 envelope 差异。

### 3.4 从零开始的 OID-style 实现

严格按原始 OID 理论实现会比较重，对 coder 最稳的第一版仍然是 **cross-covariance OID-style decomposition**。但这一步默认应先作用在 correction-field POD 系数上，而不是 raw full-field POD 系数上。

给定标准化 correction-field POD 系数 \(\tilde A\in\mathbb{R}^{N\times r}\) 和标准化 observable 矩阵 \(\tilde Y\in\mathbb{R}^{N\times m}\)，先计算交叉协方差：

\[
C_{AY}=\frac{1}{N}\tilde A^{\top}\tilde Y
\]

对 \(C_{AY}\) 做奇异值分解：

\[
C_{AY}=U\Sigma V^{\top}
\]

则：

- \(U\) 的列向量给出 POD 子空间里与 observable 最相关的方向
- 奇异值 \(\sigma_k\) 给出相关强度排序
- 定义 observable-related 坐标

\[
z^{OID}(t)=U^{\top}\tilde a(t)
\]

- 对应空间模态可由 POD 模态线性组合得到

\[
\psi_k^{OID}(x,y)=\sum_{j=1}^{r} U_{jk}\,\phi_j(x,y)
\]

这一步的物理解释要写准：\(\psi_k^{OID}\) 不是最 energetic 的结构，而是最能改变当前选定 observable 的 **correction structure**。

#### OID-style 的主分支

1. **force-OID**：令 \(Y=y_F\)
2. **signature-OID**：令 \(Y=e_s\) 或 \(Y=p_{sig}\)
3. **steady-suppression OID**：steady cloak 下令 \(Y\) 取 fluctuation / mean-wake restoration 指标

这样回答的问题会更直接：

- 哪些 correction structures 最影响 force
- 哪些 correction structures 最影响 future signature
- 哪些 correction structures 最能压低 natural shedding 并恢复稳定尾迹

### 3.5 从零开始的 PCD-style 实现

对当前问题，PCD 最值得用于处理 **时延 + 多变量 sensor + 噪声**。特别是 Karman cloak 与 illusion，它们都比 steady cloak 更依赖 future signature 的显式对齐。对 coder，推荐做一个 **delay-aware correlation decomposition**，本质上是对标准化 POD 系数和延迟 observable 做 whitening 后的 SVD。

先取标准化系数 \(\tilde A\) 和某个延迟 observable 矩阵 \(\tilde P\)；例如 \(\tilde P=\tilde P_{sig}\) 或 \(\tilde P_{causal}\)。

定义协方差矩阵：

\[
C_{AA}=\frac{1}{N}\tilde A^{\top}\tilde A,
\qquad
C_{PP}=\frac{1}{N}\tilde P^{\top}\tilde P,
\qquad
C_{AP}=\frac{1}{N}\tilde A^{\top}\tilde P
\]

构造 whitening 后的相关矩阵：

\[
K=C_{AA}^{-1/2} C_{AP} C_{PP}^{-1/2}
\]

对 \(K\) 做 SVD：

\[
K=U\Sigma V^{\top}
\]

定义 PCD-style 坐标：

\[
z^{PCD}(t)=U^{\top} C_{AA}^{-1/2}\tilde a(t)
\]

对应空间模态仍由 POD 模态线性组合得到：

\[
\psi_k^{PCD}(x,y)=\sum_{j=1}^{r} W_{jk}\,\phi_j(x,y)
\]

其中 \(W=C_{AA}^{-1/2}U\)。

这一步比 OID-style 更适合 periodic signature 问题，因为：

- 可以自然纳入多时刻 observable
- 可以把当前 correction structure 与未来 signature 对齐
- 对不同 observable 分量量纲和噪声更稳 [Lyu23]

### 3.6 推荐的两套 PCD-style 版本

#### A. causal-PCD

输入用 \(p_{causal}(t)\)。用途是：

- 找到与当前控制输入最相关的结构态
- 后续进入 `obs -> z -> act`

#### B. signature-PCD

输入用 \(p_{sig}(t)\)。用途是：

- Karman cloak：找到哪些 correction structures 最决定 incoming street 的重建
- illusion：找到哪些 correction structures 最决定 target shedding 的重建
- 建立 `structure -> future signature` 链条

### 3.7 force-OID 与 signature-OID 的分工口径

这一轮之后，OID/CCD 这条线里必须长期保留一个区分：**force-relevant structures** 与 **signature-relevant structures** 不应先验地视为同一组 [Sch12, Kan17b, Lyu23]。

更稳的工作假设是：

- controller 首先调制一小组与 force 强相关的 near-body / body-connected correction structures；
- 这些结构在若干个 \(D\) 的对流与相互作用后，再组织成与 downstream signature 强相关的 descendant structures。

因此，若后续分析发现 force-OID 与 signature-OID 不同，这不应被第一时间解释为算法失败；它很可能正是最有价值的机制结果。

### 3.8 该怎么判断 OID/PCD 比 POD 更有用

不能只看模态图好不好看，要用预测能力比较，并且要按场景选择评价对象。

#### 对比 1

用前 \(m\) 个 POD 坐标预测 observable，与用前 \(m\) 个 OID/PCD 坐标预测 observable 比较。

例如对 periodic cases：

\[
\hat e_s(t+\tau_c)=B z_{1:m}(t)
\]

对 steady cloak，则可改用：

- fluctuation suppression metric
- mean-wake restoration metric
- recirculation geometry metric

#### 对比 2

用前 \(m\) 个坐标拟合动作：

\[
\hat \Omega_i(t)=b_i^{\top} z_{1:m}(t)
\]

比较 POD 与 OID/PCD 的误差和稀疏度。

#### 对比 3

比较不同坐标与任务指标的相关强度：

\[
\mathrm{corr}(z_k,E_s),\qquad \mathrm{corr}(z_k,\Omega_i),\qquad \mathrm{corr}(z_k,y_F)
\]

steady cloak 还应补看：

\[
\mathrm{corr}(z_k,L_r),\qquad \mathrm{corr}(z_k,A_r),\qquad \mathrm{corr}(z_k,\text{RMS metric})
\]

### 3.9 coder 的实现顺序

1. 先做三场分解，得到 \(q_{in}, q_{blk}, q_{ctl}\)
2. 构造 \(\Delta q_{blk}\) 与 \(\Delta q_{ctl}\)
3. 先做 correction-field POD，而不是直接做 raw-field POD
4. 标准化 \(a(t)\) 和 observable
5. 先做 force-OID
6. steady cloak 再做 suppression / mean-wake OID
7. Karman cloak 与 illusion 再做 signature-OID 或 signature-PCD
8. 输出前 3 到 5 个坐标和对应空间模态
9. 比较这些坐标与 `act`、`force`、`future sensor error` 或 steady restoration 指标的关系
10. 最后再决定是否追更严格的 paper-level exact OID/PCD 公式

### 3.10 输出要求

| 输出 | 说明 | 用途 |
|---|---|---|
| correction-field POD vs OID/PCD 模态对比 | 同一基底下比较 | 看最强 correction structure 与最相关 correction structure 是否不同 |
| \(z_k(t)\) 时间序列 | 各种坐标时序 | 看控制在调哪些 correction freedom |
| \(z_k\) 与 `act` 的回归图 | 含滞后版本 | 看白箱控制依赖何种结构态 |
| \(z_k\) 与 future signature 的关系 | 用 \(p_{sig}\) | 看哪些结构最决定周期性 cloak / illusion 成败 |
| \(z_k\) 与 suppression / recirculation 指标的关系 | steady cloak | 看哪些结构最决定稳态恢复 |
| 预测性能表 | POD / OID / PCD 三种坐标对比 | 证明 observable-related 分解有价值 |

## 任务 4

## 白箱控制链的两级拟合

既然 stealth 下 `obs -> act` 已经可能较简单，就不要只停在这一条。应同时比较下列三类模型：

\[
\text{Model A:}\quad \Omega = f(s)
\]

\[
\text{Model B:}\quad z = g(s),\qquad \Omega = h(z)
\]

\[
\text{Model C:}\quad z = g(s,F),\qquad \Omega = h(z)
\]

其中 \(f,g,h\) 可用线性回归、稀疏回归、SINDy 或简单符号回归。关键不是追求最高精度，而是比较：

- 哪个模型最简单
- 哪个模型最稳
- 哪个模型更能解释结构态

### 4.1 单 case 白箱链

对单个 case，优先比较四种输入：

- 原始 sensor：`s(t)`
- sensor + force：`[s(t), y_F(t)]`
- POD 坐标：`a(t)`
- OID/PCD 坐标：`z(t)`

对每个圆柱拟合：

\[
\Omega_i(t)=h_i(\chi(t))
\]

其中 \(\chi\) 依次取上面四类输入，并比较精度与稀疏度。

### 4.2 针对涡街隐身的跨 Re 统一方程

对于上游圆柱涡街来流的 stealth 工况，建议单独做一条 **多 Reynolds 数统一方程** 路线。目标不是每个 case 单独给一个公式，而是检验是否存在一个共享骨架，在不同 \(Re_D\) 下只靠一个上下文参数就能内插 [Bru16, Loi17]。

这里最建议使用的上下文变量不是 \(Re\) 本身，而是

\[
\mu = \frac{1}{Re_D}
\]

或等价的无量纲黏性参数 \(\nu/(U_{ref}D)\)。原因是 Navier–Stokes 方程的黏性项本身就是按 \(1/Re\) 缩放，物理上比直接用 \(Re\) 更自然。

### 4.3 统一方程前的数据标准化

跨 Re 拟合前，必须先把不同 case 归一到同一坐标和时间标度，否则统一方程很容易被周期差和幅值差破坏。

建议统一做三步：

1. **统一低维坐标**
   - 所有 Re 的 vortex-street stealth case 用同一个公共 POD / OID / PCD 基底
   - 这样所有 case 的 \(z_k\) 都在同一个坐标系里

2. **统一时间标度**
   - 用目标涡街的主频 \(f_{tar}\) 或脱涡周期 \(T_{tar}\) 归一化时间
   - 或者把每个周期重采样到相同点数，例如每周期 16 点

3. **统一幅值标度**
   - sensor、force、\(z\) 坐标都做标准化
   - 推荐按各自 target case 的 RMS 做归一化，而不是按全局最大值

### 4.4 统一方程的候选形式

最稳的做法不是让每个 Re 拟合完全独立的式子，而是先固定一个共享特征库，再联合稀疏识别。

建议候选特征库先只包含低阶项：

\[
\Theta(t)=\Big[
1,\mu,
z_1,\ldots,z_m,
y_{F,1},\ldots,y_{F,p},
z_1^2,\ldots,z_m^2,
\mu z_1,\ldots,\mu z_m,
z_i z_j
\Big]
\]

若考虑时延，则加入少量延迟项：

\[
z_k(t-\tau),\qquad y_{F,j}(t-\tau)
\]

统一控制律写成

\[
\Omega_i(t)=\beta_i^{\top}\Theta(t)
\]

更具体一点，可写成

\[
\Omega_i(t)=c_{i0}+c_{i\mu}\mu+\sum_{k=1}^{m}(c_{ik}+d_{ik}\mu)z_k(t)
+\sum_{j=1}^{p} b_{ij} y_{F,j}(t)
+\sum_{k\le l} q_{ikl} z_k(t)z_l(t)
\]

这意味着：

- 所有 Re 共用同一组 active terms
- 黏性影响主要通过 \(\mu\) 和 \(\mu z_k\) 来调节系数

### 4.5 联合拟合方式

把所有 Re case 的样本按行堆叠成一个大矩阵：

\[
\Omega_i^{all}=\Theta^{all}\beta_i
\]

然后做联合稀疏回归。推荐顺序：

1. 先普通 LASSO / sequential threshold least squares
2. 再做 group sparsity，让三个圆柱或多个 Re 共用项结构
3. 最后再尝试符号回归做更漂亮的闭式表达式

实际目标不是一开始求最美公式，而是先验证：

- 是否存在共享支持集
- 是否只需一个 \(\mu\) 就能把多个 Re 串起来

### 4.6 必须做的验证

统一方程最关键的是验证“真内插”而不是只在训练点硬记住。必须至少做两类测试。

#### A. leave-one-Re-out

例如用三个 Re 训练，留一个 Re 测试，看统一方程是否还能保持合理误差。

#### B. pairwise interpolation

例如只用低 Re 和高 Re 训练，测试中间 Re。若中间 Re 也能拟合，说明 \(\mu\) 的连续插值是有意义的。

### 4.7 成功与失败的判据

统一方程成功，不等于误差最低，而是满足：

- active term 数量明显少于逐 case 单独拟合后项数总和
- leave-one-Re-out 误差没有灾难性变差
- 主要 active terms 在不同 Re 下仍是同一批
- 系数随 \(\mu\) 的变化平滑、可解释

如果做不到，则不要强行保留“一个总公式”的说法，而应退一步写成：

- **统一骨架 + Re 依赖系数**

或者：

- **低 Re 与高 Re 两个分段方程**

### 4.8 推荐的统一拟合版本顺序

1. 先做单 case 的 `obs -> act`
2. 再做单 case 的 `z -> act`
3. 再做多 Re 的 `z, y_F, \mu -> act`
4. 最后再尝试 raw `obs, \mu -> act`

如果 `z, y_F, \mu -> act` 比 raw `obs, \mu -> act` 更简单、更稳，就能非常有力地说明：

- 不同 Re 的控制不是完全不同的策略
- 而是在同一低维结构反馈骨架上，受黏性参数 \(\mu\) 调制

### 判据

| 判据 | 说明 |
|---|---|
| 拟合误差 | `RMSE`, `MAE`, `R^2` |
| 稀疏度 | 非零项数 |
| 稳定性 | 不同 case 或不同时间窗是否保结构 |
| 内插性 | leave-one-Re-out 是否成立 |
| 物理性 | 是否能对应少数结构态 |

如果出现 `obs -> act` 复杂、但 `obs -> z -> act` 简单的情况，这会是很强的物理论据 [Loi17, Bru16, Li22b]。

## 任务 5

## 能量分析的三层实现

### 5.1 第一层

最小功率 bookkeeping

这是必须完成的最低层。

输出：

- 每个圆柱 \(P_{c,i}(t)\)
- 总功率 \(P_c(t)\)
- 平均功率、RMS、谱
- 功率与 DTW 改善的关系

建议再加两个效率指标：

\[
\eta_{DTW} = \frac{\Delta \mathrm{Sim}}{\overline{P_c}+\epsilon}
\]

\[
\eta_{force} = \frac{\Delta F_{rms}}{\overline{P_c}+\epsilon}
\]

其中 \(\epsilon\) 为防止分母为零的小量。

### 5.2 第二层

mean–fluctuation 动能

定义平均动能

\[
K_m = \int_{\Omega} \frac{1}{2}(\bar u^2+\bar v^2)\,d\Omega
\]

定义脉动动能

\[
K_f = \int_{\Omega} \frac{1}{2}\overline{u'^2+v'^2}\,d\Omega
\]

若数据质量允许，定义黏性耗散近似

\[
\varepsilon_f \approx \nu \int_{\Omega} \overline{\nabla \mathbf u' : \nabla \mathbf u'}\,d\Omega
\]

\[
\varepsilon_m \approx \nu \int_{\Omega} \nabla \bar{\mathbf u} : \nabla \bar{\mathbf u}\,d\Omega
\]

这层的关键判断是：

- stealth 是否主要降低 \(K_f\)
- illusion 是否在不显著降低 \(K_f\) 的情况下重组结构
- disturbed inflow 是否主要增加 \(\varepsilon_f\) 或功率波动

### 5.3 第三层

coherent transfer 与频带耦合

这一层是可选增强。建议先做轻量版，再决定是否上 BMD [Sch20]。

轻量版顺序：

1. 传感器和主模态系数 FFT
2. 探针信号 bispectrum
3. 主频、二倍频、均值分量之间的相干与相位

若这些结果明确显示二次耦合，再考虑 full BMD。对当前数据，直接上 BMD 不是第一优先级。

## 任务 6

## 回流区与通量分析

受控 wake 很多时候可以通过回流区通量平衡来解释，而不仅是“能量变小了” [Kha24c]。

### 6.1 回流区边界

用均值流的 \(\bar u=0\) 等值线作为 recirculation region interface。

### 6.2 通量量

对边界曲线 \(\Gamma_r\) 上的单位法向量 \(\mathbf n\)，定义法向通量

\[
\Phi_r = \int_{\Gamma_r} \bar{\mathbf u}\cdot \mathbf n\, ds
\]

在数值上，对外流与内流分别积分：

\[
\Phi^{+} = \int_{\Gamma_r} \max(\bar{\mathbf u}\cdot\mathbf n,0)\, ds
\]

\[
\Phi^{-} = \int_{\Gamma_r} \min(\bar{\mathbf u}\cdot\mathbf n,0)\, ds
\]

同时可在上下 shear layer 位置定义辅助界面，统计各自通量。目标不是做 3D bluff-body 那样完整的体积分，而是先比较：

- stealth 是否让上下通量更平衡
- illusion 是否让回流区形态和通量分布向 target 靠拢
- 某些控制是否通过延后 shear-layer roll-up 改变 bubble 长度

## 任务 7

## circular body-force probing

局部体力 probing 的目标不是替代 pinball 旋转，而是做 **结构敏感性和因果诊断**。已有圆柱尾迹的灵敏度、adjoint、wavemaker 和 localized resolvent 结果表明：局部 forcing 的空间位置、方向和频率本身就能提供很强的结构信息 [Gia07, Mar08b, Jin19b, Jin21, Ske22]。

### 7.1 圆形 forcing 的统一定义

对第 \(m\) 个圆形区域，中心为 \((x_m,y_m)\)，半径为 \(R_m\)。定义空间窗函数

\[
\phi_m(x,y)=
\begin{cases}
\frac{1}{2}\left[1+\cos\left(\pi r_m/R_m\right)\right], & r_m \le R_m \\
0, & r_m > R_m
\end{cases}
\]

其中 \(r_m = \sqrt{(x-x_m)^2+(y-y_m)^2}\)。

则局部体力写为

\[
\mathbf f_p(x,y,t)=A\,\phi_m(x,y)\,g(t)\,\mathbf e_d
\]

其中 \(\mathbf e_d\in\{\mathbf e_x,\mathbf e_y\}\)。

### 7.2 第一轮 probing 类型

只做两类：

1. 脉冲 forcing

\[
g(t)=\mathbb{1}_{[t_0,t_0+\Delta T]}(t)
\]

2. 单频谐波 forcing

\[
g(t)=\sin(2\pi f t)
\]

第一轮频率只扫：

- 主脱涡频率 \(f_s\)
- 目标频率 \(f_{tar}\)
- \(2f_s\)
- \(2f_{tar}\)

### 7.3 候选圆区

第一轮不做全场遍历，先选最有物理意义的 5 类区域：

| 区域 | 位置建议 | 目的 |
|---|---|---|
| 前圆柱后缘近尾迹 | front cylinder 后方 | 看主剪切层起始敏感性 |
| 两后圆柱之间 | pinball 中央空隙 | 看 central jet / 对称性通道 |
| 上剪切层起始处 | 上后圆柱外侧 | 看反对称结构 |
| 下剪切层起始处 | 下后圆柱外侧 | 看反对称结构 |
| pinball 后方主尾迹核心 | 三圆柱后方短距离 | 看回流区与大尺度 roll-up |

### 7.4 probing 输出

每次 probing 必须输出：

| 输出 | 指标 |
|---|---|
| 传感器响应 | \(\max_t \lVert \Delta s(t) \rVert\)、窗口化 DTW 变化 |
| 受力响应 | 总 lift、drag、各圆柱 torque 峰值变化 |
| 结构态响应 | 主 POD/OID 系数峰值与恢复时间 |
| 做功 | \(P_f(t)=\int_{\Omega} \mathbf u\cdot\mathbf f_p\,d\Omega\) |
| 频域响应 | 传感器与主模态的谱峰变化 |

定义累计 forcing 做功

\[
W_f = \int_{t_0}^{t_1} P_f(t)\,dt
\]

再定义响应效率

\[
\eta_s = \frac{\max_t \lVert \Delta s(t) \rVert}{W_f+\epsilon}
\]

\[
\eta_z = \frac{\max_t \lvert \Delta z_k(t) \rvert}{W_f+\epsilon}
\]

最终产出应包括：

- 区域–方向 敏感性热图
- 区域–频率 响应图
- 若干代表区域的时序响应图

## 任务 8

## 图组与最终交付物

建议按下面顺序生成标准图，先做低风险主图，再做增强图。

| 顺序 | 图 | 内容 |
|---|---|---|
| 1 | mean + RMS 图 | uncontrolled / stealth / illusion / target 对比 |
| 2 | 回流区图 | \(\bar u=0\) 边界、长度、面积、对称性 |
| 3 | force / torque / power 图 | 三圆柱局部分工与总功率 |
| 4 | POD 图 | 公共基底、模态能量、系数相图 |
| 5 | observable-related 图 | OID/PCD 模态和 \(z(t)\) |
| 6 | 白箱链图 | `obs -> act` vs `obs -> z -> act` |
| 7 | probing 热图 | 区域–方向–频率 敏感性 |
| 8 | 频带耦合图 | FFT / bispectrum / 必要时 BMD |

## coder 的执行顺序

最稳妥的实现顺序如下。

1. 做统一数据读取与同步校验
2. 生成 mean、RMS、vorticity、force、power 的基础结果
3. 提取回流区边界与几何统计
4. 做公共 POD 和主系数关联图
5. 构造 observable，做 OID/PCD 或相关替代方案
6. 先补做三场分解：`q_in`, `q_blk`, `q_ctl`，并明确 `Δq_blk` 与 `Δq_ctl`
7. 在 correction field 上检查 cloak 是否呈现 wake cancellation、illusion 是否呈现 target-oriented correction
8. 比较 `obs -> act` 与 `obs -> z -> act`
9. 实现最小版能量分析：\(P_c\)、\(K_m\)、\(K_f\)、必要时 \(\varepsilon_f\)
10. 实现圆形体力 probing 的脉冲与谐波扫描
11. 最后视结果决定是否进入 bispectrum / BMD

## 直接判断成功与否的标准

如果后处理结果支持以下判断，则整套方案算成功：

- stealth 主要通过压低与传感器误差最相关的结构并重构均值尾迹实现 [Sch12, Lyu23, Tad10]
- illusion 不是简单降能，而是保留或重组目标相关结构与频带 [Jin20, Sch20]
- 三圆柱在力、力矩和功率上存在可识别分工 [Ber06, Den20]
- 控制对白箱化后，简单律主要作用于少数低维结构态，而不是直接依赖全场 [Loi17, Bru16, Li22b]
- 若三场分解成立，则控制主要体现为对 pinball-scale correction field 的低维调制，而不是简单的单一力学量跟踪
- body-force probing 能识别出少数高敏感区域，并与真实控制下的主要结构变化相呼应 [Gia07, Mar08b, Jin21]
- force 最好被解释为 body-connected near-wake organization 的低维投影，而不是与涡量竞争的另一套机制 [Kan17b, Geh23, Sch12]
- force-relevant structures 与 signature-relevant structures 若被区分出来，应视为加强主线的结果，而不是分析失败 [Sch12, Lyu23]

这套任务书的重点不是让所有高阶分析都必须成功，而是保证第一轮就能产出一组稳的、可解释的、能直接服务论文主线的结果。