2024年研赛-华为杯数模竞赛C题论文首发+论文讲解+代码分享

news2024/11/15 20:52:16

2024年华为杯-研赛分享资料(论文分享+部分代码)(已更新部分代码):链接:https://pan.baidu.com/s/1HGIYjV3lqzUc_3H0vg5H8w 提取码:sxjm

图片

图片

题 目: _基于数据驱动下磁性元件的磁芯损耗建模

摘 要:

随着国民经济发展和社会进步,基于电力电子技术的电能变换(得到迅速发展,尤其是新能源和信息通讯领域。本文将基于数据驱动下磁性元件的磁芯损耗建模。

针对问题一,基于实验数据,提取反映磁通密度分布和波形特征的变量,进而对三种波形(正弦波、三角波、梯形波)进行分类。通过提取磁通密度随时间变化的特征量,建立了一个特征提取机制。随后,采用随机森林分类器作为模型,对这些特征进行分类建模。训练集中的数据用于拟合分类器,而测试集数据用于验证模型的效果。模型成功对三种波形进行了分类,并得到了准确的分类结果。

针对问题二,基于实验数据,修正斯坦麦茨方程,增加温度修正项,以适应不同温度条件下的损耗预测。使用实验数据,分别拟合传统斯坦麦茨方程和修正后的方程,利用最小二乘法(lsqcurvefit)对参数 k1、a、b和温度修正系数c 进行拟合。修正后的斯坦麦茨方程能够更准确地预测不同温度下的磁芯损耗。对比传统斯坦麦茨方程与修正模型,后者的预测误差显著降低,最终模型的均方误差(MSE)也得到了显著改善。

针对问题三,分析这些因素对损耗的独立及协同影响,并找到使磁芯损耗最小的最优条件。采用多元回归模型分析材料、温度、励磁波形和频率对磁芯损耗的影响,模型考虑了独立效应以及两两因素之间的交互作用。通过对不同组合的实验数据进行分析,计算出每种材料和波形在不同温度下的平均损耗。同时,利用可视化工具进一步分析这些因素的交互作用。通过回归模型的预测与分析,找到了使磁芯损耗最小的最优条件:在材料4、温度为90℃、频率为50010Hz、正弦波形下,磁芯损耗最小值。

目录

一、 问题重述

1.1 问题背景

1.2 问题回顾

二、 问题分析

2.1 数据分析

2.2 问题一分析

2.3 问题二分析

2.4 问题三分析

2.5 问题四分析

2.6 问题五分析

三、 模型假设

四、 符号说明

五、 模型的建立与求解

5.1 数据预处理

5.1.1 数据清洗

5.1.2 数据转码

5.1.3 数据描述性分析

5.2 问题一模型的建立与求解

5.2.1 分类模型的建立

5.2.2 分类结果

5.3 问题二模型的建立与求解

5.3.1 修正模型的建立

5.3.1 修正模型求解

5.4 问题三模型的建立与求解

5.4.1 回归模型的建立与求解

5.4.2 交互模型的建立与求解

5.4.3 极值的求解

5.5 问题四模型的建立与求解

5.5.1 数据处理

5.5.2 预测模型的选择

5.5.3 加权预测模型

5.5.4 预测结果的比对

5.6 问题五模型的建立与求解

5.6.1 优化模型的建立

5.6.2 优化模型的求解

六、 模型总结

6.1 模型优点

6.2 模型缺点

6.3 模型推广

七、 参考文献

八、 附录

一、模型的建立与求解

5.1 数据预处理

5.1.1 数据清洗

利用matlab的find函数对数据集的缺失值进行查找,得到题目给出数据并没有存在缺失值。对于异常值的判定,题目给出的数据,例如题目中存在极端异常的数据,例如无论是存在极端数据,需对该极端数据进行处理,首先对数据进行正态分布的检验。为了更加直观的观察异常数据,利用matlab绘制了三种指标的数据柱状图如下所示

图片

对数据进行箱型图检验,使用MATLAB中boxplot 函数来生成箱型图并标识异常值。箱型图是一种用于显示一组数据分布的图表,其中“异常值”通常被定义为小于 Q1 1.5IQR 或大于 Q3 + 1.5IQR 的值(其中 Q1 是第一四分位数,Q3 是第三四分位数,IQR 是四分位间距)。

图片

对于得到的异常值,根据实际情况进行人为判定。

5.1.2 数据转码

别型变量的编码:如励磁波形(正弦波、三角波、梯形波)和磁芯材料(材料1、材料2、材料3、材料4),这些类别特征在建模时不能直接用于数值计算,因此需要进行编码。

名称

转码后结果

名称

转码后结果

正弦波

1

材料1

1

三角波

2

材料2

2

梯形波

3

材料3

3

材料4

4

为了更加直观地展示转码后结果,绘制可视化结果如下所示

图片

图片

袋外错误率(Out-of-Bag Error)曲线展示了随着随机森林中树的数量增加,模型的分类错误率是如何变化的。横轴代表决策树的数量,纵轴代表袋外错误率。可以看到:

在最开始时,随着树的数量增加,错误率迅速下降。

当树的数量达到20棵后,错误率趋于平稳并接近零,表明模型几乎没有错误。

袋外错误率的下降趋势表明,模型在增加更多树的初期阶段能够显著提高性能,但在树的数量达到一定程度后,更多的树对模型性能的提升已经不再明显。

结论:随机森林在包含约20棵树时,袋外错误率已接近零,说明此时模型的泛化能力已经非常好,继续增加树的数量对提升模型性能的作用有限。
4. 特征重要性

随机森林具有自动计算特征重要性的能力。通过对特征的随机扰动来观察模型性能的变化,能够得出每个特征在分类中的贡献度。具体过程如下:

图片

结论:决策树展示了模型分类时的逻辑,树的分裂主要依赖特征5和特征6。树的深度较浅,表明模型的复杂度较低,分类规则简单。

表1:问题一结果

序号

类型

序号

类型

序号

类型

序号

类型

1

三角波

21

正弦波'

41

正弦波'

61

正弦波'

2

三角波

22

正弦波'

42

三角波'

62

正弦波'

3

三角波

23

正弦波'

43

正弦波'

63

正弦波'

4

三角波

24

正弦波'

44

正弦波'

64

正弦波'

5

三角波

25

正弦波'

45

正弦波'

65

正弦波'

6

梯形波

26

三角波'

46

梯形波'

66

正弦波'

7

梯形波

27

三角波'

47

梯形波'

67

正弦波'

8

梯形波

28

三角波'

48

梯形波'

68

正弦波'

9

梯形波

29

三角波'

49

梯形波'

69

正弦波'

10

梯形波

30

三角波'

50

梯形波'

70

正弦波'

11

正弦波

31

梯形波'

51

三角波'

71

正弦波'

12

正弦波

32

梯形波'

52

三角波'

72

三角波'

13

正弦波

33

梯形波'

53

三角波'

73

三角波'

14

正弦波

34

梯形波'

54

三角波'

74

正弦波'

15

正弦波

35

梯形波'

55

三角波'

75

正弦波'

16

三角波

36

正弦波'

56

三角波'

76

梯形波'

17

三角波

37

正弦波'

57

三角波'

77

梯形波'

18

三角波

38

正弦波'

58

三角波'

78

梯形波'

19

三角波

39

正弦波'

59

三角波'

79

梯形波'

20

三角波

40

正弦波'

60

三角波'

80

梯形波'

为了更加直观地展示问题一结果,绘制了问题一的结果可视化如下所示

显然,修正后的斯坦麦茨方程具有更低的均方误差,说明温度修正项显著提高了模型的预测精度。

具体结果比对图,如下所示

图片

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

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

相关文章

leetcode第十三题:罗马数字转整数

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#x…

OpenCV特征检测(7)角点检测函数goodFeaturesToTrack()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 确定图像上的强角点。 该函数根据 240中所描述的方法查找图像中最显著的角点或者指定图像区域内的最显著角点。 函数使用 cornerMinEigenVal 或…

华南理工大学信息工程高频电子线路课程设计——基于锁相环的调试解调器设计

完整报告链接如下: 通过网盘分享的文件:高频课设报告.docx 链接: https://pan.baidu.com/s/1J83UCDSU0UHcv4ONYxfyhg?pwdzqyr 提取码: zqyr --来自百度网盘超级会员v5的分享 懒得贴上来了,放一下截图。

ICM20948 DMP代码详解(34)

接前一篇文章:ICM20948 DMP代码详解(33) 上一回解析了inv_icm20948_initialize_lower_driver函数中设置FIFO_RST和FIFO_CFG寄存器相关的代码,本回继续往下解析inv_icm20948_initialize_lower_driver函数的后续代码。为了便于理解和…

蓝桥杯【物联网】零基础到国奖之路:十. OLED

蓝桥杯【物联网】零基础到国奖之路:十.OLED 第一节 硬件解读第二节 MDK配置 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/fa7660b81be9407aa19c603561553db0.png)第三节 代码 第一节 硬件解读 OLED硬件知识: 第二节 MDK配置 第三节 代码 include头文件。 编…

