news 2026/6/25 20:48:48

岩土颗粒粗糙度计算,采用傅里叶展开。 matlab源代码 生成颗粒均方根粗糙度,算术平均粗糙度

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
岩土颗粒粗糙度计算,采用傅里叶展开。 matlab源代码 生成颗粒均方根粗糙度,算术平均粗糙度

岩土颗粒粗糙度计算,采用傅里叶展开。 matlab源代码 生成颗粒均方根粗糙度,算术平均粗糙度。 方法来自《非规则颗粒形态表征与离散元模拟方法的研究》清华大学出版社 matalb源代码

傅里叶展开在岩土颗粒形态分析中的应用挺有意思。咱们今天直接上干货,用MATLAB实现颗粒轮廓的粗糙度计算。先看核心思路:把颗粒轮廓坐标展开成傅里叶级数,通过高频分量分析表面起伏特征。

先整点基础代码框架。读取颗粒轮廓数据这个步骤不能省,假设咱们的轮廓数据是极坐标系下的半径数组:

theta = linspace(0, 2*pi, 360); % 极角均匀采样 r = load('particle_radius.txt'); % 从文件加载半径数据

接下来是傅里叶变换的重头戏。这里有个坑要注意——原始数据需要做周期性延拓处理,否则边界跳变会污染频谱:

N = length(r); mean_r = mean(r); r_centered = r - mean_r; % 消除直流分量 % 加汉宁窗减少频谱泄漏 window = hanning(N)'; r_windowed = r_centered .* window; % 执行FFT fft_coeff = fft(r_windowed)/N;

傅里叶系数处理是关键。根据清华那本书里的方法,前10%的低频分量对应颗粒整体形状,后面的是粗糙度贡献。咱们取第30阶之后的谐波:

cutoff = 30; % 经验阈值 roughness_coeff = fft_coeff; roughness_coeff(1:cutoff) = 0; % 滤除低频 roughness_coeff(end-cutoff+1:end) = 0; % 对称处理

重构粗糙度轮廓时,记得恢复直流分量:

roughness_profile = real(ifft(roughness_coeff*N)) + mean_r;

计算指标部分最带劲。均方根粗糙度RMS和算术平均粗糙度Ra这两个参数,实现起来相当直观:

deviation = roughness_profile - mean_r; RMS = sqrt(mean(deviation.^2)); Ra = mean(abs(deviation)); disp(['颗粒粗糙度指标: RMS=',num2str(RMS),' Ra=',num2str(Ra)])

代码跑起来后可能会遇到频谱混叠问题。如果发现重构曲线有锯齿,试试调整采样点数到2的整数次幂。比如把360点插值到512点,这样FFT效率更高,频谱分辨率也更好。

实际测试中发现,花岗岩颗粒的RMS通常在0.02-0.05mm之间,而砂岩颗粒能达到0.1mm以上。这个差异在离散元模拟中会显著影响接触力的计算结果,所以参数标定千万别偷懒。

最后提醒下,原始轮廓数据的采集质量直接影响结果。用光学扫描仪获取数据时,记得做各向同性滤波处理,不然方向性噪声会污染高频分量。搞定这些细节,粗糙度分析才能真正指导工程实践。

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

Informed RRT*实现椭圆启发式采样

我来为您添加Informed RRT*功能&#xff0c;在找到第一条路径后使用椭圆采样来加速收敛。以下是需要新增的函数和修改&#xff1a; 以下代码只含新增的部分 class RRTStar { private:// 在私有成员变量中添加bool pathFound;double bestPathCost;std::shared_ptr<Node> g…

作者头像 李华
网站建设 2026/6/25 15:40:09

27.MPSOC FPGA 驱动PCF8574

上一篇记录了AHT20,本篇记录下PCF8574&#xff0c;原理类似&#xff1a;#include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include <unistd.h> #include <sys/ioctl.h> #include <linux/i2c-dev.h> #include <errno.h> …

作者头像 李华
网站建设 2026/6/25 20:30:31

通信系统仿真:数字调制与解调技术_(28).Simulink通信系统仿真

Simulink通信系统仿真 1. Simulink概述 1.1 Simulink简介 Simulink是MATLAB的一个附加产品&#xff0c;主要用于动态系统建模、仿真和分析。Simulink提供了一个图形用户界面&#xff08;GUI&#xff09;&#xff0c;使用户可以通过拖放操作来构建复杂的系统模型。在通信系统仿真…

作者头像 李华
网站建设 2026/6/25 15:43:15

论文AIGC率太高?5个超实用降AI工具分享,AI率降低80%以上

最近身边好多同学都在为论文的AI率头疼。明明自己认真改过好几遍了&#xff0c;查重系统还是显示AIGC率爆表&#xff0c;导师那关根本过不去。现在用AI工具辅助确实提升了效率&#xff0c;但怎么让内容更“人性化”&#xff0c;避免被系统标红&#xff0c;这才是关键。 我自己试…

作者头像 李华
网站建设 2026/6/25 15:36:54

团队合并与拆分的判断标准

团队合并与拆分的判断标准&#xff0c;核心是服务于组织的战略目标、效率和敏捷性。合并的判断标准主要基于“协同增效”和“规模效益”&#xff0c;当多个团队目标高度一致、资源重叠或需要集中力量办大事&#xff08;如攻坚核心项目&#xff09;时&#xff0c;应考虑合并。 而…

作者头像 李华