车削端面的表面微观形貌仿真(matlab)

2023-11-25 08:20

本文主要是介绍车削端面的表面微观形貌仿真(matlab),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

代码段禁止出现在毕业设计、商业活动中!仅供交流。

代码段

相关参数已在代码中标注,由于是自己参考论文编写的并且才接触matlab不到一周,因此采用的比较多的循环结构,程序某些地方可能多余(懒得删除),而且程序运行比较慢,大家可以参考自己进行优化。

%% initialization
clear;
close all;
clc;%% known conditions
n = 500; %Spindle speed of lathe,r/min		主轴转速
Rdt = 1.554; %Radius of arc knife,mm			刀尖圆弧半径
s = 15; %Spindle feed speed,mm/min			主轴进给速度
h = 2/1000; %Depth of cut,mm					加工深度%% Assumptions
Rw = 0.5;%Workpiece radius,mm				工件半径
Lx = 0.25;%The length of the simulation area,mm		加工长度
Ly = 0.25;%Width of simulation area,mm						加工宽度
Sf = s/n; %Feed per revolution,mm/r			进给速度(注意单位)
mx = Sf/10;
my = Sf/10;
N = ceil(Lx/mx);
M = ceil(Rw/Sf);% Overall surface roughness
Rt = Rdt - sqrt(Rdt^2-(Sf^2)/4);			%总的表面粗糙度%% Set matrix
AA = [];
k = 0:1:M;
rk = [];%% Calculate profile height
for i = 0:Nfor j = 0:N%Cartesian coordinates of pointsXij = i*mx-Lx/2;Yij = j*my-Ly/2;%Point polar coordinatesr = sqrt(Xij^2+Yij^2);theta = atan(Yij/Xij);% jidge thetaif theta < 0theta = theta +2*pi;elseif theta >= 2*pitheta = theta -2*pi;elsetheta = theta;end%compute the height of the pointhk = [];for k = 1:Mif i < N/2rk = Rw - Sf*(k + theta/(2*pi));elserk = Rw - Sf*((k-0.5) + theta/(2*pi));endhk1 = Rdt*(1-(sqrt(1-((r-rk)/Rdt)^2)));hk = [hk,hk1];endhklow = min(min(hk));% Judge height and processing depthif hklow > hhklow = h;end% save the min heightAA = [AA,hklow];end
end
%List the coordinate range
Ax = linspace(0,0.25,N+1);
Ay = Ax;% Into a square
AA = reshape(AA,[N+1,N+1]);% Drawing
surf(Ay,Ax,AA);
title('Surface microtopography');
xlabel('x-axis');
ylabel('y-axis');
zlabel('z-axis');

效果验证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考文献

[1]尹自强,李圣怡.振动影响下金刚石车削表面的形貌仿真[J].国防科技大学学报,2003(01):78-83.
[2]尹自强,李圣怡.超精密车削表面三维微观形貌仿真及特征分析[J].航空精密制造技术,2003(04):1-5.

备注

1、编写程序时,任务要求没有加入振动影响,因此在此忽略了振动因素对表面粗糙度的影响。

2、轻喷代码,新手练习的。

3、不得在毕业设计、商业中出现该代码段,优化/更改后的可以。

有问题请留言,会及时回复的。

这篇关于车削端面的表面微观形貌仿真(matlab)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423458

相关文章

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

matlab读取NC文件(含group)

matlab读取NC文件(含group): NC文件数据结构: 代码: % 打开 NetCDF 文件filename = 'your_file.nc'; % 替换为你的文件名% 使用 netcdf.open 函数打开文件ncid = netcdf.open(filename, 'NC_NOWRITE');% 查看文件中的组% 假设我们想读取名为 "group1" 的组groupName

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

C# double[] 和Matlab数组MWArray[]转换

C# double[] 转换成MWArray[], 直接赋值就行             MWNumericArray[] ma = new MWNumericArray[4];             double[] dT = new double[] { 0 };             double[] dT1 = new double[] { 0,2 };

perl的学习记录——仿真regression

1 记录的背景 之前只知道有这个强大语言的存在,但一直侥幸自己应该不会用到它,所以一直没有开始学习。然而人生这么长,怎就确定自己不会用到呢? 这次要搭建一个可以自动跑完所有case并且打印每个case的pass信息到指定的文件中。从而减轻手动跑仿真,手动查看log信息的重复无效低质量的操作。下面简单记录下自己的思路并贴出自己的代码,方便自己以后使用和修正。 2 思路整理 作为一个IC d

【电子通识】半导体工艺——保护晶圆表面的氧化工艺

在文章【电子通识】半导体工艺——晶圆制造中我们讲到晶圆的一些基础术语和晶圆制造主要步骤:制造锭(Ingot)、锭切割(Wafer Slicing)、晶圆表面抛光(Lapping&Polishing)。         那么其实当晶圆暴露在大气中或化学物质中的氧气时就会形成氧化膜。这与铁(Fe)暴露在大气时会氧化生锈是一样的道理。 氧化膜的作用         在半导体晶圆

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

libsvm在matlab中的使用方法

原文地址:libsvm在matlab中的使用方法 作者: lwenqu_8lbsk 前段时间,gyp326曾在论坛里问libsvm如何在matlab中使用,我还奇怪,认为libsvm是C的程序,应该不能。没想到今天又有人问道,难道matlab真的能运行libsvm。我到官方网站看了下,原来,真的提供了matlab的使用接口。 接口下载在: http://www.csie.ntu.edu.

Matlab/Simulink中PMSM模型的反电动势系数和转矩系数

Matlab/Simulink中PMSM模型的反电动势系数和转矩系数_matlab pmsm-CSDN博客

MATLAB层次聚类分析法

转自:http://blog.163.com/lxg_1123@126/blog/static/74841406201022774051963/ 层次聚类是基于距离的聚类方法,MATLAB中通过pdist、linkage、dendrogram、cluster等函数来完成。层次聚类的过程可以分这么几步: (1) 确定对象(实际上就是数据集中的每个数据点)之间的相似性,实际上就是定义一个表征