非定常气动力与颤振计算:偶极子格网法和p-k法工程实践

简介:压缩包“飞行器机翼非定常气动力计算及颤振计算程序.7z”是一份面向航空航天专业研究生、工程师及高年级本科生的轻量级MATLAB代码资源,重点解决飞行器机翼在非定常流动环境下的气动力响应计算与颤振边界预测问题。资源包内仅含1个程序文件,文件类型为.m,压缩后整体大小约995B,体量虽小,却以简洁形式涉及机翼非定常气动力建模和颤振分析的核心环节,适合用于教学演示、理论验证或作为二次开发的基础框架。目前已有285人学习下载。通过阅读和运行该程序,可观察来流条件或结构参数变化对气动力系数时间历程的影响,体会柔性机翼与气动载荷耦合求解的基本思路,并了解颤振临界速度的判定逻辑。对于正在学习气动弹性力学或需要快速搭建仿真实验的读者,这是一份简洁实用的参考资料。

1. 非定常气动力计算和颤振计算程序:动态失稳边界到底卡在哪

机翼的非定常气动力计算和颤振计算,是气动弹性分析里最容易被误认为“算一个定常压力分布”的环节。很多人把机翼静载荷算完就收工,直到风洞试验或飞行试验出现振荡才意识到,动态气动力会随减缩频率变化,颤振边界往往出现在马赫数不高、但模态耦合很强的亚音速段。这份资源打包的是一整套可运行的频域偶极子格网法气动力模块和 p-k 法颤振求解流程,覆盖网格准备、气动力影响系数矩阵组装、模态力变换、V-g 图扫速判断这条完整链路。适合机翼设计载荷编制、气动弹性校核或学生复现算法的人。它让你不需要从底层公式推起,直接把精力放在真正影响颤振结论的网格、马赫数、模态截断这些参数上,算出的 V-g 图能直接用于判断失稳边界。

2. 非定常气动力怎么建模:偶极子格网法能解什么、不能解什么

2.1 定常与准定常假设为什么在颤振分析里失效

初次接触气动弹性的人,常想把定常 CFD 或涡格法的气动力直接接到结构方程里。升力线模型和定常面元法给出的升力系数只是攻角和马赫数的函数,不带时间相位。机翼颤振时运动近似简谐,气动力不仅取决于当前时刻的位移,还取决于此前一段时间流场对扰动历程的“记忆”,即下洗的时间积分效应。Theodorsen 在不可压缩流里用 C(k) 函数准确描述了这种记忆效应:k 是减缩频率,定义为 k = ωb/V,b 为参考半弦长。k 越大,C(k) 的虚部越明显,升力和位移的相位差就越大。把相位抹掉,等于把气动力当成保守力,计算出的颤振速度通常会偏高一到两成,这个偏差足以让一个原本安全的构型被误判成裕度不足。

所以只要目标是动气弹而不是静载荷分配,就必须走非定常气动力。在亚音速线性化范围内,偶极子格网法(Doublet Lattice Method,简称 DLM)是工程上最常用的选择。它把机翼表面划分成若干四边形网格,每个网格上布置一个加速度势偶极子,通过物面边界条件求解压力分布。相比涡格法需要显式布置尾迹涡并迭代,DLM 直接在频域写积分核,尾迹和振荡效应被核函数中的指数项吸收,实现直接、数值稳定,这也是这类程序普遍采用它的原因。它解决的是“给一个振荡的机翼,算出频域气动力”的问题,而不是“算整个流场”。

2.2 偶极子格网法的控制方程与核函数处理

DLM 的积分关系一般写成:

w(x,y) = (1 / (4π ρ V)) ∫∫ Δp(ξ,η) K(x-ξ, y-η; Ma, k) dξ dη

其中 w 是物面法向诱导速度,也就是下洗;Δp 是跨越机翼表面的压力跳跃;K 是亚音速核函数。核函数里包含 e^{-i k (x-ξ)/b} 这样的相移项,把振荡相位直接写进积分核,所以不必再单独布置尾迹。离散后,每个网格上的压力假设为常数,积分退化为网格间影响系数关系,得到气动力影响系数矩阵 AIC:

{AIC} {Δp} = {w}

矩阵维数是气动网格数乘以气动网格数。求解这个线性方程组得到 Δp,再乘参考动压和网格面积,就得到每个网格上的气动力。实际运行这类程序时,输入文件通常只要气动网格坐标、马赫数和减缩频率表,输出就是每个工况下的压力分布和广义气动力矩阵。

一个容易翻车的细节在核函数的奇异性处理。核函数在自身网格附近是 1/r² 阶的奇异积分,不能直接用普通高斯积分。常见做法是把近场贡献分离出来,用解析公式求有限部分主值,远场网格再用数值积分。跑这类程序时,如果某个算例在网格数增加后反而出现局部压力振荡,优先怀疑这里是没处理好还是网格畸形。程序包里的算例一般会带一个收敛对比文件,可以先跑那个看看趋势。

2.3 从气动网格到结构节点:插值矩阵的组装

气动网格上的压力分布不能直接乘到结构有限元节点上,两个模型的节点位置往往差得很远。常见做法是用薄板样条(TPS)或无限板样条(IPS)做位移插值,把结构节点的位移映射到气动网格节点,再通过虚功原理得到对应的力转换矩阵。程序里这一步输入两个文件:结构模态振型和气动网格坐标,输出三个矩阵:位移转换矩阵、力转换矩阵,以及最终的广义气动力矩阵。组装插值矩阵的典型代码逻辑如下:

import numpy as np def build_spline_interp(aero_xyz, struct_xyz): # aero_xyz: (n_aero, 3) 气动网格中心点坐标 # struct_xyz: (n_struct, 3) 结构有限元节点坐标 n_aero = aero_xyz.shape[0] n_struct = struct_xyz.shape[0] # 径向基函数核,薄板样条常用 r^2 log(r) def rbf(r): return np.where(r > 1e-12, r**2 * np.log(r + 1e-12), 0.0) # 构造结构节点间的 RBF 矩阵 K_ss = np.zeros((n_struct, n_struct)) for i in range(n_struct): for j in range(n_struct): r = np.linalg.norm(struct_xyz[i] - struct_xyz[j]) K_ss[i, j] = rbf(r) # 气动节点到结构节点的 RBF 矩阵 K_as = np.zeros((n_aero, n_struct)) for i in range(n_aero): for j in range(n_struct): r = np.linalg.norm(aero_xyz[i] - struct_xyz[j]) K_as[i, j] = rbf(r) # 加入多项式项保证刚体位移精度 # 组装 [K_ss P] [c] = [struct_z] # [P^T 0] [d] [0 ] # 解出系数后,用 K_as 计算气动节点位移 return K_as, K_ss # 实际调用时,还需要按模态逐阶做插值并组装 T 矩阵 # T 的维数是 (n_aero, n_struct*n_modes)

这个逻辑的关键是 RBF 核函数的选择。TPS 对弯曲主导的机翼变形效果好,IPS 更接近翼盒结构的位移模式;具体选哪个,我会看结构模型里是否包含弦向扭转。插值矩阵组装完后,广义气动力矩阵按下式计算:

Q_hh(k) = T^T AIC(k) T

其中 T 是位移转换矩阵,T^T 是力转换矩阵的虚功对偶。检验 T 矩阵是否满足对偶关系,是判断程序组装正确性的一个快速手段。程序包里的测试算例通常已经生成好了 Q_hh 结果,可以直接对照。

3. 颤振方程组装与 p-k 法求解:扫速扫频的流程拆解

3.1 广义坐标下的气动弹性运动方程

有了广义气动力矩阵,颤振方程在结构模态坐标下写成:

M q̈ + K q - q_dyn Q(k, Ma) q = 0

其中 M 和 K 是广义质量与广义刚度,阶数为截断模态数,q_dyn 是动压,Q 是随减缩频率 k 变化的广义气动力矩阵。需要特别记住一点:Q 并非常数矩阵,它与 k 的关系是非线性的,所以不能像静气弹那样把它提到方程外直接解特征值。处理方式是把方程改写成状态空间,用复根 s 描述,再迭代求解。