Webui 显卡有显存,会报错:CUDA out of memory

Webui 显卡明明有显存,会报错:CUDA out of memory 网上找了很多资料,都没有能解决这个问题 ,后来发现和电脑虚拟内存设置有关,这里记录一下具体的解决方法: 什么是 CUDA Out of Memory 错误? …

【MySQL】字符集与Collation

今天做项目,突然发现,项目中使用的MySQL的库排序规则是 utf8mb4_general_ci,而我自己用的MySQL8默认库规则是utf8mb4_0900_ai_ci,于是想要弄清楚 出处(写的非常详细):mysql设置了utf8mb4&#x…

WPF自定义Dialog模板,内容用不同的Page填充

因为审美的不同,就总有些奇奇怪怪的需求,使用框架自带的对话框已经无法满足了,这里记录一下我这边初步设计的对话框。别问为啥要用模板嵌套Page来做对话框,问就是不想写太多的窗体。。。。 模板窗体(XAML)…

面试-设计模式

策略模式 定义了一组算法,分别封装起来,这些算法直接可以相互替换 设计模式的开闭原则:对修改关闭,对扩展开放 装饰模式 将某种算法作为一个装饰品添加到对象身上,同时可以自由穿戴更换装饰品 两个主要的角色&…

C语言 | Leetcode C语言题解之第423题从英文中重建数字

