当前位置: 首页 > news >正文

2024年华中杯数学建模C题基于光纤传感器的平面曲线重建算法建模解题全过程文档及程序

2024年华中杯数学建模

C题 基于光纤传感器的平面曲线重建算法建模

原题再现

  光纤传感技术是伴随着光纤及光通信技术发展起来的一种新型传感器技术。它是以光波为传感信号、光纤为传输载体来感知外界环境中的信号,其基本原理是当外界环境参数发生变化时,会引起光纤传感器中光波参量(如波长、相位、强度等)的变化,即外界信号变化会对光信号产生调制。光纤传感器具有质地轻、体积小、弯曲性能好,抗电磁干扰能力强,灵敏度高,易于安装使用等优点。光纤传感技术最重要的是实时获得结构实时应变信息,再通过解调出来的应变参数来重构得到结构的形变或位移。光纤传感器已在许多领域有实际应用,比如能够对结肠部位进行形状重建等。通过光纤传感器解调系统解调出来的应变信息,间接求出曲率等信息,并基于离散曲率信息对曲线进行重构。
在这里插入图片描述
  为了便于波长测量,在生产光纤时,已在等间距位置布设好传感器,本次传感器间距为0.6米。在测量时,先在光纤水平状态(即初始状态如图1所示)测量各个传感器位置处信号的波长,然后在受到外力后(如图2所示)测量各个传感器位置处信号的波长。波长λ与曲线曲率k之间的关系近似为k=c(λ-λ0)/λ0,其中λ0是水平光纤在初始状态下测量的波长,λ是光纤在受到外力后测量的波长,c为某个常数,这里假设为4200。本次实验分别测量了两组不同初始状态下受力前后的波长值,具体数据见表1,并请解决如下问题。
在这里插入图片描述

  问题1.请根据表1给出的波长测量数据,构建数学模型,估算平面光栅各个传感点(FBG1-FBG6)的曲率。进一步,假设初始点坐标为原点,初始的水平光纤方向为x轴,垂直方向为y轴,光纤在平面内受力后在初始位置的切线与水平方向的夹角为45o,请建立模型估算下列表格中横坐标x轴相应位置处的曲率。
在这里插入图片描述
  问题2.请根据表1波长测量数据和问题1求出的曲率,构建数学模型,分别重构平面曲线,并分析曲线的特点。
  问题3.请根据平面曲线方程y=x^3+x(0≤x≤1),以适当的等间距弧长采样,计算这些采样点的曲率。然后以采样的曲率为基础,构建数学模型,重构平面曲线,并分析重构曲线与原始曲线出现误差的原因。

整体求解过程概述(摘要)

  随着光纤通信技术在人们日常生活中的进一步普及,光纤传感技术作为一种新型的传感器技术也正逐渐发展起来。光纤传感器主要依靠光波作为传输信号、光纤作为传输载体来感知外部环境信号。由于光纤传感器具有质地轻、体积小、易弯曲、灵敏度高、抗电磁能力强的优点,其在医学领域上已经得到了较为广泛的运用。因此通过传感器返回数据,获得结构实时应变信息,再通过解调出来的应变参数来重构得到结构的形变或位移对于光纤传感器的广泛运用至关重要。
  本文主要研究了依据曲率进行平面曲线重构的问题。根据Frenet框架在二维条件下的简化模型,利用欧拉法、龙格-库塔法等算法实现了在已知离散点曲率的条件下完成了曲线的重构,并分析了模型在多方面上的误差。
  针对问题一光纤上各点曲率的估算,本文首先论证了在给定条件下曲率与反射波长间的线性关系,并根据题目所给关系式,通过传感器读数估计曲线上特定传感点曲率依次为2.219、2.217、2.233、2.230、2.236、2.222;2.986、2.978、2.973、2.981、2.984、2.975,然后分析得到了样条插值法的优越性,借助三次样条插值法重新构建了光纤曲线,再通过该重构曲线求解特定横坐标下曲线的估计曲率值,如文中图1所示。
  针对问题二根据离散点处的曲率进行曲线的重构,本文首先介绍了在三维曲线重构中广泛应用的Frenet框架,并推导出其退化至二维的一些基础算法。再利用其衍生得到的小步长欧拉法构造重构曲线。借助局部放大分析曲线类圆的特点,并绘制重构曲线的曲率图像验证该曲线类似螺旋线的走势,且保持总长相等的物理性质。得出曲线特点后本文又借助多项式拟合法再次进行曲线拟合,并将两种算法得到的曲线及曲率放在同一坐标系中对比,并无太大差异,从而证实了模型的可靠性。
  针对问题三对已知三次多项式的曲率采样与曲线重构,本文首先给出了等间距弧长采样的优点和实现过程。对已知三次曲线进行采样得到图7之后又分别采取前向欧拉法、四阶龙格-库塔法以及有限差分法完成了平面曲线的重构,并从不同类型误差的角度综合分析了这三种不同算法重构曲线的效果。以此为启发本文又探究了模拟退火法在本题目中的应用及其拟合结果,其与目标曲线高度重合的结果验证了该算法的优越性。

