news 2026/7/2 0:15:48

四参数随机生长法QSGS算法:随机孔隙结构与微观孔隙优化处理的生成与处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
四参数随机生长法QSGS算法:随机孔隙结构与微观孔隙优化处理的生成与处理

四参数随机生长法 QSGS算法 随机孔隙结构 微观孔隙优化处理 多孔介质 随机生长软件 生成图片,可完美处理为CAD图, 可导入abaqus、ansys、comsol、fluent

最近在折腾多孔介质仿真的时候,发现生成靠谱的随机孔隙结构真是门玄学。试过一堆方法,最后被四参数随机生长法(QSGS算法)惊艳到了——这玩意儿就像玩我的世界造地形,几个参数就能搞出千变万化的孔隙结构。

先甩段Python代码热热身:

import numpy as np import matplotlib.pyplot as plt def qsgs_generator(size=100, porosity=0.6, pd=0.5, pg=0.3, iter_max=20): grid = np.zeros((size, size)) seeds = np.random.choice([0,1], size=grid.shape, p=[1-pd, pd]) grid[seeds==1] = 1 for _ in range(iter_max): new_grid = grid.copy() for i in range(1, size-1): for j in range(1, size-1): if grid[i,j] == 0: neighbors = grid[i-1:i+2, j-1:j+2] if np.sum(neighbors) >= 1: if np.random.rand() < pg: new_grid[i,j] = 1 grid = new_grid # 孔隙率校准 current_porosity = 1 - np.sum(grid)/grid.size adjust_factor = (porosity / current_porosity) ** 0.5 threshold = np.percentile(grid, 100*(1-adjust_factor)) return (grid > threshold).astype(int)

这段代码最骚的是生长概率pg的控制——就像病毒扩散的传染率,pg越大孔隙长得越奔放。跑出来的效果可以直接用matplotlib可视化:

porous = qsgs_generator(size=200, porosity=0.65) plt.imshow(porous, cmap='binary') plt.axis('off') plt.savefig('pore_structure.png', dpi=300, bbox_inches='tight')

生成二维切片只是开胃菜,用numpy的跨步技巧能轻松扩展到三维:

# 三维版本核心生长逻辑 def grow_3d(grid, pg): new_grid = grid.copy() # 用三维卷积核加速计算 kernel = np.ones((3,3,3)) neighbor_count = convolve(grid, kernel, mode='constant') growth_mask = (grid == 0) & (neighbor_count >= 1) & (np.random.rand(*grid.shape) < pg) new_grid[growth_mask] = 1 return new_grid

重点来了——怎么让这些像素图变成工程师能用的CAD模型?我的野路子是把二值图像转成SVG路径,再用FreeCAD批量拉伸。这里有个取巧的矢量化方法:

from skimage import measure contours = measure.find_contours(porous, 0.5) with open('pore.svg', 'w') as f: f.write('<svg>') for contour in contours: f.write(f'<path d="M {" L ".join(f"{x},{y}" for x,y in contour)} Z"/>') f.write('</svg>')

导入COMSOL做流固耦合分析时,发现直接扔STL文件进去会报错。血泪教训:一定要在导出前做网格光顺处理!用trimesh库预处理下能救命:

import trimesh mesh = trimesh.Trimesh(vertices=vertices, faces=faces) mesh.merge_vertices() mesh.remove_duplicate_faces() mesh.export('smoothed.stl')

玩到最后发现,这算法最神的不是生成效果,而是参数调整像调鸡尾酒——孔隙率控制基酒量,分布概率pd决定冰块分布,生长概率pg是气泡活跃度。想要仿生骨结构就把pg调低多迭代几次,想要泡沫金属就把pd拉高,比玩化学实验还上瘾。

(代码文件建议扔到GitHub配个Actions自动化流程,半夜跑参数扫描第二天直接收菜,亲测比咖啡提神)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/28 23:07:25

2026大专机械设计与制造专业必考证书清单(就业与薪资导向)

行业背景与证书重要性机械设计与制造行业对技术能力和资质认证要求较高&#xff0c;持有权威证书可显著提升就业竞争力。2026年行业趋势显示&#xff0c;智能制造、数字化设计等领域人才缺口大&#xff0c;相关证书持有者薪资普遍高于行业平均水平20%-30%。核心必考证书清单1. …

作者头像 李华
网站建设 2026/6/29 22:55:10

智能一卡通系统(门禁 / 梯控)出口英文版配置清单::系统需支持全英文界面(含管理后台、操作手册及协议文档),硬件需符合目标国电气标准。部署前需完成技术确认(认证/兼容性)、供应链备货(含10%冗余)

智能一卡通系统国际版部署核心要点检查清单智能一卡通系统&#xff08;门禁 / 梯控&#xff09;出口英文版配置清单产品类别中文名称英文名称品牌型号关键备注系统核心智能梯控一卡通系统Intelligent Elevator Access Control All-in-One Card System多奥DAIC-YKT-YWSF英文版适…

作者头像 李华
网站建设 2026/6/28 21:04:12

MATLAB电力系统双杀:短路计算与潮流设计的暴力美学

基于MATLAB的电力系统短路计算和潮流设计。 学长已经通过答辩&#xff0c;无任何问题&#xff5e; 程序代码简单易懂&#xff0c;注释清晰&#xff0c;一个小时即可理解。电力系统仿真总让人头秃&#xff1f;咱们今天来瞅瞅MATLAB里怎么用不到200行代码搞定短路计算和潮流设计。…

作者头像 李华
网站建设 2026/6/26 11:10:30

vue基于springboot的高校固定资产管理系统维修 租借

文章目录具体实现截图主要技术与实现手段系统设计与实现的思路系统设计方法java类核心代码部分展示结论源码lw获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;具体实现截图 本系统&#xff08;程序源码数据库调试部署讲解&#xff09;带文档1万…

作者头像 李华
网站建设 2026/7/1 4:32:30

10 个 AI 论文辅助软件,精准还原数学建模论文并提升可读性

在开始详细介绍之前&#xff0c;先为大家总结10个推荐AI工具的核心对比。以下表格简明扼要地对比了这些工具的主要优势、处理时间和适配平台&#xff0c;方便Java毕业论文用户快速筛选&#xff1a; 工具名称 主要用途 处理时间 适配平台 关键优势 askpaper 降AIGC率&…

作者头像 李华
网站建设 2026/7/1 21:44:24

医疗影像MobileNet轻量化稳住推理

&#x1f4dd; 博客主页&#xff1a;jaxzheng的CSDN主页 医疗影像轻量化新范式&#xff1a;MobileNet如何稳住推理精度 目录 医疗影像轻量化新范式&#xff1a;MobileNet如何稳住推理精度 引言&#xff1a;轻量化浪潮下的隐忧 一、技术应用场景&#xff1a;从“能用”到“可靠”…

作者头像 李华