题目&#xff1a; 题解&#xff1a; char * originalDigits(char * s) {int lenstrlen(s);int arr[26]{0},num[10]{0},cot0;for(int i 0; i < len; i)arr[s[i] - a];num[0] arr[z-a];num[2] arr[w-a];num[4] arr[u-a];num[6] arr[x-a];num[8] arr[g-a];num[1] arr[o…

[JavaEE] UDP协议

目录 再谈端口号 一、端口号的划分 二、UDP协议 三、UDP的特点 再谈端口号 一、端口号的划分 0-1023&#xff1a;知名端口号&#xff0c;端口号固定&#xff0c;其中包括HTTP&#xff0c;FTP&#xff0c;SSH等广为使用的应用层协议。 1024-65535&#xff1a;操作系统动态分…

演示jvm锁存在的问题

文章目录 1、AlbumInfoApiController --》testLock()2、redis添加键值对3、AlbumInfoServiceImpl --》testLock() 没有加锁4、使用ab工具测试4.1、安装 ab 工具4.2、查看 redis 中的值 5、添加本地锁 synchronized6、集群情况下问题演示 jvm锁&#xff1a;synchronized lock 只…

面试金典题2.4

给你一个链表的头节点 head 和一个特定值 x &#xff0c;请你对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前。 你不需要 保留 每个分区中各节点的初始相对位置。 示例 1&#xff1a; 输入&#xff1a;head [1,4,3,2,5,2], x 3 输出&a…

LeetCode从入门到超凡(二)递归与分治算法

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年9月学习赛的LeetCode学习总结文档&#xff1b;在算法设计中&#xff0c;递归和分治算法是两种非常重要的思想和方法。它们不仅在解决复杂问题时表…

matlab绘制二维云图,划分区域,并显示每个区域的均值

绘制成图如下&#xff1a; 代码如下&#xff1a; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%创建绘图的数据 ax0;bx1; ay0;by1; nx100; %数据的x轴点数 ny100; %数据的y轴点数 hx(bx-ax)/(nx-1); hy(by-ay)/(ny-1); Xax:hx:bx; Yay:hy:by; da…

HTTP中的301、302实现重定向

HTTP状态码301和302描述 ‌HTTP状态码301和302用于实现重定向‌&#xff0c;其中301代表永久重定向&#xff0c;而302代表临时重定向。这两种重定向方式在网页开发、搜索引擎优化&#xff08;SEO&#xff09;以及用户体验方面扮演着重要的角色。 301 301永久重定向‌意味着原…

UDS进阶篇

小结&#xff1a;工欲善其事必先利其器&#xff0c;参考成熟的UDS工具&#xff0c;开发及完善控制器UDS诊断配置。 对应到AUTOSAR中&#xff0c;DEM和DCM&#xff0c;利用工具可实现诊断开发标准流程化&#xff0c;从诊断需求到诊断仪及诊断诊断一条龙开发&#xff0c;不断完善…

★ C++进阶篇 ★ 二叉搜索树

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C进阶篇第三章----二叉搜索树 ~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页&#xff1a;椎名澄嵐-CSDN博客 C基础篇专栏&#xff1a;★ C基础篇 ★_椎名澄嵐的博客-CSD…

fasterRCNN模型实现飞机类目标检测

加入会员社群&#xff0c;免费获取本项目数据集和代码&#xff1a;点击进入>> 关于python哥团队 我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师…

写一下线性表

如果你是c语言, "不会"c, 那么... 把iostream当成stdio.h 把cout当成printf, 不用管啥类型, 变量名字一给输出完事 把cin>>当成scanf, 变量名字一给输入完事 把endl当成\n, 换行. 哦对了, malloc已经不建议使用了, 现在使用new, 把new当作malloc, 把delete当…