p-k 法的核心迭代逻辑是:先假设当前速度 V 和减缩频率 k,插值得到 Q(k),解一次复特征值问题,得到根 s 后利用 ω 和 V 更新 k,再重新取 Q(k) 继续迭代,直到前后两次的 k 收敛。每个速度点都做一次这样的迭代,速度从小到大扫过去,找到阻尼由负变正的临界点。

3.2 p-k 法迭代细节:复特征根的判读口径

扫速的实际流程是给定一条速度序列,从低到高逐点计算。程序里常见的实现框架如下:

import numpy as np V_list = np.arange(20, 250, 5) # 速度扫描范围,单位 m/s Ma = 0.6 # 亚音速工况 ref_half_chord = 1.2 # 参考半弦长,单位 m Vf = None for V in V_list: k_guess = 0.1 # 初始减缩频率迭代猜测 for _ in range(20): # 迭代收敛 Qk = aero_interp(Ma, k_guess) # 从气动力矩阵表插值 # 组装系统矩阵并求解复特征值 s = solve_flutter_eig(M, K, Qk, V, Ma) k_new = np.imag(s) * ref_half_chord / V if abs(k_new - k_guess) < 1e-6: break k_guess = k_new # 取所有模态根中实部最大的一支 sigma_max = np.max(np.real(s)) if sigma_max > 0 and Vf is None: Vf = V break

这里的每个速度点都要做矩阵插值和特征值求解。迭代是否收敛,看 k_new 和 k_guess 的差是否小于设置阈值。阈值太小会多花时间,太大会把颤振点推偏。工程经验是取 1e-4 到 1e-6 之间的量级,太松会导致 V-g 图上的拐点明显不光滑。

特征根判读时不要只盯 σ 的符号,还要同时看对应频率 ω。工程上通常把根写成无量纲形式,画出阻尼比随速度变化的曲线。阻尼比定义为 γ = σ / |ω|,当某一支的 γ 由负变正,对应的速度就是颤振速度。多模态情况下,可能出现两支模态的 γ 都接近零,此时要结合物理判断哪一支先失稳,不能简单取第一支过零的模态。

3.3 模态截断与人工阻尼修正

结构侧模态截断是这类程序最常见的坑。模态截断不足,相当于把结构刚度人为减少,可能把颤振速度算低;截断过多,又会让高频耦合被抹掉。通用建议是至少包含前 6 到 8 阶模态,高展弦比机翼取到前 10 阶并包含扭转模态,低展弦比机翼还要考虑舵面转动模态。模态选取的物理依据是:参与颤振的模态必须覆盖机翼弯曲、扭转以及二者之间的耦合通道。如果只取两阶对称弯曲,颤振点几乎必偏。

结构阻尼在程序里一般作为附加阻尼项叠加进方程。V-g 法里那个 g 是人为加进去的搜索参数,不是真实结构阻尼;p-k 法里可以加入真实结构阻尼 g_h,一般取 0.01 到 0.02。如果程序输出的是 V-g 图,判读时看的是 g=0 对应的交点速度,不是曲线上的某个峰值。见过有人把 V-g 图里的 g 当成真实阻尼来分析衰减率,这个误解很危险。

4. 计算参数怎么定:减缩频率、马赫数与网格尺寸的收敛配方

4.1 减缩频率:频域气动力的标尺

减缩频率是频域气动力计算中最重要的无量纲参数。它等于 ωb/V,其中 b 是参考半弦长,V 是来流速度。同样一副机翼,在不同速度、不同模态下经历的减缩频率区间完全不同。低速大攻角下机翼一弯模态对应的 k 可能超过 1.0,高速小攻角下扭转模态对应的 k 可能只有 0.05。程序在算 Q(k) 矩阵时通常先在预设的 k 表上计算影响系数,再用插值得到扫速过程中的任意 k。

