PFC 5.0离散元模拟实战:颗粒流代码与岩土三轴仿真教程
简介这份PFC5.0软件教程压缩包面向地质力学与岩土工程领域的工程师和科研人员系统讲解PFC离散元分析软件的核心功能。教程重点覆盖力链玫瑰图绘制、二维渗流模拟等典型应用同时深入解析DPL编程语言帮助用户掌握自定义加载步、非线性响应等进阶操作。包内共329个文件包含txt脚本说明、fis/dat程序文件、sav工程存档、dxf几何模型及pdf/pptx文档等整体大小260.05MB内容按基础操作、代码应用和案例分析分层组织便于按需查阅。已有3381人学习下载通过边坡稳定性分析、地表沉降等实际案例读者可快速上手颗粒流建模与数值模拟为科研或工程项目提供直接参考。1. PFC 5.0 教程资源从颗粒流代码到岩土仿真落地做岩土数值模拟的人大概都有过被连续介质方法折磨的经历有限元算砂土边坡破坏快到失稳那一步不收敛最后只能拿塑性区画个大概。后来我换到 PFC 5.0 做离散元第一次看到几十万颗颗粒在剪切带里重新排列才觉得「原来土体破坏长这样」。这份 PFC 教程代码资源包就是一套从建模型到后处理的完整学习路径覆盖 ball、wall、clump 建模、接触参数标定、三轴试验模拟和 fish 脚本编写适合正在做岩土、采矿、散体物料输送模拟的工程师和研究生照着跑通跑通之后再改造成自己的算例。它不解决「什么是离散元」的疑问而是解决「离散元怎么落地」的问题。2. 建模哲学与核心对象ball、wall、clump 到底在算什么2.1 从连续到离散为什么岩土问题要换一套思路有限元把土体切成一堆小单元每个单元内部假设连续、均匀算的是单元中心点的应力和应变。这个假设在破坏问题里会翻车——土体一旦出现剪切带单元会发生大变形和畸变计算就难以收敛算到一半停下来是常事。PFC 完全不切网格它把土体看成成千上万个圆形或球形颗粒的集合颗粒之间只靠接触传力。边界条件一变颗粒就重新排列和滑移物理上就是「土被挤动了」没有网格畸变这个概念。所以 PFC 特别适合做这几类问题砂土的三轴与直剪试验数值复现、边坡失稳过程中的滑面发展、巷道开挖引起的围岩破裂、溜槽和管道里的散体流动。代价是计算量大一个接近真实尺寸的模型动辄几十万颗粒跑一个工况从几小时到几天都很常见。我第一次用 PFC 时最不适应的就是它没有那种漂亮的彩色应力云图取而代之的是力链图、位移矢量图和颗粒转动量。看模拟结果时第一眼要看的不是颜色而是颗粒排布和接触力的空间分布。常见做法是先用小模型把机理摸清楚再放大到工程尺寸。比如研究边坡破坏过程先用一两千颗粒的 2D 模型确认参数标定再建三维颗粒流模型验证。另外提醒一句PFC 不同版本之间的命令差异很大网上能找到的很多老教程还是 3.x 时代的写法命令前缀长得都不一样。这份 PFC 5.0 教程的价值之一就是命令流是当前版本的风格跑起来不会因为版本语法问题卡壳。PFC 的求解过程对新手来说像个黑匣子把版本差异排除掉至少能少一个变量。2.2 三大基本对象ball、wall、clumpPFC 5.0 的模型世界里只有三种基础单元理解它们就抓住了建模型的全部操作对象。ball 是圆2D或球3D形刚体拥有半径、质量、位置坐标和速度是组成土体的基本单位。wall 是边界墙平面或圆柱面它不像颗粒那样参与力学计算作用是把颗粒约束在某个区域内或者像试验机的压头一样给试样施加荷载。clump 是把多个 ball 刚性黏合在一起的团块内部颗粒之间不再有相对位移和接触计算用来模拟形状不规则的颗粒比如角砾、碎石、隧道掘进产生的渣土。在命令流里一个 clump 的常见建立流程是先生成几个球再把它们绑定成团块; 生成 3 个球半径分别为 1.0、0.8、0.6沿 x 轴排开 ball create position 0 0 0 radius 1.0 ball create position 1.5 0 0 radius 0.8 ball create position 2.5 0 0 radius 0.6 ; 将这 3 个球组合成一个团块 clump create id 1 clump attach 1 1 2 3ball create是生成单个颗粒的命令position后面跟球心坐标radius控制颗粒半径。clump create id 1声明创建一个编号为 1 的团块clump attach后面的数字依次是团块编号和要捆绑的 ball id。团块生成之后它的内部接触就不存在了整体以一个刚体参与外部碰撞计算效率明显提高。如果你只是模拟砂土这种近球形颗粒直接用 ball 就够了模拟碎石或盾构渣土时用 clump 更贴近实际。但 clump 的代价是颗粒形状没有解析解接触检测更耗时模型规模会受限。我一般建议先用 ball 把整个流程跑通确认边界条件和加载逻辑没问题之后再把关键区域的 ball 替换成 clump不要一上来就全模型用团块。2.3 接触模型与计算循环一个时步里发生了什么颗粒之间一接触就该讨论「力怎么算」。PFC 里的接触模型种类很多初学者最常遇到的是这三种接触模型适用场景特点linear无黏性砂土、快速试探法向弹性弹簧 切向滑块计算量最小hertz颗粒弹性接触、料仓流动更接近真实球体接触对颗粒模量敏感linearpbond岩石、固结土、胶结材料在弹簧之外增加胶结强度能模拟裂开过程接触模型选完之后材料参数只剩刚度、摩擦、粘聚这几个旋钮但每个旋钮对宏观行为的影响不是线性的。比如内摩擦角主要受颗粒摩擦系数和颗粒形状影响弹性模量主要受接触刚度影响峰值强度则和粘聚强度有关。理解这个映射关系是 PFC 模拟从玄学走向工程的第一步。计算循环本身不复杂。每个时步内先根据颗粒之间的重叠量按照接触模型算出接触力再根据合力更新每个 ball 的加速度、速度和位置。PFC 会在每次求解前自动算出一个临界时步保证信息不会在一个大步内跨过相邻的颗粒。实际命令里接触属性通常是这么设置的; 设置所有接触为线性接触并给定法向、切向刚度和摩擦系数 contact model linear contact property kn 1.0e6 ks 1.0e6 fric 0.5contact model linear把当前体系里所有接触指定为线性接触模型kn、ks分别是法向和切向刚度单位是 N/mfric是颗粒间的摩擦系数。这个命令只对设置之后的接触生效如果后面又生成了新的颗粒得再设置一次这也是很多人参数「没生效」的常见来源属于 PFC 建模里最容易踩的坑。PFC 里还有一个隐蔽但重要的概念是孔隙率。porosity决定了单位体积里颗粒占多少直接影响试样的密度和强度。同样一堆颗粒孔隙率 0.3 和 0.4 的行为可能完全不同。所以建模时一定要盯住孔隙率不能只管颗粒数量。孔隙率的偏差会直接传导到应力应变曲线的形态上标定的时候尤其要小心。3. 资源包结构与学习路径一份 PFC 教程代码该按什么顺序看3.1 资源包里的典型文件类型与组织方式拿到这份 PFC 5.0 教程资源先别急着双击打开某个文件。第一步先在文件夹层面搞清楚它的编排方式这会直接影响你后面能不能快速定位到要学的命令流。通常这类教程包会包含四个部分图文手册、操作演示视频切片、命令流示例以及配套的 fish 函数库说明。图文手册负责讲原理视频切片负责带你点鼠标命令流示例才是真正的营养所在。命令流示例是一批.dat、.p2dat、.p3dat文本文件用记事本或 VS Code 直接打开就能看。.dat是 PFC 命令流的通用后缀.p2dat和.p3dat分别对应 PFC2D 和 PFC3D。执行时在图形界面的命令行输入call 文件名PFC 会逐行解释执行。建议先把文本编辑器配好「命令高亮 行号」方便读长脚本否则几百行的命令流会很吃力。我一般会把资源包内容按「基础操作」「单轴/三轴」「工程案例」分成三级。第一轮只看基础操作把 ball、wall、clump、solve 这几个命令在界面里点一遍目标是建立颗粒世界的操作直觉。第二轮直接打开三轴示例的.dat从头跟读命令流弄清楚每一行在干什么。第三轮才是改参数、换边界做自己的算例。视频切片可以当作辅助不必从头到尾看完卡住了再看对应片段效率最高。提示命令流文件路径里不要带中文特别是 Windows 环境下call中文路径经常报错。这是换机器跑 PFC 脚本最常见的坑。3.2 fish 语言入门变量、函数与循环PFC 的命令流只会「搬砖」真正让模型变得智能的是 fish 语言。fish 是 PFC 内置的脚本语言一般用来干三件事控制模型的加载状态、实时监测物理量、自定义复杂的边界条件。学 fish 不用单独看理论书把教程资源包示例文件里def ... end之间的代码读懂就能应付大部分场景。一个非常常用的 fish 片段是统计当前模型里 ball 的数量和平均半径def stats_balls local b ball.find(1) ; 按 id 查找 1 号 ball local n 0 local r_sum 0.0 loop while b # null ; 遍历整个 ball 链表 n n 1 r_sum r_sum b.r b ball.find(b.next) ; 跳到下一个 ball endloop io.out(ball count: string(n)) io.out(avg radius: string(r_sum / n)) endball.find按 id 查找颗粒返回值是一个 ball 对象指针# null是 fish 里判断对象是否为空的写法相当于其他语言的! null。b.r是访问颗粒的半径属性b.next拿到链表里下一个颗粒的 id。io.out是 fish 的标准输出函数string()把数值转成字符串方便拼接打印。这段代码虽然小却是理解 PFC 底层数据结构的钥匙。PFC 模型里的所有对象都以链式结构组织学会用ball.find加b.next遍历后面写伺服控制、导出监测数据、按半径筛选颗粒都是同一个套路。遇到需要「从整个模型里找出满足条件的对象」时第一反应应该是写一个循环遍历而不是去翻界面。fish 的变量分为全局变量和函数内局部变量local修饰的就是局部变量函数外不生效能避免不少命名污染。3.3 一条可复制的学习路径给第一次上手 PFC 5.0 的人我建议按这条路径走目标是在两周内建立「对的结果长什么样」的参照系。第一步用图形界面建一个 2D 模型生成一面墙和一百个 ball跑几十步观察颗粒下落、堆积的过程。第二步打开教程里的三轴压缩示例从头到尾执行一遍重点看加载曲线最终长什么样。第三步把命令流里的 porosity 从 0.3 改成 0.4重新跑一遍对比峰值强度和应变曲线的变化。第四步加一个 fish 函数记录轴向应变和偏应力自己画出一条应力应变曲线。第五步回到自己的课题按同样的流程建自己的几何模型。这条路径的关键是「对比」。PFC 模拟最大的困惑不是语法而是不知道算出来的结果对不对。只有通过一次次改参数并观察结果变化才能慢慢建立起微观参数与宏观力学行为之间的直觉。资源包里的多组示例正好提供了这种对比底座——把孔隙率、摩擦系数、加载速度各自改一轮收获比闷头做完所有示例都大。两周之后你应该能形成一张自己的参数表哪组参数对应哪种宏观行为这比记住任何一条命令都值钱。4. 核心代码拆解三轴压缩试验从颗粒填充到应力应变曲线PFC 教程资源包里含金量最高的通常是一整套三轴压缩试验的命令流。三轴试验在岩土数值模拟里相当于「hello world」——它规模不大但颗粒生成、固结、加载、数据输出全流程都涉及。下面按一个完整算例的执行顺序逐段拆解你可以对照着资源包里的示例文件一起看。4.1 生成试样边界先用墙把空间围起来三轴试样在 PFC 3D 里通常是一个圆柱体圆柱侧面和上下端面都由墙构成。上下端面在后续扮演试验机的压头侧面墙用于施加围压。第一步自然是搭边界model new model large-strain on model title PFC triaxial demo ; 生成圆柱形墙体高度 40半径 10 wall generate cylinder radius 10.0 height 40.0model new重置整个模型状态相当于把一个新画布铺开。model large-strain on打开大变形开关这个开关在岩土破坏问题里必须打开——墙体和颗粒发生大位移后需要重新搜索接触关系关闭时接触信息不会随几何更新结果会偏掉。wall generate cylinder生成圆柱面墙体radius控制半径height控制高度。这个命令在不同版本里的参数位置略有差异以你手里的教程手册为准。生成后建议在视图窗口旋转一下视角确认墙体开口朝向是 z 轴方向。这里有个容易被忽视的点PFC2D 里没有圆柱墙通常用四条平面墙围成一个矩形盒子对应资源包里的.p2dat文件写法完全不同别混着看。如果发现墙的开口方向不对后续颗粒会直接飞出去等于白跑。4.2 颗粒填充与初始平衡解决「颗粒一启动就飞散」边界立好之后往里面填颗粒。一个个手动ball create太慢工程上都用ball distribute按目标孔隙率批量生成; 生成颗粒半径 0.5~0.75目标孔隙率 0.36填充到圆柱墙内 ball distribute radius 0.5 0.75 porosity 0.36 ... cylinder radius 10.0 height 40.0radius 0.5 0.75是颗粒半径的上下限实际生成时按均匀分布取样。porosity 0.36是目标孔隙率注意这是一个期望值一次生成很难精确命中。生成完成后最好自己写脚本统计一下实际孔隙率差得多的话用ball scale缩放颗粒半径逼近后面避坑章节会展开说。刚生成的颗粒相互之间可能重叠极小甚至悬空直接跑solve会出现剧烈振荡严重时直接飞散。常见做法是先关掉摩擦、用低刚度让颗粒自然排布; 让颗粒在低刚度、零摩擦状态下自然稳定 contact model linear contact property kn 1.0e5 ks 1.0e5 fric 0.0 solvekn 1.0e5和ks 1.0e5是线弹性接触的法向、切向刚度取一个较小的值颗粒接触后形变柔顺不容易弹飞。fric 0.0表示接触摩擦为零颗粒之间可以自由滑动求解器更容易在较少的步数内达到平衡。等颗粒排布稳定后再把摩擦系数改回目标值重新solve一下。这套「先松弛、后加强度」的节奏是 PFC 建模里最核心的操作习惯几乎每个工程算例都要用。4.3 固结与伺服维持围压的核心逻辑三轴试验要求侧向围压恒定这不像有限元里加一个恒定的边界力那么简单——颗粒是离散的墙上的应力会随颗粒接触而变化如果不做任何控制围压会持续漂移。PFC 的经典做法是伺服控制实时监测侧墙应力应力低于目标就让侧墙向内移动一点高于目标就向外退一点。def set_servo local sxx wall.stress(1, 1) ; 读取 1 号墙当前应力 local err sxx - 100.0 ; 目标围压 100 kPa local v err * 0.01 wall.vel(1, 1, v) endwall.stress(1, 1)是访问墙体应力的常见写法第一个参数是墙的 id第二个参数是应力分量编号。err是当前应力与目标值的差乘以一个比例系数得到墙速。这个比例系数就是经典的 P 控制器取大了侧墙会振荡取小了收敛极慢需要试几轮才能定下来。如果发现围压一直稳不住先别怀疑代码把比例系数调小一半试试。光写函数还不够还得让它在求解循环里被反复调用。PFC 支持把自定义 fish 函数挂到求解器的回调机制上让函数每个时步执行一次。这样围压就能稳定在目标值附近试样的固结过程才是有效的。伺服控制代码是 PFC 所有应力边界问题的通用模板学会这一段直剪、单轴、动载模拟都能复用。4.4 加载阶段与数据导出把应力应变曲线画出来固结完成后让上端墙向下移动下端墙固定模拟排水剪切。最关键的是过程中要记录轴向应变和偏应力方便最后画出完整的应力应变曲线def record_data local strain (wall.pos(2, 1) - wall.pos(2, 2)) / 40.0 local stress wall.stress(1, 1) history add strain history add stress endwall.pos(2, 1)取的是 2 号墙在 z 方向的位置上下端墙位置差除以初始高度 40就是当前轴向应变。history add把应变和应力两路数据按求解步存成历史曲线模拟结束之后用history export导出为文本。这里40.0对应初始试样高度如果你改了模型尺寸记得同步改分母。资源包里常见的错误做法是把取值逻辑写在命令行里而不是函数里。如果只调用一次函数记录到的只有一个点曲线必然是平线。正确套路是四步定义取值函数、挂在回调上、跑solve、history export。少一步都拿不到完整曲线。导出之后的文本画图就很简单了用 Python 读两列数据matplotlib直接出图。加载速度的选择也很关键墙速不能太大否则动态效应会掩盖真实的应力应变关系这一点在避坑章还会提到。5. 避坑指南PFC 模拟中高频翻车现场与排查记录5.1 颗粒飞散一跑 solve 模型就爆炸现象solve执行不到 100 步颗粒四散飞离窗口里像放了一串鞭炮墙体都挡不住。原因颗粒生成时与墙体或其他颗粒的重叠量过大接触力瞬间巨大。PFC 是显式求解时步由颗粒刚度和质量决定刚度过大时单个时步内的位移增量也大颗粒就被「弹」出去了。解决生成颗粒时预留间隙让初始重叠控制在一个半径的 1% 以内初始稳定阶段用较低的刚度稳定后再分几步把刚度提高到目标值。如果已经飞散直接重来比重试快模型状态已经不可信了。5.2 孔隙率怎么都对不上目标值现象命令流里写了porosity 0.35一统计实际孔隙率 0.41差距大得离谱。原因ball distribute的 porosity 是启发式目标值实际结果受随机种子、颗粒半径分布、墙体形状共同影响模型越小偏差越大。解决先写一个 fish 函数统计当前孔隙率再用ball scale按比例整体缩放颗粒半径迭代逼近目标值。每次缩放系数不要超过 5%连着调几轮比一次到位稳定。我习惯在资源包里单独保留一个标定脚本每次换粒径分布时先跑它。5.3 标定参数像玄学内摩擦角怎么都调不出来现象宏观内摩擦角想要 35 度试了很多组 kn、ks、fric结果不是 28 度就是 40 度死活调不准。原因微观参数与宏观力学指标之间不是简单的一一映射。摩擦系数主要影响残余强度和内摩擦角接触刚度主要影响弹性模量平行键强度影响峰值强度几个参数相互耦合。解决一次只改一个参数其他保持基准值批量跑完记录强度指标画敏感性曲线再选点。不要同时调三个旋钮否则改完根本不知道是哪个参数起的作用。标定过程本质上是「微观参数 → 宏观曲线 → 微观参数」的迭代把每次试算的结果留档能省不少重跑的时间。5.4 加载曲线锯齿状抖动看不出峰值现象应力应变曲线前期锯齿严重后期持续上升没有明显峰值与室内试验曲线对不上。原因加载速度太快。PFC 是动态求解墙速过大时颗粒来不及重新排列应力波在试样里反复震荡另一种可能是局部阻尼没设置颗粒振动无法快速耗散。解决把墙速降低到接近准静态的范围同时检查mechanical damping局部阻尼系数常见取值 0.7。降速之后计算步数会明显增加这是正常代价为了曲线平滑不能省。如果降低墙速后曲线变好了说明之前就是动态效应在作怪。5.5 fish 函数里的变量永远不更新现象函数里打印的值第一次正确之后一直不变history 曲线是一条平线。原因fish 函数只在被调用时执行。如果只调用了一次取值逻辑自然只执行一次。PFC 不会因为你定义了函数就自动每步执行它。解决把需要每步更新的变量全部放进 fish 函数并把函数挂到求解回调或 history 记录上让求解器每步触发一次。凡是「每步都要变」的量一律在函数里取值不要用命令行全局变量。这个坑在伺服控制和数据记录里都会出现区分「定义」和「调用」是 fish 编程第一课。5.6 后处理发现墙被颗粒穿透现象模拟结束后统计颗粒坐标发现有些颗粒跑到了墙外模型边界失效。原因墙体只在接触检测范围内有效。颗粒刚度远大于墙刚度时单步位移可能越过墙体厚度或者大变形模式下墙体的接触逻辑没有正确更新。解决确认model large-strain on已开启把墙的接触检测厚度适当调大同时降低加载墙速。如果是在加载中后期穿透通常是速度过快建议把加载阶段的墙速降一半重新跑。5.7 模型太大跑不动内存和时间的平衡现象全尺寸模型颗粒数量达到百万级跑一个工况要好几天参数标定根本没法做。原因PFC 的计算开销与接触数量成正比颗粒越多、越密接触搜索越慢内存占用也同步上涨。解决先用几何相似的缩尺模型调参数再放大到工程尺寸用 clump 聚合颗粒代替大量单个 ball减少接触数量需要跑大批量参数时把单次模拟时间控制在半小时内用多个算例并行。记住一句话PFC 参数标定阶段永远用小模型确认规律之后再放大这是省时间的唯一正解。6. 二次开发思路把教程命令流改造成批量参数分析流程教程里的.dat文件都是单次运行参数写死在文件里。真做课题时你需要跑几十组参数手工改文件再手动点执行是不现实的。常见做法是把建模参数抽成文件开头的变量区几何尺寸、颗粒半径、摩擦系数、围压都集中在同一个位置然后用外部脚本循环生成多个.dat变体。改造的关键是模板里用占位符代替具体数值这样每次替换只动一行。我的习惯是写一个 Python 脚本负责循环、改参数、调起求解、收集结果import subprocess import os params [0.30, 0.35, 0.40, 0.45] # 孔隙率扫描 for p in params: with open(template.dat, r, encodingutf-8) as f: content f.read().replace(POROSITY, str(p)) with open(frun_p{p}.dat, w, encodingutf-8) as f: f.write(content) subprocess.run([pfc3d, -call, frun_p{p}.dat])模板文件把孔隙率写成占位符POROSITYPython 循环替换生成新的命令流并调起求解器执行这里pfc3d是可执行文件的示意名换成你本机安装的版本即可。每个算例跑完后输出一个 history 文本再统一读入内存用matplotlib对比多条曲线。这套流程跑通之后你可以把任意参数变成扫描对象从孔隙率扩展到摩擦系数、刚度、围压批量分析能力直接上一个台阶。除了教程里的应变和应力你还可以用 fish 扩展任何感兴趣的监测量比如配位数、各向异性组构张量、颗粒转动量。思路是一样的在def里定义计算逻辑把结果挂到 history 上。从那以后我每次拿到新的 PFC 教程资源包都不会急着跑大算例而是先建一个一两百颗粒的小模型把建模、加载、输出全流程跑通再逐步放大。这样改参数和排查问题都快得多希望帮到你。本文还有配套的精品资源点击获取

