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名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/62484.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【H2O2|全栈】MySQL的基本操作(三)

目录 前言 开篇语 准备工作 案例准备 多表查询 笛卡尔积 等值连接 外连接 内连接 自连接 子查询 存在和所有 含于 分页查询 建表语句 结束语 前言 开篇语 本篇继续讲解MySQL的一些基础的操作——数据字段的查询中的多表查询和分页查询,与单表查询…

从单体到微服务:如何借助 Spring Cloud 实现架构转型

一、Spring Cloud简介 Spring Cloud 是一套基于 Spring 框架的微服务架构解决方案,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。 Spring Cloud 提供了诸如服务发现、配置管理、负载均衡、断路器、消息总线…

yarn : 无法加载文件 C:\Users\L\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁

关于执行安装yarn命令后执行yarn -v报错: 先确认执行安装yarn命令是否有误 # 安装yarn npm install yarn -g 终端输入set-ExecutionPolicy RemoteSigned 当然如果yarn -v仍然执行失败,考虑使用管理员方式运行IDEA, 注:如上操作…

java全栈day12-后端Web实战(IOC+DI)

前言:前面的基础知识了解后进入实战篇,从以下四个方面进行准备 一、开发规范 1.1前后端分离开发 前言回顾 二、Restful风格 引言:前端与后端在进行交互的时候,所使用的url风格叫Restful。 2.1概述 小结 2.2环境准备 2.2.1apif…

链式设计模式——装饰模式和职责链模式

一、装饰模式 1、概述 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。 ConcreteComponent :是定义了一个具体的对象,可以给这个对象添加一些职责;Decorator :装饰抽象…

Java——容器(单例集合)(上)

一 容器介绍 容器,是用来容纳物体、管理物体。生活中,我们会用到各种各样的容器。如锅碗瓢盆、箱子和包等 程序中的“容器”也有类似的功能,用来容纳和管理数据。比如,如下新闻网站的新闻列表、教育网站的课程列表就是用“容器”来管理 视频…

word poi-tl 表格功能增强,实现表格功能垂直合并

目录 问题解决问题poi-tl介绍 功能实现引入依赖模版代码效果图 附加(插件实现)MergeColumnData 对象MergeGroupData 类ServerMergeTableData 数据信息ServerMergeTablePolicy 合并插件 问题 由于在开发功能需求中,word文档需要垂直合并表格&…

GPT系列模型简要概述

GPT-1:(0.117B参数量,0.8B words预训练数据) 动机: 在RNN和Transformer之间,选择了后者。 和《All your need is Attention》翻译模型的Encoder-Decoder架构相比,只保留Decoder,因此去掉了Cross…

汽车升级到底应不应该设置“可取消“功能

最近,汽车OTA(Over-the-Air)升级频频成为车主讨论的热点。有些车主反映,一些升级增加了实用功能,而另一些却让体验变得复杂甚至带来不便。于是,大家不禁发问:汽车升级功能究竟应不应该允许“可取…

单片机 PCB 设计要点

一、引言 单片机作为现代科技的重要组成部分,其 PCB 设计至关重要。本文将详细介绍单片机 PCB 设计的要点和流程,帮助读者更好地掌握这一关键技术。 在电子世界的浩瀚星海中,单片机无疑是现代科技中一颗闪烁的明珠。作为掌握嵌入式系统的基…

Ubuntu中配置交叉编译工具的三条命令的详细研究

关于该把下面的三条交叉编译配置语句加到哪里,详情见 https://blog.csdn.net/wenhao_ir/article/details/144326545 的第2点。 现在试解释下面三条交叉编译配置语句: export ARCHarm export CROSS_COMPILEarm-buildroot-linux-gnueabihf- export PATH$…

wlanapi.dll丢失怎么办?有没有什么靠谱的修复wlanapi.dll方法

在遇到各种系统文件错误当中,其中之一就是“wlanapi.dll文件丢失”的问题。这种问题通常发生在Windows操作系统上,特别是当系统试图执行与无线网络相关的任务时。wlanapi.dll是一个重要的系统文件,它负责处理Windows无线网络服务的许多功能。…

Python之因子分析详细步骤

1.数学原理 1.1数学模型 1.2正交因子模型假设 注意:下面的推导都是基于这一假设。因此,这里的模型都是属于正交因子模型。 1.3正交因子模型的协方差结构 1.4各类方差贡献的介绍 在1.3正交因子模型的协方差结构中,我们介绍了“方差贡献”&…

unity3d—demo(2d人物左右移动发射子弹)

目录 人物代码示例: 子弹代码示例: 总结上面代码: 注意点: 人物代码示例: using System.Collections; using System.Collections.Generic; using UnityEngine;public class PlayerTiao : MonoBehaviour {public f…

echarts使用整理

4、条形分区统计 <div ref"chartsVal1" class"chartsline-div"></div> const chartsVal1 ref(null); const chartsVal1Title ref(运行时间统计);drewCharts2(chartsVal1, chartsVal1Title.value);function drewCharts2(id, title) {const m…

ubuntu下的chattts 学习6:音色固定的学习

魔搭社区 该区提供了随机种子级音乐的试听与下载。 spk torch.load(<PT-FILE-PATH>) params_infer_code {spk_emb: spk, } 略 测试过程&#xff1a; 1.先建一个文件夹&#xff1a;然后从上面的网站上下载了两个。放在里面测试 2 2.测试代码 import ChatTTS impo…

数据集的重要性:如何构建AIGC训练集

文章目录 一、为什么数据集对AIGC如此重要&#xff1f;1. 数据决定模型的知识边界2. 数据质量直接影响生成效果3. 数据集多样性提升模型鲁棒性 二、构建AIGC训练集的关键步骤1. 明确目标任务和生成需求2. 数据源的选择3. 数据清洗与预处理4. 数据标注5. 数据增强 三、针对不同类…

47 基于单片机的书库环境监测

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机&#xff0c;采用DHT11湿度传感器检测湿度&#xff0c;DS18B20温度传感器检测温度&#xff0c; 采用滑动变阻器连接数模转换器模拟二氧化碳和氧气浓度检测&#xff0c;各项数值通过lc…

【操作系统】每日 3 题(五十五)

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?typeblog &#x1f4e3;专栏地址&#xff1a;https://blog.csdn.net/newin2020/category_12820365.html &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享操作系统面试中常见的面试题给大家~ ❤️…

MySQL | 尚硅谷 | 第13章_约束

MySQL笔记&#xff1a;第13章_约束 文章目录 MySQL笔记&#xff1a;第13章_约束第13章_约束 1. 约束(constraint)概述1.1 为什么需要约束1.2 什么是约束1.3 约束的分类演示代码 2. 非空约束2.1 作用2.2 关键字2.3 特点2.4 添加非空约束2.5 删除非空约束演示代码 3. 唯一性约束3…