如果 k 表覆盖不到某个模态实际经历的区间,插值结果会明显失真。经验做法是先把参与颤振的所有模态固有频率列出来,按目标速度范围算出 k 的上下限,再把表范围扩大 50%,保证边界外推量足够小。k 分布点取等距还是对数等距,取决于曲线曲率;曲率大的低频段加密,高频段可以放宽。我在处理高展弦比机翼时通常把 k 表下限放到 0.01,上限放到 3.0,点数取 30 左右。

4.2 网格收敛性检查:三段网格对比法

非定常气动力计算里,网格数量直接决定 AIC 矩阵的可信度。做过几个机翼算例后我养成了固定习惯:先用三套网格跑同一个算例,粗网格按展向 20、弦向 5,中网格按展向 32、弦向 8,细网格按展向 40、弦向 12。比较对象是广义气动力矩阵 Frobenius 范数或颤振速度,不是单看某个网格上的压力系数。

判断标准是相邻两套网格的数值差小于 1%,就认为中网格可用。如果差在 3% 以上,说明气动网格还不够,此时增加弦向网格数往往比增加展向更有效。弦向网格数在 DLM 里一般不需要很多,因为压力分布用一阶偶极子假设已经是常数或线性分布,真正影响精度的是展向分辨率。程序包里如果有自带的收敛性算例,先跑一遍那个,用它的结果对比自己的网格设置。

4.3 常用工况参数模板

参数项推荐取值说明
马赫数范围0.3 - 0.85DLM 基于线性化小扰动,跨音速段需转其他方法
减缩频率 k 表0.01 - 3.0覆盖所有参与模态的 k 范围
k 表点数25 - 40曲率大区域加密,用三次样条插值
气动网格(展向×弦向)32 × 8 起先做收敛性检查再定
结构模态截断6 - 10 阶包含弯曲、扭转、舵面模态
结构阻尼 g_h0.01 - 0.02由地面共振试验标定
插值方式TPS / IPS含扭转时优先 IPS

这个表格是我对常规亚音速机型气弹分析的起点参数。不同构型需要调整的地方主要是展弦比和模态截断数,但先按这个模板跑通一遍,再根据结果做敏感度分析,比一开始就直接上真实构型更稳妥。参数模板的作用是给你一个参照系,而不是让你照抄。

5. 避坑:非定常气动力与颤振分析里常见的六个翻车现场

5.1 现象:V-g 图越过零点后曲线不光滑

扫速结果显示,某支模态的阻尼在某个速度后突然剧烈波动,曲线前后段不连续。原因通常是扫速步长太大,导致模态追踪配对出错,特征值从一支模态跳到了另一支上。解决方法是缩小速度步长,再按频率接近度做模态继承,用上一速度点的特征频率作为当前速度点特征值配对依据。程序里通常有一个开关控制是否启用模态追踪,默认可能是关闭的。

5.2 现象:特征值随扫速步长跳动

改变扫速步长后,同一个速度点的颤振速度明显移动。这属于气动力矩阵在 k 方向上插值不充分。检查 k 表点数,低于 20 个点时容易出现这个现象。解决方式是加密 k 表的低频段,同时把插值方式从线性改为三次样条。有遇到过 k 表只有 12 个点,算出来的 V-g 图在拐点处锯齿状,加密到 30 个点后就光滑了。

5.3 现象:马赫数超过 0.85 后结果明显失真

算例马赫数推到 0.9 附近时,算出的颤振速度比风洞数据低了 15% 以上。原因是 DLM 的推导基于线化小扰动,跨音速区激波位置变化和致热效应被无视,核函数本身不再成立。解决方式是把目标工况控制在 Ma < 0.85 以内,或用其他方法替换气动力模块。这类程序适用到 0.85 已经是工程上限,不要硬推到 0.9 以上再回头怀疑程序写错了。

5.4 现象:T 型尾翼案例算不出颤振

