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题 基于光纤传感器的平面曲线重建算法建模 原题再现 光纤传感技术是伴随着光纤及光通信技术发展起来的一种新型传感器技术。它是以光波为传感信号、光纤为传输载体来感知外界环境中的信号,其基本原理是当外界环境参数发生变化时,…...
使用 `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。文件格式是指操作系统规定的每个段(代码段、数据段、堆、栈)的大小、顺序等信息。 汇编语言࿱…...

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天了,,,我现在赶着周末学JS,然后还有二十多天就期末了呵呵呵。。。 图片切换模块 思路分析: 这是实现的代码,建议还是把不同的变量定义出来比较合适: //获取三个盒子// 小盒…...

【高中生讲机器学习】28. 集成学习之 Bagging 随机森林!
创建时间:2024-12-09 首发时间:2024-12-09 最后编辑时间:2024-12-09 作者:Geeker_LStar 嘿嘿,你好呀!我又来啦~~ 前面我们讲完了集成学习之 Boooooosting,这篇我们来看看集成学习的另一个分支…...

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

【Elasticsearch】实现用户行为分析
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…...

python字符串处理基础操作总结
1.去掉空格或者特殊符号 input_str.strip() #去掉所有空格 input_str.lstrip() #去掉左边空格 input_str.rstrip() #去掉右边空格 def print_hi():input_str 今天天气不错,风和日丽 out input_str.strip()print(input_str)print(out)if __name__ __main__:print…...

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

【论文阅读】相似误差订正方法在风电短期风速预报中的应用研究
文章目录 概述:摘要1. 引言2. 相似误差订正算法(核心)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账号名) 贪心算法 学习课程: https://www.bilibili.com/video/BV1f84y1i7mv/?spm_id_from333.337.search-card.all.click&vd_source2683707f584c21c57616cc6ce8454e2b 一、基本…...

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

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...

MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战
“🤖手搓TuyaAI语音指令 😍秒变表情包大师,让萌系Otto机器人🔥玩出智能新花样!开整!” 🤖 Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制(TuyaAI…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
CRMEB 中 PHP 短信扩展开发:涵盖一号通、阿里云、腾讯云、创蓝
目前已有一号通短信、阿里云短信、腾讯云短信扩展 扩展入口文件 文件目录 crmeb\services\sms\Sms.php 默认驱动类型为:一号通 namespace crmeb\services\sms;use crmeb\basic\BaseManager; use crmeb\services\AccessTokenServeService; use crmeb\services\sms\…...