模型假设:

  (1) 本文假设波长λ和曲线曲率κ在题目考查范围内始终满足线性关系式(1),且关系式(1)中的c视作常数4200。
  (2) 本文假设在对获得的离散的传感点曲率进行曲线拟合时,目标曲线应始终保持较高的平滑度,从而可以使用三次样条差分法进行基本的曲线拟合。
  (3) 本文假设光纤上的传感器在水平状态和受到外力作用时都能保持稳定的等间距,且始终能保持返回该位置的波长值。
  (4) 本文假设在对取样点曲率进行三次样条插值时,函数可在采样点之间用三次多项式近似表示。

问题分析:

  问题一:这一问根据题目给出波长λ和曲线曲率κ之间的近似关系κ = c(λ−λ0)/λ0可将表1中各个传感器测得的波长数据转化为平面光栅各传感点的曲线曲率。针对第二小问,在给定起始点位置、方向及切线方向的情况下,本文将依据第一小问得到的各传感点曲线斜率,通过三次样条曲率插值法拟合曲线,并根据此拟合曲线估算出题目要求特定横坐标x轴相应位置曲率。
  问题二:这一问需要综合考虑题目所给的各传感点波长以及第一问求得的传感点曲线曲率,构建数学模型获得光栅的平面重构曲线。本文将使用欧拉法对第一问获得的离散点曲率进行曲线重构,借助Matlab将测试1和测试2的两组拟合曲线展示在图表中,并从平滑度、趋势度、拟合度等多方面分析曲线特点。
  问题三:这一问需首先对已知曲线y=x³+x进行适当的等间距弧长采样,获取多个离散曲率数据后,再基于这些数据,通过龙格-库塔法或其他算法重构一条拟合曲线。借助Matlab 工具将拟合曲线与给定曲线展示在一张图表上,观察重构曲线产生的误差并分析其产生的原因.

模型的建立与求解整体论文缩略图

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

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:

%q1.根据传感器读数返回曲率值
%插值法求解特定点的曲率值
c = 4200;%定义常数c%测试1的数据
lambda_0_test1=[1529, 1529,1529,1529,1529, 1529];lambda_test1=[1529.808, 1529.807,1529.813,1529.812,1529.814,1529.809];%测试2的数据
lambda_0_test2=[1540, 1540,1540,1540,1540, 1540];lambda_test2=[1541.095, 1541.092,1541.090,1541.093,1541.094,1541.091];%传感器位置
positions =[0, 0.6,1.2, 1.8,2.4,3.0]; %传感器位置
%计算测试1的曲率
kappa_test1= c * (lambda_test1-lambda_0_test1)./ lambda_0_test1;%创建插值函数(测试1)
curvature_interpolation_test1=fit(positions', kappa_test1','cubicinterp');%计算测试2的曲率
kappa_test2= c * (lambda_test2-lambda_0_test2)./ lambda_0_test2;%创建插值函数(测试2)
curvature_interpolation_test2=fit(positions', kappa_test2','cubicinterp');%指定横坐标位置
x_positions= [0.3, 0.4,0.5,0.6,0.7];%在这些位置估算曲率(测试1和测试2)
estimated_curvatures_test1=curvature_interpolation_test1(x_positions);estimated_curvatures_test2=curvature_interpolation_test2(x_positions);%输出估算的曲率(测试1)
disp('测试1的估算曲率值为:');for idx= 1:length(x_positions)fprintf('在x= %.1f米处的曲率:%.4f\n', x_positions(idx),estimated_curvatures_test1(idx));end%输出估算的曲率(测试2)
disp('测试2的估算曲率值为:');for idx= 1:length(x_positions)fprintf('在x= %.1f米处的曲率:%.4f\n', x_positions(idx),estimated_curvatures_test2(idx));end
 %q2.1根据问题一求得结果重构完整曲线