T 尾模型里平尾和垂尾之间的气动干扰总被低估,颤振点算不出来或计算结果明显偏高。原因多是把平尾和垂尾分成两个独立气动模型,没有放在同一个面元系统里。解决方式是把平尾、垂尾和机身局部段放在同一个气动网格模型里,结构连接处铰链刚度按真实值建模。这个案例在程序包里的算例文件里通常有单独说明,跑之前先看一眼约束条件。

5.5 现象:模态力矩阵不对称

广义气动力矩阵 Q_hh 本应满足对称性条件,但程序输出发现矩阵不对称。常见原因是插值矩阵和力转换矩阵没有严格使用对偶变换,或左右半翼网格编号不一致导致位移插值出现局部错误。解决方式是写一个对称性检查脚本,计算 Q_hh 与其转置的相对误差,超过 1% 就逐块定位插值矩阵。多数情况下问题出在 T 矩阵行和列的顺序上,而不是积分核写错。

5.6 现象:同一算例改变激励频率后结果打架

在非定常气动力模块里做强迫振荡验证时,低频和高频算出的广义力趋势不一致。检查后发现减缩频率表没有覆盖所用频率范围,导致高频段插值结果外推过度。解决方式是先列出验证频率对应的 k 值,确保 k 表覆盖这段区间后再算。注意这里的“外推过度”不是报错,而是程序不提示你它已经在用外推值,所以更容易被忽略。

6. 验证与进阶:用标模算例校准你的颤振判据

拿到程序包后,我建议不要直接把自己的真实机翼丢进去。先找一个标模算例把流程走通,比如某个 45 度后掠的平板翼段,结构上给两阶模态,一弯一扭,理论颤振解是现成的。用 p-k 法扫一遍,把得到的颤振速度和理论值对比。对不上时优先检查三个地方:减缩频率换算是否正确、模态归一化是否统一、气动力矩阵的量纲是否能对上运动方程。这三个问题占了大多数复现失败案例的八成。

验证通过后再进阶。一个值得尝试的做法是加舵面自由度,观察舵面转动模态与机翼弯曲模态的耦合。舵面惯性释放和铰链刚度对颤振速度的影响非常敏感,程序跑出的结果可以用来做敏感度排序,找到设计里风险最高的参数。另一个做法是改变重心位置,观察颤振速度随重心后移的下降趋势,这是检验程序物理合理性最直观的方式。你还可以把马赫数从 0.3 到 0.85 拉一条曲线,看颤振速度随马赫数变化的单调性是否符合经验规律。

复现过程中有个小技巧:每次跑完一个算例,把 V-g 图的阻尼比曲线和对应频率输出到文本文件,用脚本自动扫描第一支过零模态,并记录其频率值。我习惯在程序输出之外再写一个十几行的 Python 脚本做这个判断,避免肉眼读图时看错交叉点。完成标模校准后,再用真实机翼数据替换网格和结构模型,替换时注意模态振型的单位要一致,归一化方式不要中途改变。

我从那以后每次做颤振计算,都强制自己先跑标模校正和网格收敛三件套,再进入正式工况,省掉了很多返工。希望帮到你。

本文还有配套的精品资源,点击获取

相关新闻

深入理解.NET Async/Await原理:状态机、同步上下文与性能开销

深入理解.NET Async/Await原理:状态机、同步上下文与性能开销

“每日一题&#xff1a;.NET中的Async/Await原理是什么”——这题我前后被面试官问过至少三次&#xff0c;也在组内分享时讲过两轮。我越来越觉得&#xff0c;这个题目最值钱的地方不在“语法长什么样”&#xff0c;而在于它能把线程模型、编译器机制、上下文调度和性能开销串成…

2026/10/20 19:02:01 阅读更多 →
字节开源Agent手册:可运行源码拆解调度循环与工具注册

字节开源Agent手册:可运行源码拆解调度循环与工具注册

简介&#xff1a;这份资源是字节跳动开源的Agent实践手册配套可运行源码包&#xff0c;面向企业内部业务与技术团队、AI应用开发者及希望将智能体技术落地到实际业务中的技术人员。手册系统总结了字节在飞书、抖音、教育等多条业务线落地Agent的方法、工具与规范&#xff0c;涵…

