简介:面向风工程与CFD仿真学习者,这份压缩包针对ANSYS Fluent中入口脉动风速难以直接定义的问题,提供了用户自定义风速边界条件的配套实现,适用于建筑风载荷、风力机来流等非定常流动分析。包内共2个文件,含C++源码和随时间变化的风速数据文件,整体仅3KB,通过源码可解析外部风速时序并完成时间插值计算,将离散数据转换为Fluent UDF可调用的平滑风速函数,从而在求解过程中按需调用。资料的价值在于完整展示了从数据读取、插值处理到UDF施加入口条件的实现路径,插值环节可选线性或样条等算法,以保证时间域内的连续性与物理合理性,解决了Fluent原生设置无法直接覆盖自定义时间序列的问题。目前已有592人学习下载,内容精悍,适合具备基础CFD知识、希望深入掌握非定常风入口设定的用户参考,也为后续结构风振响应与疲劳分析提供了边界条件设置思路。
1. 输入风速与脉动风速:风振计算里最容易被随手填错的两个字段
做高层建筑风振复核或大跨屋盖风致响应分析,数据文件里最需要较真的两个字段往往不是几何和材料,而是“输入风速”和“输入脉动风速”。平均风速决定基准风压的大小,脉动风速则决定结构抖振能量从哪来。很多人图省事,把脉动风速当成白噪声随便生成一组填进去,算出来的等效静风荷载和加速度响应直接偏小,强风工况下根本没法用。这篇文章沿着“脉动风速的数学模型 → 谐波叠加法生成 → 参数标定 → 校验验证”这条线,把这两个输入字段背后的门道讲透,适合做结构风振、CFD风环境、风力机载荷的工程师照着落地。
2. 先把脉动风速的数学模型立住:谱、相干与湍流强度
2.1 平均风与脉动风:一个定基准,一个定抖振
处理风速输入之前,必须把物理图像分清楚。自然风在某一高度处沿顺风向的速度,几乎从来不是一个常数,而是围绕一个时均值上下波动。工程上把它拆成两部分:
U(z, t) = U_mean(z) + u(z, t)
U_mean(z)是平均风速,沿高度按一定剖面变化,决定风荷载的静力基准,也就是大家常说的基本风压对应风速。u(z, t)是脉动风速,均值为零,方差σ_u^2对应湍流脉动能量,是结构风振响应中“背景分量”和“共振分量”的直接激励源。结构动力响应计算里,如果只给一个恒定风速输入,那算出来的响应只有静位移,没有抖振;如果给了脉动风速但统计特征不对,算出来的共振响应又可能偏大或偏小,两头都不讨好。
从工程角度看,脉动风速是一个零均值平稳随机过程(短时段内近似平稳),描述它的输入参数不需要包含每一个瞬时值,只需要四个层次的统计量:均值(平均风速)、方差(湍流强度)、功率谱密度(能量随频率的分布)、空间相干函数(两点之间的联动关系)。这四个量定了,风场输入的基本性格也就定了。
2.2 三种常见目标谱的表达式与选型
脉动风速的功率谱密度描述的是湍流能量在不同频率上的分布,也是生成脉动风速时程时必须对准的目标函数。工程界常用的有三类:Davenport谱、Kaimal谱、von Karman谱。三者的区别主要在谱形拐点和适用来源:
| 谱型 | 表达式特点 | 适用场景 |
|---|---|---|
| Davenport谱 | 基于多次强风实测归纳,频率归一化参数x=1200n/U_10,谱峰较宽 | 早期结构风工程,通用性强,偏低频能量偏大 |
| Kaimal谱 | 属大气边界层近地层谱,n过大时按-5/3幂律衰减,有明确摩擦速度u*表达 | 平坦地形近地面风场,CFD入口和规范修正都常用 |
| von Karman谱 | 基于各向同性湍流理论推导,谱形与σ_u^2、积分尺度L_u直接挂钩 | 数值模拟常用,形式简单,谱积分可以严格等于σ_u^2 |
做输入风速时程生成时,我的习惯是优先用von Karman形式,原因很实际:工程里最容易校验的统计量就是脉动风速标准差σ_u,而von Karman谱的积分恰好收敛到σ_u^2,不用再额外修正归一化系数。用Kaimal谱也可以,但它的原始表达式里含摩擦速度u*,需要先用经验关系u* = κ U(z)/ln(z/z0)把u换算出来,或者用σ_u^2 ≈ 6u^2反推,多一步换算就多一个出错点。
常见做法是,按《建筑结构荷载规范》GB 50009给出的风速谱修正形式作为目标谱,它本质上是Kaimal谱的工程化版本,频域表达式里已经含了10m高度名义湍流强度I_10,直接代入即可。在文章后面的代码实现里,我提供一个von Karman谱的实现,并把积分尺度和标准差作为输入参数,方便替换成你自己的目标谱。
2.3 相干函数与多点脉动风场:为什么不能每个点独立生成
脉动风速还有一个容易被忽略的空间属性:不同高度的两个点,它们的风速波动不是独立的。大尺度涡旋会同时影响上下两点,导致两点脉动风在低频段高度相关;小尺度涡旋则被空间距离衰减掉。描述这种联动关系的就是相干函数,工程上最常用Davenport相干函数:
Coh(f, Δz) = exp(-C_z · f · Δz / U_avg)
其中Δz是两点高度差,U_avg是两点平均风速,C_z是竖向衰减系数,通常取7到10。频率f越高,指数衰减越厉害,所以高频脉动在空间上更快失相关;低频大涡旋则可以把很远的两点“绑在一起”。
这一点在做多测点输入时非常关键。如果偷懒,用同一个随机种子生成多个独立脉动风速序列,或者干脆每个点单独生成不相关的序列,那么不同高度风荷载之间就没有相关性。对于塔筒、烟囱这样的悬臂结构,各高度风荷载在低频段完全同相关系,才会激发一阶模态的共振响应;不相干输入会把共振响应人为压低,结果偏危险。生成多点脉动风速时,目标谱只解决了“每个点自己的能量分布”,还必须用互谱矩阵把相干关系写进去,这部分在下一章展开。
3. 用谐波叠加法生成脉动风速时程:可以抄的Python实现
3.1 为什么不选AR自回归,而是谐波叠加法
生成脉动风速时程的工程方法主要有三类:谐波叠加法(WAWS,即加权幅值波叠加)、线性滤波法(AR自回归)、以及基于风洞实测或大涡模拟的实测数据截取。后两种各有局限:实测数据需要风洞或现场条件,而且样本长度和测点布置未必匹配你的工况;AR法的优点是计算快、便于在线生成,但AR模型阶数很难定,目标谱拟合精度对阶数敏感,阶数取低了高频段谱估计偏大,取高了又可能数值不稳定,调试成本高。
谐波叠加法的核心思路是用一组不同频率、不同幅值、随机相位的余弦波去逼近目标功率谱密度。它的优点是原理直观、精度高,只要频率分段足够细,生成时程的功率谱就能和目标谱吻合得很好;而且扩展到多点时,通过互谱矩阵的Cholesky分解可以严格保持空间相干关系。代价是计算量比AR法大,但在Python里用numpy矩阵运算处理一分钟量级的时程,耗时也就是秒级,这个代价完全可接受。
3.2 单点脉动风速生成:核心代码与逐段解释
下面的代码生成单个空间点的脉动风速时程,目标谱采用von Karman形式,谱积分严格等于σ_u^2,方便后面对照校验。这也是所有多点生成的基座模块。
import numpy as np # ---------- 输入参数 ---------- z = 10.0 # 参考高度, m U_ref = 30.0 # 该高度平均风速, m/s Iu = 0.14 # 湍流强度(B类场地, 10m高度名义值) Lu = 60.0 # 顺风向湍流积分尺度, m T_total = 600.0 # 总时长, s,对应规范10分钟平均风速 dt = 0.1 # 时间步长, s,对应截止频率5Hz sigma_u = Iu * U_ref # 脉动风速标准差, m/s f_max = 1.0 / (2.0 * dt) # 奈奎斯特频率, 5 Hz f_low = 1.0 / T_total # 最低频率, 取1个完整周期 N_seg = 800 # 频率分段数 rng = np.random.default_rng(42) # 固定种子, 保证结果可复现 # ---------- 频率网格, 取每段中点, 避免直流分量 ---------- df = (f_max - f_low) / N_seg f_arr = f_low + (np.arange(N_seg) + 0.5) * df # ---------- 目标谱: von Karman 形式 ---------- def spec_vk(f): # S_u(f) = sigma_u^2 * (4*Lu/U) / (1 + 70.8*(f*Lu/U)^2)^(5/6) beta = 4.0 * Lu / U_ref denom = (1.0 + 70.8 * (f * Lu / U_ref) ** 2) ** (5.0 / 6.0) return sigma_u**2 * beta / denom S_f = spec_vk(f_arr) # ---------- 随机相位 ---------- phi = rng.uniform(0.0, 2.0 * np.pi, size=N_seg) # ---------- 谐波叠加 ---------- Nt = int(T_total / dt) t_arr = np.arange(Nt) * dt u_t = np.zeros(Nt) for k in range(N_seg): # 每个频率分量贡献的幅值 = sqrt(2*S*df) A_k = np.sqrt(2.0 * S_f[k] * df) u_t += A_k * np.cos(2.0 * np.pi * f_arr[k] * t_arr + phi[k])这段代码里,最需要留意的是幅值系数。谐波叠加法的幅值取√(2·S(f)·Δf),而不是√(S(f)·Δf),原因在于单侧功率谱密度S(f)只包含正频率部分,而cos波在正负频率上都有能量,叠加时需要把能量补回来,所以乘以2。这个细节如果写错,生成时程的方差会比目标σ_u^2小√2倍,后面算湍流强度时对不上。
另一个是频率网格的取法。代码里用每段中点频率f_arr[k]代表整个频带的谱值,这是工程上的常规近似。von Karman谱在高频段下降斜率是-5/3,谱值变化比较陡,如果N_seg取太小(比如小于200),高频段的谱估计会明显偏离目标谱。一般N_seg取800到2048,计算量和精度都能兼顾。性能上,这段代码对800个频率做循环,每次叠加6000个时间点,总耗时约几十毫秒,没必要用矩阵外积去优化。
3.3 多点脉动风速:从自谱到互谱矩阵的Cholesky分解
单点生成只解决了“每个测点自己的能量分布”,但结构风振输入很少只有一个测点,塔筒要沿高度分层输入、大跨屋盖要在多个屋面点输入。多点脉动风速生成的标准做法是:在每个频率点构造测点间的互谱矩阵S_matrix(ω),然后对该矩阵做Cholesky分解,把分解出的下三角矩阵代入谐波叠加公式。
互谱矩阵的元素按下面的方式构造:
S_ij(ω) = Coh_ij(ω) · √(S_i(ω) · S_j(ω))
其中自谱S_i就是上一节的目标谱,Coh_ij是第2.3节的相干函数。矩阵对角线是自谱,非对角线是互谱,互谱考虑了两点的空间距离和相干衰减。这个矩阵是厄尔米特正定的,所以可以用Cholesky分解。注意这里必须用复数Cholesky,因为它分解的矩阵带相位信息,不同于实数矩阵分解。
关键代码片段如下,完整循环结构沿用了单点版本,核心是互谱矩阵的构造和分解:
z_pts = np.array([10.0, 20.0, 40.0]) # 竖向测点, m U_pts = U_ref * (z_pts / z) ** 0.15 # 指数律剖面, 指数取B类0.15 n_pts = len(z_pts) Cz = 10.0 # 竖向相干衰减系数 u_multi = np.zeros((n_pts, Nt)) # 每个测点一个时程 for k, f_k in enumerate(f_arr): S_mat = np.zeros((n_pts, n_pts), dtype=complex) for i in range(n_pts): for j in range(n_pts): U_avg = 0.5 * (U_pts[i] + U_pts[j]) # Davenport相干函数, 单位全部用Hz和m/s coh = np.exp(-Cz * f_k * np.abs(z_pts[i] - z_pts[j]) / U_avg) S_mat[i, j] = coh * np.sqrt(spec_vk(f_k) * spec_vk(f_k)) # 加微小对角项防止数值上非正定 S_mat += np.eye(n_pts) * 1e-6 H = np.linalg.cholesky(S_mat) # H为下三角复数矩阵 # 对每个测点i, 按WAWS公式叠加 for i in range(n_pts): for m in range(i + 1): # 只遍历下三角 A_im = np.abs(H[i, m]) theta_im = np.angle(H[i, m]) # H的相位角 phi_ml = rng.uniform(0.0, 2.0 * np.pi) u_multi[i, :] += (np.sqrt(2.0 * df) * A_im * np.cos(2.0 * np.pi * f_k * t_arr + theta_im + phi_ml))这段代码的数学依据是谐波叠加法的多点推广式:u_i(t)=Σ_{m=1}^{i} Σ_{l=1}^{N} |H_im(ω_l)|·√(2Δω)·cos(ω_l·t + θ_im(ω_l) + φ_ml)。注意每个测点i只叠加到它自己对应的行数i,也就是Cholesky下三角矩阵中非零的部分,形式上像一个“累积生成”的过程,这保证了互谱矩阵的Cholesky分解关系在生成结果中仍然成立。
两个容易写错的地方:一是Cholesky分解的对象是复数厄尔米特矩阵,numpy的np.linalg.cholesky能直接处理,但要求矩阵严格正定,数值误差可能导致极小负特征值,所以代码里加了1e-6的对角项做保护;二是φ_ml的随机相位必须每个(i,m)组合都重新抽取一次,不能复用单点版本里的同一个相位数组,否则会引入虚假的相关性。测点的相干性如果算出来偏小,优先检查这个位置的相位复用问题。
4. 参数怎么设才合拍:时间步长、频率分段、粗糙度与湍流度
4.1 频率分段N_seg与截止频率:决定计算量和谱拟合精度
频率分段数量N_seg是脉动风速生成的第一个关键旋钮。N_seg直接决定频率分辨率和离散误差:N_seg太小,每个频带的宽度Δf很大,用中点谱值代表整个频带的能量会引入明显误差,尤其在谱形下降的高频段,误差方向通常是谱值偏大;N_seg太大,计算耗时线性增长,但谱拟合精度提升却趋于饱和。工程经验值一般取800到2048。我做结构风振输入时,如果不是特别高频的敏感结构,取1024足够;如果关注频段到10Hz以上,取2048。
截止频率f_max的选择与时间步长互为表里。奈奎斯特采样定理要求f_max < 1/(2·dt),但实际生成时建议让f_max覆盖到你关心频段的2到3倍以上。比如高层建筑顺风向响应主要集中在前三阶模态,频率大概在0.1到1Hz,那么f_max取2到3Hz就够用了;但如果计算玻璃幕墙的局部风压时程,响应频率可以到5到10Hz,这时候dt必须压到0.05到0.1秒,f_max取到5到10Hz。反过来定参数时,先想清楚你的结构关心哪个频段,再定f_max,最后反推dt。
f_max也决定了每个频率分量的幅值分布。von Karman谱在超过转折频率后按-5/3幂律衰减,高频段贡献的能量占比很小,但累计下来也不是可忽略的。如果你把f_max从5Hz调到10Hz,σ_u几乎不变,因为高频尾部贡献确实有限;但如果你把f_max压到1Hz以下,那尾部大量能量被截断,生成时程的方差会明显小于目标σ_u^2,湍流强度对不上。v如果对不上,优先检查是不是截止频率取太低。
4.2 时间步长与总时长:10分钟样本是基准
时间步长dt直接影响时程的频谱范围,也影响后续动力响应计算的时间积分精度。做结构风振时程分析时,dt要同时满足两个约束:一是奈奎斯特频率大于目标谱的最高有效频率;二是结构动力方程的时间积分步长足够小,一般要求dt小于结构最高阶关注模态周期的1/10。对于常见的超高层建筑,一阶周期可能到5到8秒,dt取0.1到0.2秒都合适;对于桥梁或大跨屋盖,模态频率更高,dt可能要取到0.02到0.05秒。
总时长T的选取同样有讲究。我国荷载规范的基本风压对应10分钟平均风速,所以标准做法是把输入风速时程做成600秒,对应一个完整的10分钟样本。但如果你要做极值响应统计,比如按50年重现期评估峰值加速度,单个600秒样本远远不够,因为样本的随机性会导致峰值响应在不同种子之间摆动很大。更稳妥的做法是生成20到30个独立的600秒样本,对每个样本算峰值响应,再做极值统计拟合。每增加一个样本的代价只是几十毫秒的生成时间,但统计结果的可靠性提升是质的区别。
4.3 地面粗糙度与风速剖面:指数律参数和湍流强度的对应关系
平均风速沿高度的变化,工程上最常用指数律描述:
U(z) = U_10 · (z/10)^α
其中α是地面粗糙度指数。脉动风速的标准差σ_u沿高度的变化比平均风速小得多,工程上常近似认为σ_u沿高度基本不变,只按10m高度的名义湍流强度计算。这样湍流强度Iu(z) = σ_u/U(z)会随高度增大而减小,符合“高处风大但脉动比例小”的物理规律。
| 场地类别 | α(粗糙度指数) | I_10(10m高度名义湍流强度) | 典型地形 |
|---|---|---|---|
| A | 0.12 | 0.12 | 近海海面、沙漠 |
| B | 0.15 | 0.14 | 田野、乡村、平坦开阔 |
| C | 0.22 | 0.23 | 城市市区、密集建筑群 |
| D | 0.30 | 0.39 | 大城市中心、摩天楼密集区 |
建表时要注意,B类场地的α在旧版规范里取0.16,2012版调整为0.15,很多沿用旧参数的老程序算出来的平均风速剖面会整体偏高几个百分点。核对输入参数时,一定要看你参考的规范版本和对应表格。地面粗糙度类别选错的影响是系统性的:C类和B类场地在10m高度的名义湍流强度差接近一倍,生成的脉动风速时程方差差一倍,算出来的风振加速度响应可能差30%以上。这个参数是所有输入里权重最大的一个,务必先确认。
5. 脉动风速输入避坑指南:四条让我翻过车的实测经验
5.1 校验谱时低频段翘起、高频段掉不下去
现象:用Welch法估算生成时程的功率谱,和目标谱放在一起对比,低频段(0.01~0.05Hz)明显偏大,高频段(1Hz以上)却比目标谱高出不少,谱形整体对不上。
原因:这是典型的频率网格离散化问题。等宽频率分段下,最低频段宽度可能覆盖了从0到0.1Hz的整个范围,而von Karman谱在低频段有一个平台,用中点谱值代替整个频带的积分,会在低频端引入误差;高频段则是谱值下降斜率大,等宽分段在中点取谱值,导致高估了高频能量。
解决:两个办法配合使用。第一,把频率下限从0改到1/T_total附近,像代码里那样,避免直流分量和超低频段被一个分段吃掉;第二,改用对数频率分段再映射回线性频率,低频段分得密、高频段分得稀,谱形拟合精度会大幅改善。如果这两种做了仍然不满意,采用Shinozuka的随机频率技巧——每个频带内的频率点在该频带内均匀随机抽取,而不是固定取中点,这能消除周期性和离散谱线带来的估计偏差。
5.2 多点脉动风速的相关系数明显偏低,塔筒响应虚小
现象:生成三个竖向测点的脉动风速时程,两两计算互相关系数,低频段勉强够,高频段几乎不相关。结构整体风振响应算出来比风洞实验值小一截。
原因:相干函数的衰减系数C_z取错了,或者相干函数里的频率单位写混了。Davenport相干函数在有些文献里用圆频率ω(rad/s),有些用频率f(Hz),两者的系数差2π倍。如果你从一篇英文文献里抄了公式但单位换算漏掉,C_z实际相当于取了原来的1/2π,相干性衰减得远比真实风场慢,对应的高频相关性偏强、低频相关性偏弱。更常见的是把C_z取了接近20的大值,导致高差稍大的两点直接变成完全不相干。
解决:统一用Hz单位写相干函数,C_z取7到10,对应竖向高度差。生成完后不要只看时程形态,用两个测点时程的幅值相干谱(用scipy.signal.coherence计算)与目标相干函数叠加对比,偏差超过10%就回头检查C_z和频率单位。
5.3 时程开头一段出现大幅“假风”,谱分析里低频能量异常
现象:生成的风速时程前10到20秒有一个明显的大幅波动过程,幅值可以达到后续平稳段的两倍以上。把这段拿去算功率谱,低频段能量异常高,结构响应前几秒也出现虚假的大位移。
原因:脉动风速模拟假设过程是平稳的,但谐波叠加法在初始时刻所有余弦波都从各自随机相位开始,初始时刻的叠加值可能正好是大数相加,产生一个瞬态尖峰。这个尖峰不是真实风场的特征,而是数值初始瞬态。随机种子不巧的时候,这个瞬态会非常明显。
解决:生成时程后主动丢弃前10%的数据,比如600秒的时程直接取前60秒之后的部分作为有效输入;或者更优雅一点,在生成时给时程加一个前5秒的渐入斜坡函数,让幅值从0线性过渡到1,消掉初始瞬态。我做多点生成时习惯两者都做:先加斜坡,再在最终交付前统一截掉前5秒。
5.4 生成时程的标准差和给定湍流强度对不上
现象:设定Iu=0.14、U_ref=30m/s,理论上σ_u应该等于4.2m/s。生成完成后np.std(u_t)算出来只有3.6m/s,偏差超过15%。
原因:通常有两个来源。一是截止频率f_max取得太低(比如1Hz),高频尾部的能量贡献被截断,与σ_u^2的积分值不完整;二是用Davenport谱或Kaimal谱时没有做归一化,这两种谱的原始形式积分并不严格等于σ_u^2,直接拿来生成,幅值系数自然对不上。如果用的von Karman谱还有偏差,那就是f_max的问题。
解决:做一遍谱积分自检:∫_0^fmax S_u(f)df应该等于σ_u^2乘以一个接近1的比例系数(比如0.95以上)。如果比例明显低,就把f_max往上提。用Kaimal谱时,建议先积分目标谱算出理论σ_u^2,再按实际需要的σ_u^2反推一个修正系数乘到谱上,保证生成时程的方差一次到位。
5.5 不同随机种子生成的时程,极值响应波动巨大
现象:同一个参数、不同随机种子生成10组600秒时程,算出来的峰值加速度最大和最小可以差到40%以上。新手会觉得是程序有问题,但其实这是小样本极值统计的正常现象。
原因:脉动风速的峰值本身是随机过程,在600秒样本里能碰到的最大阵风幅值有很强的样本间波动。如果拿单个600秒样本的峰值响应直接报结果,相当于拿一组随机数里的最大值当确定性结论,当然不稳。
解决:工程上按20到30个独立样本做极值统计,对每个样本算峰值响应,再用Gumbel极值分布拟合,取一定重现期对应的极值。这不算额外工作量,因为生成30组时程在谐波叠加法下也就是多花几秒的事,但对最终结论的可靠性是质变。我在实际项目里至少生成20组,这也是很多风工程规范建议的最少样本数。
6. 生成之后怎么算数:谱校验、方差校验与载荷衔接
生成脉动风速时程不是终点,校验才是。我每次做完一组输入,先跑三件事:第一,功率谱密度校验。用scipy.signal.welch估计生成时程的功率谱,和目标谱叠加画在一张图里,观察偏差是否在可接受范围(工程上通常允许正负10%的浮动,低频段允许稍大,高频段从严):
from scipy import signal # 采样频率, 1/dt Hz fs = 1.0 / dt # nperseg取1024, 对应约100秒窗口, 频率分辨率约0.01Hz f_est, S_est = signal.welch(u_t, fs=fs, nperseg=1024, scaling='density') # S_est单位是 (m/s)^2/Hz, 与目标谱spec_vk直接对比 ratio = S_est / spec_vk(f_est) # 关注0.05~4Hz区间内ratio是否在0.9~1.1之间第二,方差校验。直接计算np.std(u_t),与目标σ_u比,偏差应控制在3%以内。如果偏差超过5%,回头查频率分段、截止频率和谱归一化系数。第三,如果是多点输入,用scipy.signal.coherence算两两测点间的相干谱,与Davenport相干函数叠加对比,重点看低频段是否贴合。这三项过了,风场输入才算有资格进入结构响应计算。
脉动风速校验完成后的载荷衔接,我习惯按准定常假设处理:F(t)=0.5·ρ·Cd·A·(U_mean+u(t))^2。展开后包含三项——平均风速平方项U_mean^2对应静风压;2·U_mean·u(t)是线性抖振项,也是结构共振响应的主激励;u(t)^2是非线性项,量级只有前面两项的百分之几,大部分情况下可忽略,但在高湍流强度场地(Iu>0.3)不能直接丢。
最后把生成参数记录下来是我养成的习惯:随机种子、N_seg、f_max、dt、目标谱类型、相干系数C_z,全部写进输入文件头。这样做有几个实际好处,一是换参数复现时有据可查;二是报告评审时专家问起“你的输入风速怎么来的”,可以直接把生成参数链交代清楚;三是很多项目隔了半年要重新复核,看到这串参数就能立刻还原当时的输入条件。我现在接到一个风振复核任务,第一件事不是急着把模型甩进求解器,而是先把输入风速和脉动风速时程的谱、方差、相干这三项校验捋一遍,这三项过了,后面的计算才有底气。希望这个流程对你也有用。
本文还有配套的精品资源,点击获取