简介:面向机械工程、航空航天及船舶推进方向学习者的螺旋桨流体仿真资料包,围绕 SolidWorks Flow Simulation 的 CFD 分析流程,帮助理解螺旋桨推力、扭矩、阻力等性能指标的模拟与优化。压缩包共105个文件、约92.06MB,包含4个sldprt零件模型与1个sldasm装配模型,以及fld流场结果、res/plot结果图表、txt说明、log运行日志和html报告等,覆盖几何模型、网格计算与结果查看环节,便于对照仿真设置与输出数据。已有766人学习,适合具备SolidWorks基础、希望补齐流体仿真实操经验的学生和工程师。资料可用于复盘螺旋桨叶片形状、角度与排列对性能的影响,借助流线图、速度与压力分布结果理解计算工况,并参考日志和报告梳理建模、边界条件设置及结果判读思路,减少从建模到分析之间的摸索成本。
1. 螺旋桨流体仿真:为什么把求解器留在 SolidWorks 里
接手这类题目的人,第一反应多半是找一款通用 CFD 软件,把螺旋桨模型导进去,划网格、设边界、等结果。真跑起来才发现,光是那个扭曲叶面导出成能用的几何,就够耗掉两周,改一次弦长分布还得从头再来一遍。这套螺旋桨流体仿真方案反过来走:几何留在 SolidWorks 里,用 Flow Simulation 插件做内嵌求解,改一个参数直接重建、直接算,中间不落地任何中间格式。方案围绕一台直径 240 mm、三叶、螺距比 1.0 的模型桨展开,从叶素参数一路走到敞水性能的推力、扭矩、效率,适合做流体仿真方向毕设和课程设计的人照搬结构,也适合手里已有桨型、想快速横评几套改型的设计人员拿去改。
2. 螺旋桨几何建模:把叶素参数变成一条能算的放样曲面
螺旋桨仿真的成败,七成在几何。叶片是一个连续扭转、弦长渐缩、还带后掠的空间曲面,SolidWorks 里做这种面只有放样一条路走得通,但放样的成败全看截面怎么摆。很多人栽在这一步:截面画得挺像,放样出来叶片根部扭曲、叶尖收不尖,导进求解器直接报零厚度实体。这一章把从工况反推参数、到截面摆放顺序、再到参数化驱动整条链路拆开讲。
2.1 设计输入:先定工况,再反推几何
不要一上来就画叶子。先定四个量:介质、直径 D、转速 n、进速 V。这四个量决定了前进比 J = V/(nD),而 J 决定了叶片各半径处的来流角,来流角再决定安装角。这套顺序反过来做,画出来的桨看着漂亮,一算效率只有 0.2,回头找原因能耗掉一整周。
以本方案为例:介质取水,D = 240 mm,n = 1200 r/min,V = 2.4 m/s,则 J = 2.4/(20×0.24) = 0.5,落在常用高效区。螺距比取 P/D = 1.0,螺距 P = 240 mm。各半径处的螺距角按 β(r) = arctan(P/(2πr)) 计算,实际安装角再减去设计攻角 α(本项目取 4°),这样叶根安装角大、叶尖小,与真实桨的扭转趋势一致。
弦长分布没有解析公式,通常的做法是给定根部和尖部的弦长,中间按椭圆或贝塞尔规律过渡。本方案 0.2R 处弦长 46 mm,0.7R 处 38 mm,0.98R 处收缩到 12 mm。翼型从 0.2R 的 18% 相对厚度渐变到 0.9R 的 9%,根厚尖薄,兼顾结构与空化性能。
| 参数 | 取值 | 说明 |
|---|---|---|
| 直径 D | 240 mm | 决定计算域尺寸与雷诺数 |
| 叶数 Z | 3 | 圆周阵列数量 |
| 螺距比 P/D | 1.0 | 决定各半径安装角 |
| 毂径比 d/D | 0.18 | 轮毂直径 43.2 mm |
| 截面数 | 11 | 0.2R 到 0.99R,端部加密 |
| 设计攻角 | 4° | 安装角 = 螺距角 − 攻角 |
2.2 截面放样:顺序错了,后面全是返工
放样最容易翻车的地方不是草图本身,而是截面之间的对应关系。正确的顺序是:先建一个过轴心的基准轴,再沿轴向(也就是桨轴方向)为每个半径位置建一个偏置基准面,共 11 个;在每个基准面上画一条径向构造线,构造线与旋转平面的夹角就是该半径处的安装角;翼型草图以这条构造线为基准摆放,前缘朝旋转方向。
这样做的原因是放样需要引导线串起前缘和后缘。把每个截面的前缘点、后缘点分别用样条连成两条引导线,放样时选「引导线」,曲面才不会在中段塌陷。如果只靠截面放样不选引导线,SolidWorks 会按质心自动匹配,扭转剧烈的根部截面就会错位,出来一个麻花状的破面。
单个叶片放样成功后做圆周阵列,数量引用叶数变量。叶根与轮毂做布尔合并之前,先量一下根部截面是否完整落在轮毂柱面内,留 2 mm 以上的嵌入量,避免出现相切面——相切面在网格生成阶段是零厚度实体的高发区。
提示:叶尖最后一个截面不要取在 1.0R,取 0.99R 并把弦长收到 10 mm 左右。直接画到 1.0R 会让叶片端面变成一个点或一条线,放样几乎必然失败。
2.3 参数化驱动:把改型变成改数字
毕设答辩最常被问的一句是「如果把螺距加大 10% 会怎样」。如果模型不是参数化的,这一问就得重画。做法是把直径、螺距、叶数、毂径比、根部弦长这五个量提升为全局变量,所有草图尺寸用方程式引用它们,宏只负责改数值加重建。
' 螺旋桨参数化重建宏:改完顶层变量后一键重建 ' 用法:SolidWorks 中打开桨模型 → 工具 → 宏 → 运行 Dim swApp As Object Dim swModel As Object Dim swEqMgr As Object Dim vBodies As Variant Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc If swModel Is Nothing Then MsgBox "先打开螺旋桨模型再运行" Exit Sub End If Set swEqMgr = swModel.GetEquationMgr ' 按顺序写入全局变量,单位统一 mm / 无量纲 swEqMgr.SetEquation 0, """D"" = 240" ' 直径 swEqMgr.SetEquation 1, """P"" = 240" ' 螺距,改这里等于改螺距比 swEqMgr.SetEquation 2, """Z"" = 3" ' 叶数,圆周阵列数量引用它 swEqMgr.SetEquation 3, """dR"" = 0.18" ' 毂径比 swEqMgr.SetEquation 4, """Croot"" = 46" ' 根部弦长 swModel.EditRebuild3 ' 强制完全重建,不走轻化 ' 放样失败时实体数会掉,用这个做快速体检 vBodies = swModel.GetBodies2(0, True) Debug.Print "实体数:" & (UBound(vBodies) + 1) End Sub这段宏的价值在于「体检」那两行。放样一旦在某条引导线上断开,SolidWorks 不报错,只是静默地少生成一个实体,肉眼在着色模式下看不出来。实体数正常应该是 1(叶片已与轮毂合并),如果打印出 4,说明三片叶子没合并进轮毂,回去查叶根嵌入量。
改完参数一定要走EditRebuild3而不是普通重建,轻化模式下方程式不会驱动草图。宏跑完再手动量一次叶尖直径,值与 D 对不上说明某个草图的尺寸还是硬编码的。
2.4 进求解器之前的模型自检
模型交给 Flow Simulation 之前有四件事必须做,这四条是踩坑踩出来的,缺一条后面都要返工。
第一,查对称性。打开质量属性,惯性积 Ixy、Izx 应该接近 0,三个叶片的质心应该落在轴线上。数值偏大说明某片叶子阵列角度不均。
第二,查单位。SolidWorks 默认 mm,Flow Simulation 向导里会单独问一次长度单位,很多人在这里选了 m 而模型是 240,结果整台桨缩小一千倍,算出来的推力小得离谱还以为是物理模型选错了。
第三,查最小厚度。用「检查」工具看实体有效性,再用测量工具量叶尖最薄处。叶尖厚度如果小于 0.5 mm,浸没边界法在网格里分辨不出来,会直接把叶尖抹掉,推力少 5% 以上。
第四,轮毂两端要封口,不要留开口圆柱。开口实体在求解时会被当成内部通道,水会从轴孔里穿过去,速度云图上就是一道贯穿的射流。
3. 计算域与网格:旋转域切多大、网格细在哪
Flow Simulation 用的是笛卡尔浸没边界网格,不需要画贴体网格,这让很多人误以为网格可以随便糊弄。恰恰相反,正因为网格是自动生成的,所有控制权都在「域怎么划、局部加密怎么设」这两个动作上。域划小了结果被边界截断,局部加密设错位置网格几百万也没意义。
3.1 双域划分:旋转域和静止域的尺寸取法
螺旋桨必须放在两个域里:包住叶片和轮毂的旋转域,以及包住旋转域的外流场。旋转域做成一个圆柱,直径取 1.15D,轴向长度取 1.4D,前后各留 0.2D,保证叶片旋转扫描出来的包络面完全在内且有余量。余量太小,叶尖会周期性穿出旋转域边界,交界面上的插值会直接把尾迹切掉。
外流场是个长方体:上游 4D,下游 9D,径向各 5D。下游为什么给到 9D,是因为螺旋桨的尾流要收缩加速、然后再缓慢恢复压力,出口放在 5D 以内时压力面会反射回叶片,推力会随迭代缓慢下降,看着像不收敛,实际是边界太近。径向 5D 是为了让叶尖涡有空间耗散,太窄会形成虚假的壁面阻塞。
| 域 | 尺寸 | 取法依据 |
|---|---|---|
| 旋转域直径 | 1.15D | 覆盖叶尖扫描包络,留 0.15D 余量 |
| 旋转域长度 | 1.4D | 前后各 0.2D |
| 上游长度 | 4D | 来流均匀段 |
| 下游长度 | 9D | 尾流恢复段,低于 6D 会截断压力 |
| 径向半宽 | 5D | 叶尖涡耗散空间 |
两个域在几何上是两个独立实体,必须保证它们在轴向有至少 1 个网格单元的重叠。完全不接触会导致 Flow Simulation 找不到交界面,求解直接报「流体区域不连通」。重叠太多又会浪费网格,1~2 个单元刚好。
3.2 旋转区域怎么设:参考系、转速和交界面
在 Flow Simulation 的「旋转区域」里选中旋转域那个实体,轴定义为桨轴,角速度填 125.66 rad/s(对应 1200 r/min)。这个数值不能拍脑袋,ω = 2πn/60,n 用 r/min。填 1200 进去,叶尖线速度会到 150 m/s,水在这种情况下早已空化,算出来的推力反而更大,很多人还以为是网格问题。
稳态计算用的是旋转参考系,叶片在网格里是静止的,旋转效应通过离心力和科氏力项加进去,本质上是冻结转子近似。它算得快,对敞水性能这种整体量足够准,但拿不到叶片尾迹的真实脱落结构。要看尾迹和毂涡,得切到瞬态滑移网格,代价是时间步要小到叶片转过 1~2 个网格,通常要跑 5~10 个旋转周期,机时翻十几倍。毕设阶段建议先稳态出性能曲线,再挑一个工况点做瞬态出流场图。
交界面由求解器自动识别,前提是两个域的实体在几何上确实有重叠体积。判断方法:在 Flow Simulation 的「流体子域」列表里能看到两个流体域,且都能单独指定旋转属性。
3.3 局部网格:控制平面比全局加密划算
叶片表面是曲率变化最剧烈的地方,叶尖和叶根两个区域的网格需求又完全不同。全局加密是最贵的做法,网格从 90 万涨到 400 万,推力可能只变 1.5%。真正有效的做法是两层控制。
第一层是固体壁面处的局部初始网格。在「初始网格」对话框里对叶片和轮毂单独设最小单元尺寸 1.5 mm,勾选「细化薄壁面」。这样叶片厚度方向能有 3~4 个单元,浸没边界法才能正确识别壁面位置。薄壁面细化如果不开,叶片会被当成无限薄的面片,摩擦阻力完全丢失,效率会虚高 5~8 个百分点。
第二层是控制平面。在旋转域外面套一个直径 1.6D 的圆柱形控制平面,单元尺寸设 4 mm,包住叶尖涡刚形成的区域;再在下游 3D 到 7D 之间放一个长方体控制平面,单元 8 mm,用来捕捉尾流的整体收缩。这两块面积不大,但网格总量只增加 30%,尾流结构却能清楚一个档次。
远场就让它自动,20~40 mm 的单元足够了。远场加密除了浪费机时没有任何收益,那一片的物理量梯度本来就接近零。
3.4 网格无关性:三套网格怎么比、比什么
网格无关性不是「加网格看结果变不变」,而是要有明确的加密路径和判据。本方案的做法是保持几何和边界条件完全一致,只改最小单元尺寸和控制平面的单元尺寸,生成三套网格。
| 方案 | 网格数 | 推力 T (N) | 扭矩 Q (N·m) | 相对上一档偏差 |
|---|---|---|---|---|
| 粗 | 46 万 | 251.3 | 12.06 | — |
| 中 | 92 万 | 264.8 | 12.71 | 推力 5.1%,扭矩 5.1% |
| 细 | 181 万 | 268.2 | 12.89 | 推力 1.3%,扭矩 1.4% |
判据是相邻两档的推力差小于 2%、扭矩差小于 3%,取细网格作为最终方案。这里有个细节:三套网格必须是真正重新生成,而不是在结果里调「结果分辨率」。后者只是插值显示,物理场没变,拿来证明无关性是自欺欺人——答辩时被问到网格数怎么统计的,一句话就露馅。
4. 边界条件与求解设置:让残差和推力同时稳住
几何和网格定下来之后,剩下的工作看着简单,其实最容易出玄学问题:残差曲线漂漂亮亮降到 1e-5,推力还在慢慢往下掉;或者反一反,推力早早稳定,残差卡在 1e-3 不动。这一章把介质、边界、目标和收敛判据按顺序排一遍。
4.1 介质与物理模型:水和空气的差别不只是密度
Flow Simulation 的向导里第一步就是选流体。水取密度 998.2 kg/m³、动力粘度 0.001003 Pa·s,默认按不可压缩处理,这对本项目 2.4 m/s 的进速完全够用——马赫数极低,压缩性影响在千分之一量级。如果做的是空气螺旋桨,密度 1.2047 kg/m³、粘度 1.81e-5 Pa·s,转速通常上千到几千转每分钟,叶尖速度可能超过 0.3 马赫,这时必须开可压缩性,否则推力和扭矩都会系统性地偏高。
湍流模型选 k-ε 带标准壁面函数,这是 Flow Simulation 的默认选项,对螺旋桨这种外流分离不严重的场景够用。k-ω SST 在逆压梯度区域更准,特别是大攻角工况下叶根附近容易分离,这时候换 SST 推力会低 2~3%,更接近实验值。空化模型先不开,等看到叶片吸力面前缘出现明显负压(低于饱和蒸汽压 2.3 kPa)再考虑,开了空化收敛会难上一个量级。
入口的湍流参数按经验给:湍流强度 1%,湍流长度 0.001 m(大约是特征尺寸的 0.07 倍)。这两个值在敞水问题里影响很小,但如果填成默认的 5% 和高长度尺度,入口湍流会在叶片前缘提前转捩,摩擦阻力偏大。
4.2 边界条件表:每一项都要能说出理由
| 边界 | 类型 | 数值 | 理由 |
|---|---|---|---|
| 入口 | 速度入口 | 2.4 m/s,沿轴向 | 对应设计进速,给出 J=0.5 |
| 出口 | 压力出口 | 0 Pa 表压 | 环境压力,允许回流 |
| 外边界 | 理想壁面 | 滑移 | 减少阻塞效应,等效远场 |
| 叶片、轮毂 | 真实壁面 | 粗糙度 0 | 模型桨表面光滑 |
| 旋转域 | 旋转 | 125.66 rad/s | 绕桨轴,稳态参考系 |
外边界为什么用理想壁面而不是真实壁面:真实壁面会在计算域边界上生成边界层,等效于把螺旋桨放进一个风洞里,阻塞效应会让推力虚高。理想壁面无剪切,流体可以自由滑过,更接近无限水域。代价是丧失了一点点物理真实性,但在 5D 的径向距离下,这个误差远小于其他来源。
出口用压力出口并且允许回流很关键。螺旋桨工况下,如果下游边界离得不够远,尾流会在出口面上形成局部回流,压力出口能自然处理,速度出口会直接发散。
4.3 目标与收敛判据:残差不是唯一指标
求解前先在「目标」里加三项:叶片和轮毂表面的 X 向力(即推力)、绕桨轴的扭矩、以及叶片吸力面的平均压力。前两项是结果,第三项是过程监控——推力可能在两个错误之间互相抵消,平均压力不会。
收敛判据要三条同时满足:残差降到 1e-4 以下;推力、扭矩在最后 200 步内的极差小于均值的 2%;进出口质量流量差小于 0.5%。只满足第一条就收工,是这类仿真最常见的翻车方式。
import pandas as pd import numpy as np RHO = 998.2 # 水密度 kg/m3,20 摄氏度 D = 0.24 # 螺旋桨直径 m N = 1200 / 60.0 # 转速换算成 r/s V = 2.4 # 进速 m/s # goals.csv 由 Flow Simulation 导出:Iteration, Force_X, Torque_Z, Pressure_Avg df = pd.read_csv("goals.csv") tail = df.tail(200) # 取收敛段做时均,避开启动瞬态 T = tail["Force_X"].mean() Q = tail["Torque_Z"].mean() J = V / (N * D) # 前进比 Kt = T / (RHO * N**2 * D**4) # 推力系数 Kq = Q / (RHO * N**2 * D**5) # 扭矩系数 eta = J * Kt / (2 * np.pi * Kq) # 敞水效率 print(f"J={J:.3f} Kt={Kt:.4f} Kq={Kq:.5f} eta={eta*100:.1f}%") print(f"推力 {T:.1f} N 扭矩 {Q:.2f} N·m") # 收敛体检:极差占均值超过 5% 说明还没稳住,别急着出报告 for name, s in (("推力", tail["Force_X"]), ("扭矩", tail["Torque_Z"])): spread = (s.max() - s.min()) / abs(s.mean()) * 100 print(f"{name}末段波动 {spread:.1f}%")这段脚本做两件事:把原始的目标曲线换算成无量纲系数,以及做收敛体检。Kt、Kq、η 的公式必须写死,中途不要手改,因为 η 的系数是 2π 不是 π——扭矩是按弧度定义的,用转速算功率时忘了乘 2π,效率会正好差 6.28 倍,这种错误在答辩现场极其尴尬。
参数说明:tail(200)的窗口长度按迭代总数定,总迭代 500 步取最后 200 步,如果只跑了 150 步就取最后 50 步。RHO 用 998.2 而不是 1000,两者差 0.18%,在误差带内但填错会在和实验对比时说不清。
4.4 不收敛的三种波形与对应处理
周期振荡型:推力曲线呈稳定的正弦波动,振幅 3~8%,残差在 1e-4 附近来回。这不是不收敛,是叶片尾迹在稳态参考系下无法定常。处理方式有两个,取最后若干个周期的时均值,或者直接切瞬态。硬压松弛因子只会把振荡压成缓慢漂移。
缓慢漂移型:推力从第一分钟开始单调下降,一千步还没停。八成是出口太近导致压力反射,或者是旋转域与静止域重叠不足,交界面在漏质量。先查质量守恒曲线,流量差在涨就是后者。
发散型:残差几步之内冲到 1e0 然后 NaN。按顺序查三件事:入口和出口是不是都设成了速度边界(压力没约束,绝对会发散);介质密度是不是漏填(默认 0 会除零);旋转域的角速度方向是不是与叶片几何的旋向搞反了(反向旋转会得到负推力,绝对值还很大)。
5. 避坑与排查:五个让结果白算的点
这一章是血泪经验合集。下面五条的共同特点是:求解器不报错、残差很好看、结果也像个结果,但数值就是不对,事后追溯往往要重算。
5.1 旋转域把静止的轮毂和轴一起包了进去
现象:残差正常收敛,推力比叶素理论估算高 15~25%,叶片根部附近的速度云图上出现一圈异常的高速带,轮毂表面有明显的切向速度。
原因:旋转域圆柱的直径取大了或者轴向位置偏了,把本该静止的轮毂段和轴一起圈进去了。这些面跟着转,等于给流场额外注入了切向动量,相当于多了一个虚拟的旋转圆盘。
解决:把轮毂拆成两段实体,只有与叶片重叠的那一段划进旋转域,轴伸出段留在静止域。旋转域的端面位置控制在轮毂直径的 1.05 倍以内,宁可让交界面上有一点插值误差,也不要让静止件转起来。改完重新算,推力应该能掉回理论区间,这一步通常能修正 20% 的偏差。
5.2 转速单位:rpm 直接填进角速度
现象:推力大出十倍以上,叶尖附近出现超高速区,甚至是负压报警,有的算例直接提示叶尖线速度过高。
原因:1200 r/min 对应的角速度是 125.66 rad/s,不是 1200。差了 2π/60 也就是约 9.55 倍,推力按转速平方缩放,误差接近 91 倍。
解决:在模型里建一个全局变量omega = 2*pi*n/60,所有引用转速的地方都指向它,宏里也只改 n。更稳妥的做法是在报告里把 ω 的推导写出来一行,写的时候自己就会停顿一下。
5.3 出口边界离得太近,压力被截断
现象:推力随迭代单调下降,收敛后比网格无关性试验里的值低 8%,出口面上能看到明显的回流箭头,压力云图在出口处有一道不自然的等值线堆积。
原因:下游只给了 4D。螺旋桨的尾流在 6~8D 才基本恢复环境压力,出口设在这个位置相当于给流场加了一个人为的压力边界,叶片感受到的是「背压偏高」,推力自然被低估。
解决:下游拉到 9D,径向拉到 5D。网格总量会增加 20~30%,但这是必须付的成本。如果机时紧张,可以只在下游方向用梯形渐变网格,靠近出口的单元尺寸放大到远场的两倍,能省一半网格。
5.4 伪网格无关性:只在结果里调分辨率
现象:宣称做了三套网格验证,结果三条曲线几乎重合,误差不到 0.5%,看着特别理想。
原因:三套「网格」其实只改了后处理的结果分辨率,物理网格没变。真正的网格无关性必须重新生成网格,网格数要能在求解日志里查到,三套之间至少差 1.8 倍。
解决:改两个参数——固体壁面的最小单元尺寸、控制平面的单元尺寸,每次生成后记录实际网格数。如果两套网格数只差 5%,说明加密参数没有真正生效,很可能是被「最小缝隙尺寸」这个上限卡住了,需要同步调小它。
5.5 只看残差曲线,不看目标曲线
现象:残差降到 1e-5,报告里写着「收敛良好」,但推力在最后 300 步里从 268 N 漂到 261 N,还在往下走。
原因:残差是全场残差的均方根,尾流区那一片网格的局部残差被远场大量低梯度单元稀释了。远场收敛得快,尾流还在慢慢调整,全局残差看不出来。
解决:以目标曲线为准。判据写死成「最后 200 步推力极差小于 2%」,并且把这个判据和实际数值一起放进报告。答辩时老师翻到这一页,看到有量化判据,后面的问题会客气很多。
6. 后处理与答辩验收:把云图讲成一组能核对的数
结果出来之后,真正决定评价的不是云图好不好看,而是能不能用三五个数把整台桨的性能说圆。
必须出的三张图:叶片压力面与吸力面的压力云图(对比看压差分布是否合理,前缘应有明显吸力峰)、0.7R 处的切向速度矢量图(看尾迹是否连续、有没有异常分离)、以及 Kt、Kq、η 随 J 变化的三条曲线(至少算 4 个进速点)。
误差带这么写:网格无关性给出的推力不确定度约 ±1.5%,湍流模型带来的系统偏差按文献经验取 ±3%,几何简化(略去倒角、桨毂细节)取 ±2%,合成后总不确定度约 ±4%。把计算值 265 N 和叶素理论估算值 258 N 放在一起,偏差 2.7%,落在误差带内,这个结论就站得住。
| 验收项 | 合格线 | 本方案实测 |
|---|---|---|
| 网格无关性 | 相邻两档推力差 < 2% | 1.3% |
| 目标收敛 | 末段 200 步极差 < 2% | 1.1% |
| 质量守恒 | 进出口流量差 < 0.5% | 0.2% |
| 效率合理性 | 设计 J 下 η 在 0.35~0.55 | 0.40 |
答辩讲三分钟的顺序建议是:先说工况(D、n、V、J),再说模型怎么参数化(一句话带过宏),然后直接甩网格无关性表格,最后落到效率 0.40 和误差带 4%。中间不要主动讲湍流模型选了哪个,除非被问到——主动讲容易被追问细节,被问再答反而显得有底。
从那以后我每次交这类仿真报告,都强制走一遍「网格数、收敛极差、质量守恒」这三项自检,缺一项就不往下写结论。这套习惯救过我不止一次。希望帮到你。
本文还有配套的精品资源,点击获取