2026/10/20 19:01:00 阅读更多 →
dsh-rewind 装完没反应?按这六步从宿主版本查到快照目录

dsh-rewind 装完没反应?按这六步从宿主版本查到快照目录

dsh-rewind 装完没反应&#xff1f;按这六步从宿主版本查到快照目录 装插件最难受的状态不是失败&#xff0c;是「看起来成功了但什么也没发生」&#xff1a;插件页显示已添加&#xff0c;重启后却没有配置卡片&#xff1b;/rewind 提示未知命令&#xff1b;每条用户消息旁的 …

2026/10/20 19:01:00 阅读更多 →

最新新闻

用Design.md构建符合产品风格的原型设计:设计令牌实战指南

用Design.md构建符合产品风格的原型设计:设计令牌实战指南

上周跟某团队聊原型评审&#xff0c;对方把三个页面的设计稿拍在我面前&#xff0c;主色蓝就出现了五种&#xff0c;没有两个颜色值相同。评审会开了一个小时&#xff0c;快一半时间在争论“这个蓝到底是不是我们品牌那个蓝”。原型阶段最让人心累的从来不是画得快不快&#xf…

2026/10/20 20:19:47 阅读更多 →
跨学科类比提升创意新颖度:IdeaScientist实践指南

跨学科类比提升创意新颖度:IdeaScientist实践指南

做创意类工作的人&#xff0c;最能共鸣的一句话大概是&#xff1a;我知道要创新&#xff0c;可我没有新东西。过去三年&#xff0c;我一直在跟各种“点子枯竭”问题搏斗。做过竞品扫描&#xff0c;做过用户访谈&#xff0c;也试过各种头脑风暴法&#xff0c;但方案的新颖度始终…

2026/10/20 20:19:47 阅读更多 →
给AI编程助手装上开发方法论:六阶段工作流设计复盘

给AI编程助手装上开发方法论:六阶段工作流设计复盘

最近我在重构自己日常使用的 AI 编程工作流时&#xff0c;越来越明显地感受到一个现象&#xff1a;AI 编程助手本身的能力已经不缺了&#xff0c;缺的是“约束”。就像给一个执行力超强但毫无章法的实习生配了个无限量的咖啡&#xff0c;你让他“写个登录模块”&#xff0c;他能…

2026/10/20 20:19:47 阅读更多 →
JDBC连接MySQL全链路详解:驱动配置、PreparedStatement、事务与连接池实战

JDBC连接MySQL全链路详解:驱动配置、PreparedStatement、事务与连接池实战

JDBC 这个东西&#xff0c;很多 Java 开发天天在用&#xff0c;但真要自己从零写一遍“Java 连 MySQL 并完成增删改查”&#xff0c;不少人反而会卡在几个很基础的环节上。驱动版本不一致、时区报错、连接池参数不会填、PreparedStatement 和 Statement 搞混&#xff0c;这些坑…

2026/10/20 20:19:47 阅读更多 →
MATLAB调用REFPROP 64位DLL避坑指南

MATLAB调用REFPROP 64位DLL避坑指南

简介&#xff1a;本资源是面向工程热物理、制冷空调、化学工程等领域科研与工程人员的MATLAB-REFPROP高效调用方案&#xff0c;专为64位Windows平台设计&#xff0c;解决MATLAB环境下调用NIST官方REFPROP热力学数据库时常见的环境配置复杂、接口编译困难、DLL加载失败等痛点。压…

2026/10/20 20:19:47 阅读更多 →
技能拆解与能力建模:从抽象描述到可执行单元的系统方法

技能拆解与能力建模:从抽象描述到可执行单元的系统方法

1. 从“skills”这个词说起&#xff1a;它到底指什么“skills”这个词看起来简单&#xff0c;但放在不同语境里&#xff0c;含义差别很大。在职场语境下&#xff0c;它指的是一个人完成某项任务所具备的能力单元&#xff1b;在技术社区里&#xff0c;它常常指代一组可复用的技能…

2026/10/20 20:18:46 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/19 17:32:41 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →