这是我的课题项目库。我的大方向是机器学习和主动流动控制。CelerisLab是我写的LBM CFD库，而DynamisLab是结合机器学习的库。之前我已经做了很多工作，针对pinball（三圆柱）旋转控制，在各种雷诺数下用DRL实现了stealth和illusion，以及erase的尝试。具体而言，我目前关注二维流动，pinball是三个等间距分布的圆柱，我通过测量圆柱水动力和下游流速传感器，设置不同reward，让DRL学习控制策略，实现对下游流场的控制。下游跟上游特征一致即为隐身，下游特征跟设计物体表现一致即为欺骗，抹除上游特征即为erase。我还尝试了DANTE-SINDy结合进行高效策略搜索。总之，我需要你先完整探索我的工作。第一步先阅读@docs/My_Confirmation/Chapters/2.ProblemDescription.tex @docs/My_Confirmation/Chapters/3.Methodology.tex @docs/My_Confirmation/Chapters/4.Result.tex 我的confirmation报告，先有一个大致的了解。然后大概看一下@LegacyCelerisLab/driver.py 这个旧CFD，以及drl_pinball文件夹内的旧脚本和部分重构的新脚本@src/drl_pinball/knowledge.md ，注意所有旧脚本CFD和相关配置的导入都变动了，因为现在在全新的工作库内 @src/understanding_notes.md 。着重理解每个脚本的头注释以及相关代码，每个case差异不大，所以你理解透彻其实工作量不大。然后我补充一些之前提供给agent的信息：要注意erase是没有完全实现的部分，然后入口流虽然说是均匀，但不是uniform，而是parabolic，因为你看legacy config，我当时只能实现no-slip wall，所以入口也都是抛物线。然后网格数别算错了，旧版U单位不是L0，而是cuda config里写的，是为了对齐SM数。SAMPLE_INTERVAL也不只这个范围，具体要根据模型名，其他情况对应脚本内的步数。Re=50注意是不是按照pinball单个圆柱直径算的？其实这个我叫做Re_D，但其他所有写Re的时候是按照两倍直径算的。所以其实默认场景下应该是Re100。然后还有一个关键信息，我所有环境应该都有一个算norm的过程，也就是采集obs的最大波动，这是为了传递给DRL时尽量数值分布均匀。这不是一个好设计但是你要注意我之前都是这么做的，使用模型的时候也需要这个数据。然后pinball的位置不一定（主要是为了在训练时利用好计算域，现在我们主要做推理和分析，其实你可以考虑固定pinball位置），但是pinball到扰流圆柱和sensor之间的距离基本不变，除了illusion情况下，为了贴近目标圆柱的等效距离，与sensor之间的距离有微调。Dummy确实是仅用于匹配的，不过要小心norm不一定是零动作，有可能是带偏置的匀速，每个系列都不一样要注意。自行搜索调研，理解我的工作。然后简单说一下你的想法

我想跟你再描述一遍：两个方向cloak和illusion。cloak主要针对两个场景，steady和Karman，也就是pinball上游是均匀还是涡街。两个场景下pinball不控制的话，均匀来流时pinball会产生涡街，涡街来流时pinball下游会比较乱没有明显周期性。cloak控制下，均匀来流时pinball上下两个圆柱定速旋转，下游保持均匀稳定，涡街来流时三个圆柱周期性改变转速，下游维持涡街频率和形状。illusion下，不控制跟刚才描述一致，产生涡街，控制下，三个圆柱周期性变速，产生与不控制不同频率的涡街，对应目标特定直径圆柱产生的涡街。
首先我需要你熟悉新CFD库@CelerisLab/README.md ，尤其是test里的一些测试，熟悉使用方法。然后看一下reproduce的内容@src/drl_pinball/reproduce/REPRODUCE_KNOWLEDGE.md 。以及上一轮尝试在本地迁移训练，找合适配置的过程： @src/drl_pinball/train/TRAIN_KNOWLEDGE.md 。
我再跟你讲一下之前legacy训练的经验。
1. 最重要的是DRL引入Sin激活函数。由于可以预计结果是周期性的，所以在网络中引入能大幅增强。
2. 第二重要的是训练过程中不reset，只要不崩溃就尽可能不reset环境，让DRL持续尝试控制。
3. reward的设计和组成，主要有瞬时的合力为零，辅助的相似度最高，然后为了让训练过程中不同阶段敏感性不同，采用了一些缩放。
4. 然后是obs-act的偏置和缩放，为了让数值尽可能利用好范围。同时act的偏置是经验性的，贡献很大。但我很怀疑这个做法的优势，因为之前采样得到norm导致复现困难，尤其是实验环境中不可能得到相同norm。
5. 训练超参数好像也有点用，但是我不知道为什么有帮助。
现在我要你关注新train阶段，主要问题是之前agent工作质量非常差，我认为主要问题在于reward设计，我希望三个组成部分。Cd Cl DTW在三个阶段 不旋转、偏置旋转、最优控制下，都大致能给出0.2、0.5、0.9的表现。上一轮这个目标一直做不好，然后就开始训练并且没什么效果（因为偏置本身就能有不错的效果，DRL只要幅度不大效果也不会差多少）。DTW本身我希望是通用的，也就是cloak和illusion都用同一个DTW算法，这样相似度才有价值。但是你可以缩放、映射成符合我需求的reward表现。还有是你要检查DRL看到的obs是否合适，也就是norm做的怎么样，我还有疑问如果SB3内部能做norm，我env做norm合适吗。以及其他很多细节，甚至我有个想法，既然很明显这个问题是上下对称的，看SR分析时强制用的G变换。有没有可能在DRL也引入这个机制引导让上下控制率一样。比如来回交换上下的obs-act给DRL，让他更容易学到对称的解。最后才是超参数配置，我其实不熟悉机器学习，很需要你的帮助。你现在对我的目的清楚了吗，再跟我讨论一下你的想法吧