3. CAE样本空间表征
在CAE驱动的主动学习中,样本空间表征决定了后续代理模型能否“看懂”设计对象。一个结构件的几何形状、材料分布、边界条件,如果只用原始网格节点坐标描述,维度可能高达数万甚至百万,直接送入学习器既低效又容易过拟合。因此,样本空间表征的核心任务,是把物理设计对象压缩成一组低维、可解释、可计算的数值向量,同时尽量保留对响应量(应力、频率、压降等)有影响的几何与物理特征。
设计变量:从物理量到可调参数
设计变量是样本空间的坐标轴。以某悬臂梁减重设计为例,可选设计变量包括:梁长 L(200–400 mm)、截面高度 h(20–60 mm)、腹板厚度 t(2–8 mm)、端部倒角半径 r(0–15 mm)。每个变量都有明确的物理含义、上下界和单位。设计变量选取要遵循三条原则:可制造(变量组合能加工出来)、可参数化(能驱动CAD/CAE模型重建)、对响应敏感(通过灵敏度分析或工程判断筛选)。若变量过多,可先做一次Sobol灵敏度分析,保留主效应显著的变量,把次要变量固定为标称值。
参数化建模:让几何随变量自动重建
参数化建模是把设计变量映射为几何模型的桥梁。常见方式有三种:尺寸驱动(修改草图尺寸或特征参数)、特征驱动(控制孔、倒角、阵列的数量与位置)、形状函数驱动(用FFD控制体、样条控制点或水平集函数描述边界)。以悬臂梁为例,可在CAD中建立参数表,把 L、h、t、r 绑定到草图与拉伸特征;每次采样后由脚本调用CAD API重建模型并导出STEP或直接生成网格。参数化建模的关键约束是:变量变化不能导致拓扑失效(如厚度超过高度、倒角半径大于梁宽),因此采样时需加入几何可行性检查。
特征提取:从高维场到低维描述
当几何无法用少量尺寸参数描述时(如翼型、拓扑优化结果、随机多孔结构),需要从高维场中提取特征。常用手段包括:
- 几何矩与积分量:面积、惯性矩、质心、体积分数,适合描述整体形状分布。
- 边界采样与符号距离场:在固定网格上计算SDF,再对SDF做PCA或自编码器压缩。
- 模态特征:对结构做模态分析,取前若干阶固有频率与振型系数作为特征。
- 物理场统计量:对温度场、压力场取均值、方差、梯度幅值、热点位置等。
特征提取后应做标准化(Z-score或min-max),避免量纲差异导致距离度量失真。
降维方法:在保真与压缩之间取舍
降维的目标是用 d 维隐变量近似原始 D 维特征,且 d ≪ D。线性方法中,PCA对中心化数据做SVD,保留累计方差贡献率≥95%的主成分;PLS则同时考虑输入与响应,适合回归任务。非线性方法中,自编码器(AE)通过编码器-解码器结构学习流形,核PCA用核函数处理非线性关系。对于参数化几何,还可采用主动子空间方法,直接寻找对响应影响最大的方向。降维后应检查重构误差:若重构误差过大,说明隐空间丢失了关键信息,需要增加维度或改用非线性方法。
样本空间可视化:看见分布与覆盖
高维样本无法直接绘制,常用可视化策略包括:PCA/ t-SNE降维到2D散点图、平行坐标图展示多变量取值、相关性热力图观察变量间耦合、以及设计变量-响应散点矩阵。可视化的目的不是“好看”,而是回答三个问题:样本是否覆盖设计空间?是否存在明显聚类或空洞?响应面是否平滑、有无异常点?若发现某区域样本稀疏,可在主动学习下一轮采样中加密。
实操示例:悬臂梁样本空间构建
下面给出一个可复现的样本空间构建片段。假设已用拉丁超立方采样生成80组设计变量,每组变量驱动CAD重建并完成静力分析,提取最大应力 σ_max 与一阶固有频率 f1。特征向量由几何矩、SDF采样和模态频率拼接而成,维度约120。用PCA降至6维,累计方差贡献率96.3%。
# 示例:PCA降维与可视化(Python伪代码)
import numpy as np
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
# X: (80, 120) 特征矩阵;y: (80, 2) 响应 [σ_max, f1]
X_scaled = StandardScaler().fit_transform(X)
pca = PCA(n_components=0.95) # 保留95%方差
Z = pca.fit_transform(X_scaled) # Z: (80, d)
print("原始维度:", X.shape[1])
print("降维后维度:", Z.shape[1])
print("累计方差贡献率:", pca.explained_variance_ratio_.cumsum()[-1])
# 2D可视化
import matplotlib.pyplot as plt
plt.scatter(Z[:,0], Z[:,1], c=y[:,0], cmap='viridis')
plt.xlabel('PC1'); plt.ylabel('PC2')
plt.colorbar(label='σ_max (MPa)')
plt.title('样本空间PCA投影')
plt.show()
样本空间表征完成后,应保存三份数据:设计变量矩阵、特征矩阵、降维后隐变量矩阵,并记录每列的物理含义、单位、标准化参数和PCA载荷。这样在后续主动学习迭代中,新增样本可以按同一变换投影到已有空间,保证样本空间的一致性和可扩展性。