相关新闻

图书管理系统课程设计:软件工程文档与VB6+SQL Server实现解析

图书管理系统课程设计:软件工程文档与VB6+SQL Server实现解析

简介:这份资源是面向软件工程课程设计学习者与高校学生的图书管理系统完整开发文档,围绕需求分析、系统设计、数据库设计与系统实现等核心环节展开,适合正在完成课程设计、撰写实验报告或学习结构化开发流程的读者参考。压缩包内共1个doc文档…

2026/10/18 2:15:57 阅读更多 →
从字节序到内存对齐:数据在内存中的真实布局深度拆解

从字节序到内存对齐:数据在内存中的真实布局深度拆解

每个写过几年代码的人,一定都遇到过一个诡异的问题:某个变量在断点里看着是对的,可一传入函数就变了;浮点数比较怎么都对不上;结构体明明只声明了几个字段,内存占用却比想象中多一截。这些问题绝大多数都能…

2026/10/18 2:14:57 阅读更多 →
桌面应用集成大模型:本地离线推理选型与工程落地全攻略

桌面应用集成大模型:本地离线推理选型与工程落地全攻略

这个项目我记了挺久:把一个大模型真正装进桌面程序里跑起来,不联网、不上云、不开后台服务,用户双击图标就能用。今天把这轮本地离线推理的选型和工程落地过程完整复盘一遍,重点说清楚三件事——为什么坚持本地推理、模型与推理引…

