首页 / 资讯中心 / 文章详情

机器学习驱动超材料设计:从代理模型到逆向工程落地

机器学习驱动超材料设计:从代理模型到逆向工程落地 ★ FEATURED ARTICLE
简介一份聚焦机器学习与超材料交叉研究的文档式资源针对传统超材料设计与优化中效率低、成本高、耗时长的问题系统梳理了利用机器学习进行性能表征与逆向设计的方法。内容面向材料、物理、AI方向学习者和研究者覆盖超材料基本理论、SVM/ANN/随机森林等算法在结构表征与性能预测中的应用以及特征工程、降维、模型构建与交叉验证同时给出逆向设计的基本流程、优化算法、案例分析和实验部分的数据处理与误差分析。全文按研究背景、超材料理论、机器学习表征、性能表征研究、逆向设计、实验与讨论、结论与展望等章节组织目录清晰。资源包为单个docx文档约59KB目前已有75人学习适合快速建立超材料智能化设计知识框架也可作为课程报告或项目预研的综述参考助读者掌握从数据准备到结构优化迭代的完整思路。1. 机器学习在超材料设计里的分工不替仿真而是把“逐例仿真”换成“先学后搜”做超材料的人对这句话应该都有感触设计一个开口谐振环单元改一次缝宽跑一次全波仿真二十分钟过去扫出来的谐振频率还差一截再改再跑。机器学习介入超材料性能表征与逆向设计本质上是把“逐例仿真试错”换成“先学后搜”——先用一批仿真样本训练代理模型让它学会几何参数到电磁响应之间的映射再用这个秒级出结果的模型去做逆向搜索直接给出一组满足目标响应的结构参数。性能表征对应前一步的正向代理逆向设计对应后一步的反向求解。这套方案的适用面很广电磁超表面、声学超材料甚至力学超材料都能用本文以电磁超表面为例展开。适合谁读手头有仿真数据、想让设计过程不再靠手感的研究生和工程师以及想找真实工程落点的机器学习初学者。先说结论这个方向模型并不难难在数据和目标函数读过中间几章你就知道坑在哪。2. 性能表征数据集的构建几何参数化、批量仿真与标签加工2.1 先把几何变成输入向量开口环单元的参数化与设计空间机器学习应用流程的第一步从来不是选模型而是把物理对象变成向量。以最常见的开口谐振环SRR单元为例一个单元由外边长 L、线宽 w、缝隙 g 和介质基板介电常数 er 决定如果要设计双层结构还要加上两层之间的间距 d。这一组参数就是输入向量 [L, w, g, er]性能表征模型的任务就是从这组向量预测电磁响应。设计空间的上下界在采样前就要定死而且必须来自工艺和物理约束不能随便拍脑袋。激光加工具备 0.1 mm 的线宽下限光刻工艺能做到 0.02 mm3D 打印介质基板的介电常数误差在 ±0.3 左右。这些边界直接决定了训练数据覆盖的范围——模型在边界外的预测基本是外推没有任何物理保证。我一般会把每个参数的范围缩到工艺稳定区的 80%宁可牺牲设计空间也要保证后续逆向设计出来的结构能真加工出来。放在整个机器学习应用流程里看这一步最容易被低估。很多人拿着现成的超材料单元拓扑就直接开始抽参仿真等模型训完了才发现某些参数组合下谐振响应突变严重训练集根本采到那个区域代理模型在那里完全失真。所以参数化不只是写几个变量还要顺带做一次预扫描在每个参数边界处跑几次仿真确认响应变化是连续的。遇到响应跳变剧烈的参数区间要么加密采样要么直接压缩该参数的边界。2.2 批量仿真生成样本抽样策略、样本量与仿真时间预算数据从仿真软件里来。常见做法是用 CST 或 COMSOL 做参数化扫描开源方案可以用 MEEP 这类 FDTD 求解器把单元结构脚本化批量生成不同几何参数的模型并计算 S 参数。抽样策略上随机网格抽样会产生严重的聚类问题——相邻参数组合的仿真结果高度相似信息密度低拉丁超立方抽样LHS能把样本均匀地铺满整个设计空间同样的样本量下对响应面的覆盖好得多。抽样方式优点缺点均匀网格扫描覆盖整齐、便于后处理维度灾难4 个参数每维 10 个点就是 1 万例纯随机抽样实现简单容易堆积成团稀疏区域全靠运气拉丁超立方LHS每个参数维度均匀分层样本代表性好实现稍费事需要scipy.stats.qmc或手写分层自适应采样SMT/主动学习在响应变化剧烈的区域自动加点需要迭代管理仿真任务流程复杂样本量上5 到 8 个几何参数的项目500 到 2000 例仿真数据能支撑起一个能用的代理模型起步。少于 300 例时无论什么模型都很难抓住非线性响应面超过 3000 例后边际收益明显下降除非你的参数空间特别大。每例频扫仿真按 10 到 30 分钟算500 例就是 80 到 250 小时的单机计算量所以一定要在批量仿真阶段做并行多 worker 同时扫不同参数点或用集群分发。我踩过的坑是只开了 4 个并行任务等了近一周才拿齐数据后来把任务拆成 20 个 worker两天结束。2.3 从 S 参数曲线到回归标签机器学习里的数据处理三件事仿真结束后拿到的原始输出是一条 S21 曲线通常在 2 到 18 GHz 范围内扫了 201 个频点每个频点有幅度和相位。这一步做的是机器学习里的数据处理数据处理的好坏直接决定代理模型的天花板。直接拿 201 维向量当回归目标不是不行但很笨——频点之间强相关模型要花大量容量去学相邻频点的平滑关系而且谐振点附近的剧烈变化会被淹没在大量平坦频点里。我常用的做法是把曲线压缩成物理特征标签谐振频率 fr、谐振深度最小透射率、3dB 带宽或 Q 值、相位跳变斜率。4 到 6 个标量就足够描述一个单元的频响特征。如果后续需要还原完整曲线可以在频响上做 PCA 降维取前 5 到 10 个主成分当回归目标预测完再反变换回频域。两条路我都试过纯物理特征标签的模型更容易训练但对曲线细节还原差PCA 标签能还原曲线却可能在某些频点上产生非物理的震荡。数据处理里还有两件小事。第一是频点网格统一不同批次仿真可能设置了不同的扫频范围或频点间隔必须全部插值到同一组频点上再提特征否则样本间的标签不在同一个坐标系里。第二是归一化几何参数单位是毫米介电常数是无量纲的输出频率单位是 GHz量级差出一截标准化后模型训练才会稳定。这些都不需要多高深的技巧但漏掉任何一项训练出来的模型都会让你多花两倍的时间去排查。3. 性能表征代理模型怎么选线性回归基线、MLP 与高斯过程3.1 输出目标先定下来预测谐振点、物理特征还是完整频响机器学习模型选型之前先回答一个问题代理模型要预测什么如果你的目标是快速筛选谐振频率落在某个频点的结构那只需要单输出回归预测 fr 一个值就行如果目标是匹配一条目标透射率曲线那就要预测多个物理特征或 PCA 主成分后续逆向设计才能算完整误差。不同的输出定义决定了模型结构、损失函数和最终的逆向设计效果。有个容易被忽略的点模型预测的物理特征之间存在相关性。谐振频率和 Q 值都由结构几何共同决定训练时如果用独立的 MSE 损失分别约束每个输出模型容易顾此失彼。一个更稳的做法是让网络输出一个向量用加权 MSE 把不同量纲的特征统一到相近的损失贡献。权重哪里来以物理特征的实际分散度为参考。谐振频率在 4 到 6 GHz 范围内波动而透射率在 0 到 -30 dB 范围内波动前者数值大、损失天然占比高不调权重的话模型会只顾着学 fr。在这个任务里我先建议用线性回归跑一遍当基线。这个“机器学习线性回归例子”的意义在于检验特征和标签之间有没有最基本的线性关系。如果线性回归的 R² 能到 0.85 以上说明问题本身偏线性后面用轻量模型就行如果线性回归只有 0.3就要确认是数据异常还是响应面真的高度非线性。R² 被吊打不是坏事至少它告诉你复杂模型的存在是合理的。3.2 用 MLP 跑通第一个代理模型代码骨架与超参数设置MLP 是性能表征项目里最稳妥的第一选择结构简单训练稳定对几百到两千个样本的小数据集完全够用。下面这组代码是一个完整的最小实现import numpy as np import tensorflow as tf from sklearn.preprocessing import StandardScaler # X: 几何参数数组形状 (N, 4)对应 [L, w, g, er] # y: 物理特征标签形状 (N, 6)对应 [fr, 透射率, Q值, 相位斜率, ...] # 切分为训练集与验证集注意按几何区间切分不要随机切原因见第 5 章 scaler_x StandardScaler() scaler_y StandardScaler() X_train_s scaler_x.fit_transform(X[train_idx]) y_train_s scaler_y.fit_transform(y[train_idx]) X_val_s scaler_x.transform(X[val_idx]) y_val_s scaler_y.transform(y[val_idx]) model tf.keras.Sequential([ # 输入层标准化后的 4 个几何参数 tf.keras.layers.Dense(64, activationrelu, input_shape(4,)), # 第二隐藏层64 个神经元对 500 到 2000 样本规模够用 tf.keras.layers.Dense(64, activationrelu), # 输出层6 个物理特征不加激活函数做纯回归 tf.keras.layers.Dense(6) ]) model.compile( optimizertf.keras.optimizers.Adam(learning_rate1e-3), lossmse ) model.fit(X_train_s, y_train_s, epochs300, batch_size32, validation_data(X_val_s, y_val_s), verbose2)这段代码里有几个参数值得你调。learning_rate 从 1e-3 开始训练 loss 如果震荡就降到 3e-4epochs 设 300 配合早停回调不必真的跑满batch_size 对几百个样本用 16 到 32 都行再大容易在小数据集上欠拟合。64 个神经元的隐藏层是这一类任务的经验起点神经元数加一倍效果不明显反而更容易过拟合。标准化这里不是可选项——L 的单位是毫米er 是无量纲常数数量级差一个量级不标准化会让梯度被大数值特征主导模型训练又慢又不稳。这里要再强调切分方式。几何参数空间里相邻点的响应高度相关如果随机切分训练集和验证集验证集里会出现大量与训练集几何参数非常接近的样本R² 虚高到 0.98 以上一放到新设计上就原形毕露。后面第 5 章会专门讲怎么按几何区间切分这里先记住结论切分方式比模型结构更影响你对模型真实水平的判断。3.3 小样本就用高斯过程核函数选择与不确定性价值当样本量低于 1000 且几何参数不超过 8 个时高斯过程回归GPR值得优先尝试。GPR 在小样本下能给出平滑的响应面还能输出预测方差这个方差在逆向设计的搜索阶段非常有用——优化器可以避开代理模型没有把握的区域。相比之下MLP 的预测方差只能靠集成多个模型来近似工程成本高。下面是 sklearn 的实现骨架from sklearn.gaussian_process import GaussianProcessRegressor from sklearn.gaussian_process.kernels import RBF, WhiteKernel, ConstantKernel # 组合核函数常数核控制整体幅度RBF 控制平滑性白噪声核吸收仿真噪声 kernel ( ConstantKernel(1.0, (1e-3, 1e3)) * RBF(length_scale[1.0] * 4, length_scale_bounds(1e-2, 1e2)) WhiteKernel(noise_level1e-3, noise_level_bounds(1e-6, 1e-1)) ) gp GaussianProcessRegressor( kernelkernel, alpha1e-5, # 观测噪声仿真数据基本是确定性的设小一些 n_restarts_optimizer5, normalize_yTrue ) gp.fit(X_train_s, y_train_s) # 预测并返回标准差std 越大说明该区域代理模型越没有把握 y_pred, y_std gp.predict(X_val_s, return_stdTrue)核函数里 length_scale 初始值设为 1.0sklearn 会通过优化自动调整。如果训练后 length_scale 被推到边界值说明某个几何参数对响应几乎没有影响可以考虑删掉这个参数降维。RBF 核在响应突变频繁的谐振结构上有时会过于平滑换成 Matern 核nu1.5会更贴合这类响应面。GPR 最大的痛点是预测速度随样本量上升变慢超过 1500 个点之后每次预测要算核矩阵逆比 MLP 慢几个数量级。所以实际项目中我经常是两者配合样本少、维度低用 GPR 做精细搜索需要批量筛选几千个候选解时用 MLP。表格对比三类模型的适用场景方便你按数据规模对号入座模型样本量响应面特点额外能力主要缺点线性回归任意线性或近似线性可解释性强非线性响应下严重欠拟合MLP300 到 5000强非线性预测速度快适合批量筛选需要调参无天然不确定性估计高斯过程50 到 1500平滑、低维预测方差可做不确定性度量样本量大时预测慢核函数选择有玄学4. 逆向设计落地的两条路线代理模型加搜索还是潜空间生成4.1 路线一代理模型加差分进化最稳妥的逆向设计起点逆向设计的第一条路不是训练“目标响应到几何”的逆向网络而是“正向代理模型加全局优化”。为什么要绕一圈因为正向映射是单值的一组几何参数确定一条响应曲线逆向映射是多值的一条目标曲线往往对应多组几何参数。用神经网络直接学逆向映射遇到多解时会取平均结果是一个谁也不像的中间解。代理模型加优化的思路完全绕开了这个矛盾代理模型负责快速评估每个候选几何的响应优化算法负责在几何参数空间里搜索。差分进化Differential Evolution是这类问题的首选优化器不需要梯度对非光滑响应面鲁棒scipy 里有现成实现。下面这段代码演示了完整流程import numpy as np from scipy.optimize import differential_evolution # 目标设计一个在 5.2 GHz 谐振、透射率低于 -20 dB 的单元 # geo 是设计变量[L, w, g, er]注意这里传进来的是原始量纲 TARGET_FR 5.2 # 目标谐振频率单位 GHz TARGET_T_MIN -20 # 目标谐振深度单位 dB def fitness(geo): # 1. 标准化后送入代理模型 geo_s scaler_x.transform([geo]) feat_s model.predict(geo_s, verbose0)[0] # 2. 反标准化拿回物理量fr 是谐振频率t_min 是透射率最小值 feat scaler_y.inverse_transform([feat_s])[0] fr feat[0] t_min feat[1] # 注意dB 是负值越小代表谐振越深 # 3. 主目标谐振频率偏差 cost abs(fr - TARGET_FR) / TARGET_FR # 4. 约束惩罚谐振深度不达标时按欠了多少线性惩罚 if t_min TARGET_T_MIN: cost 10.0 * (t_min - TARGET_T_MIN) / abs(TARGET_T_MIN) # 5. 可制造性惩罚几何参数靠近边界时也给予惩罚避免优化器钻到工艺死角 cost 5.0 * max(0, geo[0] - 4.5) # L 不能超过 4.5 mm cost 5.0 * max(0, 0.1 - geo[1]) # 线宽不能小于 0.1 mm return cost bounds [(2.0, 4.5), (0.1, 0.5), (0.1, 0.5), (2.0, 12.0)] res differential_evolution(fitness, bounds, maxiter100, popsize20, seed42, tol1e-8) print(最优几何参数:, res.x) print(对应目标函数值:, fitness(res.x))代码里有几个参数需要重点关注。popsize 设 20 意味着每个维度有 20 个候选个体4 个变量就是 80 个初始种群这个规模足够覆盖一个小设计空间如果变量增加到 8 个popsize 至少要到 30 或 40。maxiter 设 100 是起步值观察收敛曲线如果 100 代还在下降就继续加。seed 固定下来否则每次运行结果不同不利于你对比调参效果。目标函数项的权重系数上面代码里主目标为 1、惩罚项为 10 和 5是这套方法真正需要调的部分权重太小约束形同虚设权重太大主目标被淹没。你会发现这个过程完全避开了“多解被平均”的问题。优化器每次只评估一组几何参数然后根据代价函数决定往哪个方向走它可以收敛到任何一个解只要代价函数足够低。跑一次逆向设计在代理模型上只需要几秒钟哪怕每天跑几百个目标响应也不心疼。但要注意差分进化收敛到的解只代表代理模型认为它好必须在仿真软件里复验。代理模型在训练数据稀疏的区域预测可能有较大偏差复验后如果偏差超过 5%就把这组新样本加入训练集重新训练形成闭环。4.2 路线二VAE 潜空间生成多解能力强但工程成本更高第二条路是用生成模型做逆向设计最常被提到的是变分自编码器VAE。思路是把所有已知的几何参数编码到一个低维潜空间然后在潜空间里搜索而不是直接在原始几何空间搜索。这样做的好处是潜空间的每个点都对应一个比较“像样”的结构搜索过程不会频繁踩到不合理的几何组合坏处是要多训练一个编码器而且潜空间里相邻点对应的电磁响应可能并不连续搜索依然有黑匣子成分。VAE 路线的完整落地通常是编码器把几何参数压成 8 到 16 维潜变量解码器还原几何参数然后在这个潜空间上用代理模型或高斯过程建模“潜变量到性能”的映射再做搜索。相比直接几何空间搜索潜空间维度低搜索效率高而且因为解码器受过大量真实结构的训练搜索出来解更接近真实可制造的结构。代价是训练流程多出一个阶段如果数据集本身只有几百个样本VAE 很容易过拟合生成的结构多样性差。我的建议是数据量低于 1000 时别碰生成式逆向先把代理模型加差分进化用熟数据充足、又需要在相似性能下找多个不同结构时再考虑 VAE。实际工程里 80% 的需求第一条路就能满足。4.3 设计约束写进目标函数可制造性、频段范围与惩罚项设置无论走哪条路设计约束都得写进目标函数而不是靠搜索空间边界硬卡。边界约束只能保证变量取值范围但变量取值和可制造性是两回事。线宽 0.11 mm、缝隙 0.12 mm 这种组合完全落在边界内但两种工艺参数同时逼近极限加工出来实际结构可能与仿真模型差出一个等级。可制造性惩罚项的核心思想是离工艺稳定区越远代价越大。上面代码里5.0 * max(0, geo[1] - 0.1)就是最简单的线性惩罚实际工程里可以做得更细。比如线宽有最小值和推荐值小于推荐值时惩罚开始增加但不到最小值前惩罚不要拉满给优化器一个缓坡而不是悬崖。频段范围的约束同理如果目标响应要求在 4 到 6 GHz 全频段透射率都低于 -15 dB而代理模型只预测了谐振频率和 Q 值那么代价函数里就得增加一个带宽项否则优化器会钻空子只优化谐振点、忽略带宽。约束权重怎么标定我的习惯是先跑一次不带惩罚的优化看结果离约束边界有多远然后按离边界超出的量级来设置权重让约束惩罚和主目标在数值上处于同一数量级。权重设太大优化器会优先满足约束而牺牲主性能设太小约束形同虚设。这个校准过程基本靠经验但值得花半小时去调因为惩罚项的质量直接影响逆向设计结果能不能直接进产线。5. 超材料机器学习项目排查手册5 个翻车点的现象、原因与解决5.1 模型预测不物理透射率大于 0 dB、Q 值离谱现象代理模型在验证集上的 loss 不高但单独看某些预测值透射率大于 0 dB或者谐振 Q 值高到几十万物理上根本不可能。原因神经网络只学数值规律不学物理规律。输出层不加约束模型在训练数据覆盖不足的区域会给出完全非物理的外推结果。尤其在谐振深度这个特征上仿真数据的透射率分布在 -5 到 -40 dB 之间模型在数据稀疏区域很容易预测出 -60 dB 甚至正值。解决在输出层加物理约束是治标比如透射率输出后接一个 sigmoid 再映射到合理区间治本是检查训练数据在响应突变区域的覆盖率补充采样或收缩设计空间。我一般两个都做输出层加约束兜底再用主动学习补充突变区的样本。调损失函数时注意不要在 loss 里硬塞物理惩罚项那会让训练不稳定物理约束交给后处理层处理更干净。5.2 逆向网络多解被平均同一目标响应对应多组几何现象训练了一个“目标响应到几何参数”的逆向网络训练 loss 收敛得不错但设计出来的结构仿真复验一塌糊涂谐振频率偏了 10% 以上。原因逆向映射是多值的同一目标响应可能对应几组差异很大的几何参数。神经网络在拟合多值映射时会把不同解平均掉输出一个哪里都不靠的几何。loss 好看只是因为训练集里这些解的平均值确实在误差范围内但平均解本身物理上没有意义。解决放弃端到端逆向网络改用“正向代理模型 优化搜索”的路线或者改用生成模型让网络学会输出多种可行解而不是平均解。如果一定要用逆向网络可以改成多输出头的结构每个头学一种解的模式但训练难度会上升。我的建议是别在这上面耗时间第 4.1 节的方案足够解决大多数问题。5.3 验证集划分泄漏随机划分虚高按几何区间划分才可信现象随机切分训练集和验证集代理模型 R² 高达 0.98验证误差极低但放到一批全新设计的仿真里预测误差明显变大设计成功率大幅下降。原因超材料响应面在几何空间里是平滑的随机切分会让验证集里出现大量与训练样本相邻的参数组合这些点几乎就是“查表”查到的验证失去了意义。这就相当于考试题目和复习题是从同一本习题集里抽的分数自然好看。解决按几何区间切分。比如 L 参数范围是 2 到 5 mm把它分成三段训练集中包含第一和第三段验证集只取第二段。这样验证集里的每个点在几何空间上都离训练集足够远模型的泛化能力才算真正被考验。我建议直接用 scipy 的StratifiedShuffleSplit做不到按连续几何区间切分最简单的做法是对某个关键几何参数做分箱然后在箱级别上切分。这个坑在第 3 章那句“注意按几何区间切分”已经埋了伏笔这里再强调一遍切分方式比模型选型更容易让你误判项目进度。5.4 标签错位仿真频点与预测频点对不上现象模型训练时 loss 很低但把预测曲线和真实曲线画在一起时发现整体形状对谐振峰却偏移了几个频点。原因不同批次仿真输出的频点网格不一致。第一批扫了 401 个频点第二批为了加快速度只保留 201 个频点或者扫频起始频率不同直接在原始频点上提取特征就会产生偏移。更隐蔽的情况是 PCA 降维时训练集和验证集用了不同频点网格主成分载荷矩阵不对齐还原出来的曲线整个错位。解决所有仿真结果在进入数据处理流程前统一插值到一根固定的频点网格上。用scipy.interpolate.interp1d对 S21 幅度和相位分别插值然后再提物理特征或做 PCA。这个步骤要放在数据管道的最前面别拖到特征提取之后再做否则前面提的特征已经污染了。批量仿真脚本里每次扫描的频点定义做成配置项从源头保证一致。5.5 实验样品与仿真对不上网格、材料损耗与制造公差现象代理模型验证通过、仿真复验也通过了实际加工出来的样品实测谐振频率与仿真值偏了 0.3 GHz 以上逆向设计项目在最后一步翻车。原因三层误差叠加。其一是仿真模型理想化介质基板的损耗角正切、金属层的有限电导率都被省略或用了近似值其二是制造公差激光加工的线宽误差一般在 ±0.1 mm谐振频率对缝隙宽度特别敏感微小偏差就产生明显频移其三是仿真边界条件与实验环境不一致仿真里是无限周期边界实验测试用的是单排或小尺寸样品边缘效应不可忽略。解决在做逆向设计之前先做一次灵敏度分析。对关键几何参数通常是缝隙和线宽施加 ±0.1 mm 扰动重新仿真看谐振频率偏移多少据此在目标函数里留出容差裕度。比如实验公差导致预期频偏 ±0.2 GHz那么逆向设计的目标频率就不要卡在 5.20 GHz而是优化到 5.35 GHz让公差落在目标范围的另一侧。这条不是机器学习模型能解决的但它直接决定你的逆向设计方案能不能通过验收。我见过太多项目把资源砸在调模型上最后折在加工公差上白白浪费几周时间。6. 把代理模型用到实验设计前的三个验证习惯6.1 用设计任务成功率代替 R² 来验收代理模型代理模型的 R² 只是一个回归指标它不能告诉你“这个模型在逆向设计任务里到底好不好用”。更好的验收方式是通过做设计任务来检验给定 50 个目标响应让逆向搜索在代理模型上各跑一遍把每组最优几何参数送回仿真软件复验统计谐振频率误差在 3% 以内的比例这个比例就是设计任务成功率。一个 R² 0.95 但成功率只有 40% 的代理模型比一个 R² 0.88 但成功率 75% 的模型更难用于工程。这一步才叫机器学习实战训练完模型不等于项目做完。我会把设计任务成功率的脚本固化下来每次重训模型后先跑一遍再决定要不要进入实验阶段。6.2 候选解必须先仿真复验再把新样本回填训练集代理模型给出的最优解必须回仿真软件复验这是不可省略的一步。复验后发现误差超过 5% 的候选解按“设计空间边缘 响应突变区域”优先的原则把这组几何参数和仿真结果加入训练集重新训练。这个主动学习闭环每轮增加几十个到上百个样本通常迭代两三轮之后代理模型在搜索高频区域的精度就能明显提升。别嫌麻烦亲测这个习惯能把最终的设计成功率从 50% 拉到 80% 以上。6.3 先打印 2 个样品做实验对标别批量输出 100 个结构逆向设计搜索一次能给出几十个候选结构但实验验证不要一上来就批量加工。我自己的规矩是从候选解里挑 2 个性能最好、几何参数离工艺稳定区最远的组合各打印两个样品实测对标。实测结果如果与仿真差出预期之外先查制造公差再查测试环境最后才怀疑代理模型。用 2 到 4 个样品校准完流程之后再放心批量验证。有一次我图省事直接加工了 20 个结构结果加工公差批量偏移全部作废教训深刻。现在的习惯是先小批量走通闭环把实验数据回填到训练集里再放量。希望帮到你。本文还有配套的精品资源点击获取
阅读完成 · 觉得有帮助?
咨询建站