c = 4200;%定义常数c和传感器数据
%测试1的数据
lambda_0_test1=[1529, 1529,1529,1529,1529, 1529];lambda_test1=[1529.808, 1529.807,1529.813,1529.812,1529.814,1529.809];positions =[0, 0.6,1.2, 1.8,2.4,3.0]; %传感器位置
%计算每个传感器点的曲率
kappa_test1= c * (lambda_test1-lambda_0_test1)./ lambda_0_test1;%测试2的数据
lambda_0_test2=[1540, 1540,1540,1540,1540, 1540];lambda_test2=[1541.095, 1541.092,1541.090,1541.093,1541.094,1541.091];%计算每个传感器点的曲率
kappa_test2= c * (lambda_test2-lambda_0_test2)./ lambda_0_test2;%设置步长
ds=0.01;%重构测试1和测试2的曲线
[x_points_test1,y_points_test1]=reconstruct_curve(positions,kappa_test1,ds,pi/4);[x_points_test2,y_points_test2]=reconstruct_curve(positions,kappa_test2,ds,pi/4);%绘制测试1和测试2的曲线
figure;plot(x_points_test1,y_points_test1,'LineWidth',2);holdon;plot(x_points_test2,y_points_test2,'r-','LineWidth',2);title('ReconstructedCurves forTest1andTest 2');xlabel('x');ylabel('y');legend('Test1','Test2');gridon;holdoff;%重构函数定义,增加初始角度参数
function [x_points, y_points]=reconstruct_curve(positions,kappa,ds,initial_angle)%预分配数组
total_steps = sum(round(diff(positions)/ ds));x_points=zeros(1, total_steps+1);y_points=zeros(1, total_steps+1);%初始条件,使用给定的初始角度
theta=initial_angle;%初始角度为pi/4,对应斜率为1x=0;y=0;index=1;%存储第一个点
x_points(index) = x;y_points(index) = y;fori =2:length(positions)steps= round((positions(i)-positions(i-1))/ ds);forj= 1:stepstheta=theta+kappa(i-1)*ds;x=x+cos(theta)*ds;y=y+sin(theta)*ds;index=index+1;x_points(index)= x;y_points(index)= y;endendend
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

相关文章:

2024年华中杯数学建模C题基于光纤传感器的平面曲线重建算法建模解题全过程文档及程序

2024年华中杯数学建模 C题 基于光纤传感器的平面曲线重建算法建模 原题再现 光纤传感技术是伴随着光纤及光通信技术发展起来的一种新型传感器技术。它是以光波为传感信号、光纤为传输载体来感知外界环境中的信号,其基本原理是当外界环境参数发生变化时&#xff0c…...

使用 `typing_extensions.TypeAlias` 简化类型定义:初学者指南

使用 typing_extensions.TypeAlias 简化类型定义:初学者指南 什么是 TypeAlias?安装 typing_extensions示例代码:如何使用 TypeAlias示例 1:为简单类型定义别名示例 2:为复杂类型定义别名示例 3:结合 Union…...

如何快速批量把 PDF 转为 JPG 或其它常见图像格式?

在某些特定场景下,将 PDF 转换为 JPG 图片格式却具有不可忽视的优势。例如,当我们需要在不支持 PDF 查看的设备或软件中展示文档内容时,JPG 图片能够轻松被识别和打开;此外,对于一些网络分享或社交媒体发布的需求&…...

如何在组织中塑造和强化绩效文化?

在组织中塑造和强化绩效文化是一个系统性的工程。 一、明确绩效目标与期望 设定清晰目标 组织应根据自身战略规划,将长期目标分解为具体、可衡量、可实现、相关联、有时限(SMART)的短期和中期绩效目标。例如,一家连锁餐饮企业的…...

OllyDbg、CE简单介绍

基础知识: 想要破解软件,需要一些基础知识: 文件格式:Windows对应PE、Linux对应ELF、IOS对应Mash-0。文件格式是指操作系统规定的每个段(代码段、数据段、堆、栈)的大小、顺序等信息。 汇编语言&#xff1…...

Python函数——函数的返回值定义语法

一、引言 在Python中,函数的返回值是其核心功能之一,它使得函数能够将计算结果传递给调用者,进而推动程序的逻辑和功能实现。理解和掌握函数的返回值语法,不仅能够提高代码的模块化和可读性,还能使程序更加高效和灵活…...

【Pandas】pandas isna

Pandas2.2 General Top-level missing data 方法描述isna(obj)用于检测数据中的缺失值isnull(obj)用于检测数据中的缺失值notna(obj)用于检测数据中的非缺失值notnull(obj)用于检测数据中的非缺失值 pandas.isna() pandas.isna() 是 Pandas 库中的一个函数,用于…...

mysql 数据库表的大小

mysql 数据库表的大小 Mysql 查看数据库各个表占用空间 mysql如何查看数据库所有表大小 在MySQL中,要查看数据库所有表的大小,可以使用以下方法: 方法一:使用information_schema数据库 首先,通过命令行或图形界面…...

(6)JS-Clipper2之ClipperOffset

1. 描述 ClipperOffset类封装了对打开路径和关闭路径进行偏移(膨胀/收缩)的过程。 这个类取代了现在已弃用的OffsetPaths函数,该函数不太灵活。可以使用不同的偏移量(增量)多次调用Execute方法,而不必重新分配路径。现在可以在一次操作中对开放和封闭路…...

如何在Ubuntu中利用repo和git地址下载获取imx6ull的BSP

01-设置git的用户名和邮箱 git config --global user.name "suwenhao" git config --global user.email "2487872782qq.com"这里不设置的话后面在第5步的repo配置中还是会要求输入,而且以后进行相关操作都要输入,不妨现在就进行配置…...

Ruby On Rails 笔记5——常用验证下

3.Validation Options 3.1 :allow_nil 当验证值为nil时:allow_nil选项会跳过验证 class Coffee < ApplicationRecordvalidates :size, inclusion: { in: %w(small medium large),message: "%{value} is not a valid size" }, allow_nil: true end irb> Cof…...

JS听到了因果的回响

这是我学习JS的第11天了&#xff0c;&#xff0c;&#xff0c;我现在赶着周末学JS&#xff0c;然后还有二十多天就期末了呵呵呵。。。 图片切换模块 思路分析&#xff1a; 这是实现的代码&#xff0c;建议还是把不同的变量定义出来比较合适&#xff1a; //获取三个盒子// 小盒…...

【高中生讲机器学习】28. 集成学习之 Bagging 随机森林!

创建时间&#xff1a;2024-12-09 首发时间&#xff1a;2024-12-09 最后编辑时间&#xff1a;2024-12-09 作者&#xff1a;Geeker_LStar 嘿嘿&#xff0c;你好呀&#xff01;我又来啦~~ 前面我们讲完了集成学习之 Boooooosting&#xff0c;这篇我们来看看集成学习的另一个分支…...

硬件设计 | Altium Designer软件PCB规则设置

基于Altium Designer&#xff08;24.9.1&#xff09;版本 嘉立创PCB工艺加工能力范围说明-嘉立创PCB打样专业工厂-线路板打样 规则参考-嘉立创 注意事项 1.每次设置完规则参数都要点击应用保存 2.每次创建PCB&#xff0c;都要设置好参数 3.可以设置默认规则&#xff0c;将…...

【Elasticsearch】实现用户行为分析

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…...

python字符串处理基础操作总结

1.去掉空格或者特殊符号 input_str.strip() #去掉所有空格 input_str.lstrip() #去掉左边空格 input_str.rstrip() #去掉右边空格 def print_hi():input_str 今天天气不错&#xff0c;风和日丽 out input_str.strip()print(input_str)print(out)if __name__ __main__:print…...

电子商务人工智能指南 6/6 - 人工智能生成的产品图像

介绍 81% 的零售业高管表示&#xff0c; AI 至少在其组织中发挥了中等至完全的作用。然而&#xff0c;78% 的受访零售业高管表示&#xff0c;很难跟上不断发展的 AI 格局。 近年来&#xff0c;电子商务团队加快了适应新客户偏好和创造卓越数字购物体验的需求。采用 AI 不再是一…...

【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究

文章目录 概述&#xff1a;摘要1. 引言2. 相似误差订正算法&#xff08;核心&#xff09;3. 订正实验3.1 相似因子选取3.2 相似样本数试验3.3 时间窗时长实验 4. 订正结果分析4.1 评估指标对比4.2 风速曲线对比4.3 分风速段订正效果评估4.4 风速频率统计 5. 结论与讨论 概述&am…...

贪心算法 - 学习笔记 【C++】

2024-12-09 - 第 38 篇 贪心算法 - 学习笔记 作者(Author): 郑龙浩 / 仟濹(CSND账号名) 贪心算法 学习课程&#xff1a; https://www.bilibili.com/video/BV1f84y1i7mv/?spm_id_from333.337.search-card.all.click&vd_source2683707f584c21c57616cc6ce8454e2b 一、基本…...

精确的单向延迟测量:使用普通硬件和软件

论文标题&#xff1a;Precise One-way Delay Measurement with Common Hardware and Software&#xff08;精确的单向延迟测量&#xff1a;使用普通硬件和软件&#xff09; 作者信息&#xff1a;Maciej Muehleisen 和 Mazen Abdel Latif&#xff0c;来自Ericsson Research Eri…...

【MySQL 进阶之路】存储引擎和SQL优化技巧分析

1.InnoDB和MyISAM存储引擎的区别是什么&#xff1f;你在哪些场景下选择InnoDB&#xff1f; Innodb是高并发&#xff0c;支持事务跟行级锁&#xff0c;myisam不支持事务和行级锁&#xff0c;支持表级锁&#xff0c;不支持高并发。innodb底层是B树&#xff0c;适合范围查询&#…...

vue+elementUI从B页面回到A页面并且定位到A页面的el-tabs的某个页签

场景 做项目碰到一个需求&#xff0c;不能使用组件缓存keep-alive&#xff0c;但是需要跳转到B页面后&#xff0c;点击B页面的返回回到A页面的某个页签&#xff0c;灵机一动利用路由拦截去判断即将要跳转的页面后&#xff0c;在获取vm里对应的标签变量进行赋值&#xff0c;实现…...

{结对编程/大模型} 实践营项目案例 | 基于RAG搭建政策问答智能聊天助手

在构建政策问答智能聊天助手的过程中&#xff0c;我们采用了 RAG&#xff08;Retrieval-Augmented Generation&#xff09;技术。RAG 是一种结合了检索和生成的混合型自然语言处理技术&#xff0c;它通过检索相关信息来增强生成模型的上下文理解能力。RAG 的主要优点在于能够有…...

【Canvas与图标】乡土风金属铝边立方红黄底黑字图像处理图标

【成图】 120*120图标&#xff1a; 大小图&#xff1a; 【代码】 <!DOCTYPE html> <html lang"utf-8"> <meta http-equiv"Content-Type" content"text/html; charsetutf-8"/> <head><title>金属铝边立方红黄底黑…...

【开源】A064—基于JAVA的民族婚纱预定系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看项目链接获取⬇️&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600个选题ex…...

C++实现一个经典计算器(逆波兰算法)附源码

1、本篇要实现的内容 最近&#xff0c;大家讨论计算器的实现比较热&#xff0c;今天我也来用C和Visual Studio实现一个计算器的小程序。这里使用逆波兰算法&#xff0c;能够根据当前用户输入的算式表达式字符串&#xff0c;计算出所要的结果&#xff0c;算式字符串可以包括加、…...

Python知识分享第二十二天-数据结构入门

数据结构 “”" 基础概念: 程序 数据结构 算法 数据结构 存储和组织数据的方式. 算法 解决问题的思维, 思路, 方式. 算法的特性:独立性: 算法 思维, 是解决问题的思路和方式, 不依赖语言.5大特性: 有输入, 有输出, 有穷性, 确定性, 可行性.问: 如何衡量算法的优劣?…...

【WRF理论第十三期】详细介绍 Registry 的作用、结构和内容

目录 1. Introduction&#xff1a;介绍 Registry 的作用和功能。2. Registry Contents&#xff1a;详细描述 Registry 的结构和内容&#xff0c;包括各个部分的条目类型。2.1. DIMSPEC ENTRIES&#xff08;维度规格条目&#xff09;2.2. STATE ENTRIES&#xff08;状态变量条目…...

Android启动优化指南

文章目录 前言一、启动分类与优化目标1、冷启动1.1 优化思路1.2 延迟初始化与按需加载1.3 并行加载与异步执行1.4 资源优化与懒加载1.5 内存优化与垃圾回收控制 2. 温启动2.1 优化应用的生命周期管理2.2 数据缓存与懒加载2.3 延迟渲染与视图优化 3. 热启动3.1 保持应用的状态3.…...

【ETCD】【源码阅读】configureClientListeners () 函数解析

逐步解析 configureClientListeners 函数 configureClientListeners 是 ETCD 的一个重要函数&#xff0c;用于配置客户端通信的监听器&#xff08;Client Listeners&#xff09;。这些监听器主要负责处理外部客户端与 ETCD 服务之间的通信&#xff0c;包括 HTTP 和 gRPC 请求。…...