2026/10/18 2:14:57 阅读更多 →

最新新闻

C#+OpenCV二维码识别:图像预处理与透视矫正实战解析

C#+OpenCV二维码识别:图像预处理与透视矫正实战解析

这个项目看起来很直接,但实际落地时坑不少。标题是“C#OpenCV识别图片二维码”,拆开看就是三件事:C#做宿主程序、OpenCV做图像处理、二维码识别作为最终目标。很多人一上来就找OpenCV的二维码识别模块,结果发现识别率惨不忍睹&…

2026/10/18 2:59:06 阅读更多 →
Flutter多因子排序:动态权重与概率统计在鸿蒙适配中的实践

Flutter多因子排序:动态权重与概率统计在鸿蒙适配中的实践

如果你维护过带排序列表的App,大概率在某个版本上被多因子业务混战折磨过:用户要综合分,运营要热度加权,产品要新品加权,风控要防刷降权,几个团队各提各的需求,最后全压在ranking模块上。我最初…

2026/10/18 2:59:06 阅读更多 →
Qwen-Agent实战:从对话到代码执行的智能体自动化框架

Qwen-Agent实战:从对话到代码执行的智能体自动化框架

如果你的工作里有一半时间是用来“搬运数据、整理表格、复制粘贴、改格式”,那么Qwen-Agent值得你花半个小时来试一下。这不是那种“跟我对话聊天”的玩具型AI工具,而是一个真正能接手干活的全能助手——给它一个任务描述,它能自动拆解步骤、…

2026/10/18 2:59:06 阅读更多 →
视频流分段返回实战:HTTP Range 原理、实现与避坑指南

视频流分段返回实战:HTTP Range 原理、实现与避坑指南

1. 视频流分段返回到底在解决什么问题第一次接触“视频流分段返回”这个需求,是在一个后台管理系统里。前端要预览一段监控回放,视频文件放在对象存储上,单个文件动辄两三百兆。最开始的做法很粗暴:后端一次性把整个文件读进内存&…

2026/10/18 2:59:06 阅读更多 →
Moonfire NVR:Rust 编写的轻量级本地 IP 摄像机录像系统

Moonfire NVR:Rust 编写的轻量级本地 IP 摄像机录像系统

简介:Moonfire NVR 是一款轻量高效、开源的网络视频录像机(NVR)系统,面向嵌入式安防开发人员、边缘视频存储方案设计者及 Rust/JavaScript 全栈工程师,解决 IP 摄像机 RTSP 流的低开销持久化存储与按需回放问题。资源包…

2026/10/18 2:59:06 阅读更多 →
开源Newsletter系统多租户安全设计:MailCheap从账户隔离到API Key撤销全链路指南

开源Newsletter系统多租户安全设计:MailCheap从账户隔离到API Key撤销全链路指南

【免费下载链接】mailcheap Newsletters where you pay for the emails you send, not for dormant subscribers, at a fraction of the price of beehiiv and the like. Open source: self-host it, or use mailcheap.ai. 项目地址: https://gitcode.com/gh_mirror…

2026/10/18 2:58:05 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/16 14:23:36 阅读更多 →