2017年亚太杯APMCM数学建模大赛B题喷雾轨迹规划问题求解全过程文档及程序
2017年亚太杯APMCM数学建模大赛
B题 喷雾轨迹规划问题
原题再现
喷釉工艺用喷釉枪或喷釉机在压缩空气下将釉喷入雾中,使釉附着在泥体上。这是陶瓷生产过程中一个容易实现自动化的过程。由于不均匀的釉料在烧制过程中会产生裂纹,导致工件报废,因此要求喷涂过程中喷涂的釉料厚度尽可能均匀。
在实际的空气喷涂中,压缩空气通常布置在喷枪嘴的两侧,雾锥被挤压成椭圆锥,漆雾形成的喷雾锥覆盖的平面上的区域是椭圆,半长轴为a,半短轴为b,如图1所示。
它在椭圆分布区域中满足椭圆双β分布模型:
式中:a——喷淋椭圆半长轴(mm);b——喷淋椭圆的半短轴(mm);maxz——漆膜最大厚度;β1−x方向截面β分布指数;β2−y方向截面中β分布的指数。
有研究表明,雾化压力P1、隔膜泵压力P2和喷雾距离h是影响上述参数的主要因素,它们之间的关系如下:
上述模型为单点喷枪喷涂模型。然而,在实践中,喷枪需要沿着计划的路径移动,以便要喷涂的工件表面均匀地覆盖釉,如图2所示。
由于单点喷涂时,雾锥区域厚度中间偏大,两侧偏薄,为保证喷涂表面均匀,雾锥将在图3中相邻路径重叠。
基于上述背景,我们尝试探讨以下四个问题:
1、根据以上资料,如果喷枪的喷涂方向始终保持不变(如图4所示),请计算平面内喷涂的累积情况,找出喷枪轨迹的合适重叠间隔(P1和P2取0.2Mpa,h取225mm)。
2、对于曲面z=−x~2+x−xy(−10≤x≤10,−10≤y≤10),确定问题1中计算的喷涂间隔是否适用。如果没有,请重新规划喷枪轨迹,并计算重叠间隔,使釉面厚度差小于10%(不同轨迹的间隔可以不同,P1和P2取0.2Mpa,h可根据实际需要选择)。
3、喷涂过程中,如果喷枪的喷涂方向始终是雾锥中心(如图5所示)喷涂点的法线方向,其他条件不变,请重新计算问题2的结果。
4、问题3的结果是否适用于任何曲面z=f(x,y)?喷涂路径规划是否有通用解决方案
整体求解过程概述(摘要)
机器人上釉作为提高陶瓷生产过程自动化程度的一种新方法,对提高上釉效率有一定的作用。因此,探索机器人釉料在不同工件表面条件下的自动轨迹规划对提高陶瓷工艺现代化水平具有重要意义。
平面釉料自动轨迹规划:首先,将微积分法与椭圆双β分布模型相结合,建立以釉料厚度均匀性为目标的平面釉料轨迹优化模型。最后,对不同横截面的釉膜厚度模型进行仿真分析,验证了模型的正确性。
曲面(垂直于水平方向)施釉轨迹规划:首先,采用投影法对椭圆双β分布模型进行修正,得到施釉方向垂直于水平方向时曲面的釉膜厚度分布模型
确定方向。然后,建立曲面轨道优化模型,对最小釉厚差进行优化。最后证明了问题1的重叠区间不适用于问题2的曲面,问题2的重叠区间d的最优解为89.36~95.05mm。
曲面(沿喷点法向)施釉轨迹规划:首先采用投影法修正平面椭圆双β分布模型,建立喷釉方向为雾锥中心喷点法向时的釉膜厚度分布模型。然后,基于切片算法,以涂层均匀性为优化目标,建立了表面喷釉轨迹优化模型。最后证明了曲面重叠间隔d的最优解为80.26~90.53mm。
任意曲面釉面轨迹规划:首先利用β角、θ角、喷枪高度等参数描述不同曲面之间的差异。通过改变不同的地面观测参数,重复发射装置的参数。最后,采用黄金分割迭代法求出d值,并编制了任意面釉轨迹规划程序。通过MATLAB仿真验证了模型的正确性,结果符合标准。
模型假设:
➢ 边缘厚度对喷涂层厚度分布模型没有影响。
➢ 喷涂机器人喷涂一定高度,不改变。
➢ 机器人在涂布过程中的速度恒定,没有突变。
问题重述:
问题背景
喷釉是陶瓷生产工艺的重要组成部分,由于釉面不均匀在烧成过程中会产生裂纹,导致零件报废,因此喷釉工艺要求喷釉尽可能厚,同时也降低了效率。
机器人上釉的出现为提高上釉效率提供了一条新途径,对提高陶瓷生产过程的自动化具有重要意义。
我们的工作
➢ 分析了机器人喷釉的平面釉厚度分布,设计了平面釉自动轨迹优化方案。
➢ 探讨了机器人搪瓷上釉方向与水平方向垂直时曲面上釉膜厚度的分布情况,建立了该条件下曲面上釉的自动轨迹优化方案。
➢ 研究了沿锥体法向喷涂的锥体曲面上釉膜厚度的分布。建立了该条件下表面施釉自动轨迹的优化方案。
➢ 探究工件表面是否为任意曲面,是否有通用的自动喷釉机器人优化方案来解决喷釉路径规划问题。
模型的建立与求解整体论文缩略图
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可
程序代码:
部分程序如下:
[x,y]=meshgrid(-10:1:10);
z=-x.^2+x-x.*y;
mesh(x,y,z);
title('curved surface z')
xlabel('X');
ylabel('Y');
zlabel('Z');
[x,y]=meshgrid(-10:1:10);
z=-x.^2+x-x.*y;
mesh(x,y,z);
title('curved surface z')
xlabel('X');
ylabel('Y');
zlabel('Z');
hold on
ezmesh('0')
A=[129.8665 -55.2435 1.7436 -297.3908;52.5130 -5.7480 0.7394 -128.6368;59.7245 393.9655 -0.1244 150.0184;-7.0125 34.5045 0.0284 -9.5229;-4.6130 18.3620 0.0113 -0.3924];
B=[0.2 0.2 225 1];
C=A*B'
a=C(1);
b=C(2);
Zmax=C(3);
beta1=C(4);
beta2=C(5);
Zmin1=Zmax*(1-(a^2/b^2))^(beta2-1);
y1=sqrt((b^2)*(1-exp((1/(beta2-1))*log((Zmax-Zmin1)/Zmax))));
d1=abs(a-y1);
Zmin2=Zmax*(1-b^2/a^2)^(beta1-1);
x2=sqrt((a^2)*(1-exp((1/(beta1-1))*log((Zmax-Zmin2)/Zmax))));
d2=abs(b-x2);
A=[129.8665 -55.2435 1.7436 -297.3908;52.5130 -5.7480 0.7394 -128.6368;59.7245 393.9655 -0.1244 150.0184;-7.0125 34.5045 0.0284 -9.5229;-4.6130 18.3620 0.0113 -0.3924];
B=[0.2 0.2 225 1];
C=A*B';
a=C(1);
b=C(2);
Zmax=C(3);
beta1=C(4);
beta2=C(5);
Zmin1=Zmax*(1-(a^2/b^2))^(beta2-1);
y1=sqrt((b^2)*(1-exp((1/(beta2-1))*log((Zmax-Zmin1)/Zmax))));
d1=abs(a-y1);
Zmax=C(3);
Z1=Zmax
z=-1+1-(a-d1+1);
h1=0-z;
h=B(3)+h1;
B1=[0.2 0.2 h 1];
C1=A*B1';
a1=C1(1);
b1=C1(2);
Zmax=C1(3);
beta1=C1(4);
beta2=C1(5);
Z2=Zmax*(1-1/a1^2)^(beta1-1)*(1-(a-d1+1)^2/(b1^2*(1-1/a1^2)))^(beta2-
1);
if Z1==Z2fprintf('the overlap interval is suitable')
elsefprintf('the overlap interval isn’t suitable')
end
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可
相关文章:

2017年亚太杯APMCM数学建模大赛B题喷雾轨迹规划问题求解全过程文档及程序
2017年亚太杯APMCM数学建模大赛 B题 喷雾轨迹规划问题 原题再现 喷釉工艺用喷釉枪或喷釉机在压缩空气下将釉喷入雾中,使釉附着在泥体上。这是陶瓷生产过程中一个容易实现自动化的过程。由于不均匀的釉料在烧制过程中会产生裂纹,导致工件报废࿰…...

柏拉图式爱情是同性之爱,绘画是理念世界的二次模仿
公元前427年,柏拉图出生在雅典。 柏拉图20岁成为苏格拉底的弟子。 有一次,柏拉图问苏格拉底:“什么是爱情?”苏格拉底说:“请穿越麦田,摘一株最大最金黄的麦穗回来。不走回头路,只能摘一次。”…...

【滴滴出行安全应急响应平台DSRC2倍积分卡】
1、使用方法 2、券(记得点个关注,做一下数据)...

HashMap 元素添加流程
在Java 1.8中,HashMap的元素添加流程: 计算键的哈希值:当调用put(key, value)方法时,首先会计算键(key)的哈希值,这个哈希值用来确定元素在内部数组中的位置。确定位置:通过哈希值&…...

甲亢_甲状腺功能亢进_Methimazole甲巯基咪唑
美国医生 Methimazole甲巯基咪唑 is used to treat hyperthyroidism, a condition where the thyroid gland produces too much thyroid hormone. It is also used before thyroid surgery or radioactive iodine treatment. Methimazole is an antithyroid medicine. It wor…...

【Maven】VSCode Java+Maven 环境配置
0x00 前言 没写过 Java,得配个带 Maven 的编码环境,不太明白,试试看顺便记录一下 0x01 配置过程 安装 jdk1.8 后,找到安装位置: (base) dianCD-Ali doraemon % /usr/libexec/java_home -V Matching Java Virtual Ma…...

【目标检测】非极大值抑制NMS的原理与实现
非极大值抑制(Non-Maximum Suppression,NMS)是目标检测中常用的一种技术,它的主要作用是去除冗余和重叠过高的框,并保留最佳的几个。 NMS计算的具体步骤如下: 首先根据目标检测模型输出结果,得…...

应用程序架构是如何演变的
【squids.cn】 全网zui低价RDS,免费的迁移工具DBMotion、数据库备份工具DBTwin、SQL开发工具等 如果您一直在开发或以某种方式参与应用程序架构,那么在过去的几年中您肯定看到了许多变化。有很多不同类型的架构和技术陆续出现然后消失,以至于…...

云原生Docker Cgroups资源控制操作
目录 资源控制 cgroups四大功能 CPU 资源控制 设置CPU使用率上限 进行CPU压力测试 设置50%的比例分配CPU使用时间上限 设置CPU资源占用比(设置多个容器时才有效) 设置容器绑定指定的CPU 对内存使用的限制 限制容器可以使用的最大内存 限制可用的…...

【Java集合类面试二十五】、有哪些线程安全的List?
文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:有哪些线程安全的List&a…...

分布式系统的链路追踪,让你轻松解决订单无法查看的问题!
你好,我是积极活泼的小米!今天我要跟大家聊聊分布式系统的链路追踪,这个话题对于我们在技术领域工作的小伙伴们来说,可是非常重要的哦! 背景 昨天,产品大佬丰哥找到了我,他抱怨说分销员的订单…...

基于生产数据测试设计、测试回归
问题背景 QA搬砖日常中,你会不会有这样的问题,测试设计时有些场景没考虑到,上线就因为测试中没覆盖到的场景而导致缺陷溢出。从缺陷分类统计来看,类似这样的例子占比是很高的。 解决措施 仅依靠测试者设置的场景,模拟…...

装了mac os 14.0 sonoma 在腾讯会议投屏时候,无法设置麦克风权限问题
愿意:界面上直接空白的,无法手动或自动弹出要配置授权的软件 解决思路: 给 TCC.db 增加1条权限记录 添加到数据库里 /usr/bin/sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO main.access (service, cli…...

ARM 汇编指令 orreq 的使用
orreq 阅读代码时,发现有个【组合指令】 orreq, orr 一般是 OR,也就是或操作,后面加个 eq 表示什么呢? 比如下面的代码:前面一个操作, tst,好像没做实际的操作,可能影响…...

Python---练习:for循环 求1-100的和/所有偶数的和
案例: 使用for循环,求1 ~ 100的和 之前用while循环,做过算出1--100的和。 相关链接: Python--练习:使用while循环求1..100的和-CSDN博客 结合着看看for循环怎么实现。 思考: 先把for循环的基本语法写…...

APP逆向基础(APK流程)
APK的基本结构 Android体系结构和APK基本结构-CSDN博客 APK 打包流程 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )_adnroid 安装包优化,打指定资源_韩曙亮的博客-CSDN博客 APK安装流程...

Tomcat调试端口被占用解决办法
Tomcat调试端口被占用解决办法 tomcat启动报错: Unable to open debugger port (127.0.0.1:52718): java.net.BindException "Address already in use: NET_Bind"这个错误表明Tomcat服务器在启动时尝试打开调试端口(通常是在调试模式下使用的…...

feign之间相互通信RequestInterceptor拦截器失效
1、问题描述 前段时间碰到一个问题,有两个服务A和服务B,通过feign进行通信。因为feign之间无法直接传递请求头,只能传请求体。因此需要借助RequestInterceptor拦截器获取到请求头。服务B中设置了RequestInterceptor拦截器,但是在A…...

GoLong的学习之路(十)语法之函数
书接上回,上回书说到,结构体,一言之重在于体。一体之重在于经。经之重甚于骨。这张就说go的经络—函数。 文章目录 函数函数如何定义参数可变参数 返回值多返回值 函数类型与变量 高阶函数函数作为参数函数作为返回值匿名函数闭包defer语句底…...

随笔:使用Python爬取知乎上相关问题的所有回答
项目中数据分析的需要自己从知乎某个专门的问题上爬数据,但众所周知,知乎的问题的显示方式有点胃疼(指滑动后下翻加载更多回答,还经常卡住),翻了翻网上的教程发现有的要么就是很老了要么就是付费的…...

ORB-SLAM安装过程遇到问题记录整理
一、ORB-SLAM2 1.c error: ‘decay_t’ is not a member of ‘std’ 如下图所示: 解决方法: 修改 ORB_SLAM的 CMAKELIST.txt文件, 将set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdc11") 修改为 set(CMAKE_CXX_STANDARD 14) 2…...

Ubuntu22.0.4安装svn服务
1、检查是否已安装 1.1、检查是否已安装 svnserve --version1.2、删除SVN遗留文件 sudo apt-get remove --purge subversion2、安装svn apt-get install subversion3、新建存储目录 sudo mkdir /data/svn sudo mkdir /data/svn/repository4、更改文件夹的读写权限 sudo…...

GNSS边坡位移监测仪在自然灾害应急能力提升工程领域的应用
GNSS边坡位移监测仪在自然灾害应急能力提升工程领域的应用 二、工作原理 GNSS的基本原理是测量出已知位置的卫星到用户接收机之间的距离,然后综合多颗卫星的数据就可知道接收机的具体位置。要达到这一目的,卫星的位置可以根据星载时钟所记录的时间在卫星…...

k8s客户端配置
K8s客户端安装 前提 K8s服务部署成功,如下 角色 IP地址 操作系统 主机名 Kubernetes版本 master节点 172.16.4.167 CentOS 7.9 k8s-master01 v1.28.2 工作节点1 172.16.4.168 CentOS 7.9 k8s-worker01 v1.28.2 工作节点2 172.16.4.169 CentOS 7.9…...

网络套接字编程
1.基础预备知识 1.1源ip和目的ip 在IP数据包头部中, 有两个IP地址, 分别叫做源IP地址, 和目的IP地址 源IP地址表示发起通信的设备的IP地址。它是数据包的出发点,标识了数据包的来源。当一个设备发送数据包到网络上的其他设备时,该数据包的源IP字段会被…...

Node编写更新用户信息接口
目录 前言 定义路由和处理函数 验证表单数据 实现更新用户基本信息的功能 前言 继前面几篇文章,本文介绍如何编写更新用户信息接口 定义路由和处理函数 路由 // 更新用户信息接口 router.post(/userinfo, userinfo_handler.updateUserinfo) 处理函数 // 导…...

Delphi解决 openssl DLL 与 Indy 的SSL/TLS 连接问题
昨天,突然间,我的一个 Delphi 程序无法连接到互联网上的各种WMS服务器。我收到以下错误消息: 使用 SSL 连接时出错。错误 1409442E:SSL 例程:ssl3_read_bytes:tlsv1 警报协议版本 由于我使用的是最新版本…...

单片机仿真设计打包项目
小伙伴们在仿真设计时会遇到各种各样的问题,网上的资料可能不全或者很贵。 这篇也不单纯为了打广告,主要是希望实实在在帮到学单片机的同学,大家不要一有问题就各种找dai zuo,做的好不好是一回事儿,关键是它费&#x…...

Java练习题-输出二维数组对角线元素和
✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 🔥系列专栏:Java练习题 💬个人格言:不断的翻越一座又…...

Python调用ctype的动态库时出现的问题记录
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、动态库调用问题1.问题发现2.解决问题 总结 前言 提示:这里可以添加本文要记录的大概内容: 之前用公司算法同事写的c算法编译成的d…...