2019美赛F题建模实战全程解析指南

版权申诉
0 下载量 125 浏览量 更新于2024-10-25 收藏 33.56MB ZIP 举报
资源摘要信息:"MATLAB美赛2019F建模全流程实战解析" 在数学建模竞赛中,美国大学生数学建模竞赛(Mathematical Contest in Modeling,简称MCM)是一场极具影响力的国际级比赛。参赛者需在有限的时间内,通过建立数学模型来解决实际问题。美赛2019F代表2019年美国大学生数学建模竞赛中的问题F。这份资源提供了一次实战解析,旨在详细展示整个建模过程。 整个建模流程可以划分为以下几个关键步骤: 1. 问题的理解与分析:首先要对所给问题进行深入理解,明确问题的背景、目的和要求。分析问题时需要划分问题的边界,提炼出关键因素,确定需要解决的关键问题。 2. 文献回顾:通过查阅相关领域的文献,了解问题的研究现状和已有的解决方案,这有助于启发解题思路。 3. 建模方法选择:根据问题特点选择适合的建模方法。常见的数学建模方法包括线性规划、非线性规划、动态规划、概率模型、仿真模型等。在选择时需要考虑模型的适用性、准确度和计算复杂度。 4. 模型建立:运用数学语言和工具来表达问题的本质,构建出数学模型。在这一阶段,需要将抽象的问题具象化成数学表达式,并对模型进行必要的假设。 5. 模型求解:选择合适的算法或软件进行模型求解。如使用MATLAB、Python等编程工具或Excel等电子表格软件。 6. 结果验证:对模型解进行验证和分析,确保模型的正确性和可靠性。这通常需要对模型结果进行敏感性分析,检验模型对参数变化的敏感程度,以及模型的稳定性和泛化能力。 7. 撰写报告:将整个建模过程和结果整理成报告。报告通常包含摘要、问题重述、假设、符号说明、模型建立、模型求解、模型验证、模型优缺点分析、结论和参考文献等部分。 8. 模型展示:根据比赛要求,制作PPT或其他形式的展示材料,将模型和结果以最清晰的方式展示给评委和观众。 在实战解析文件中,通过实例讲解了以上每个步骤的具体操作方法和技巧。例如,如何快速理解问题,如何高效检索文献,如何合理运用建模方法,以及如何使用MATLAB等软件工具求解问题等。 文件中可能还包含了对于MATLAB软件的具体应用,如MATLAB在数据处理、算法实现、函数绘图等方面的功能介绍,这对于参赛者来说是非常宝贵的学习资源。因为MATLAB作为一种强大的数学软件,在工程计算、算法开发和数据分析等方面具有显著优势,对于数学建模尤其有帮助。 此外,实战解析中可能还提供了对于竞赛策略的建议,比如如何分配时间、如何分工合作、如何提高解题效率等,这些都是参赛者必须考虑的重要因素。 综上所述,这份实战解析资源不仅可以帮助参赛者了解美赛2019F的具体问题和解题过程,还能提供建模的方法论指导,帮助参赛者提升建模能力和解决实际问题的能力。对于想要提高自己在数学建模方面能力和对数学建模感兴趣的学习者来说,这是一份宝贵的学习资料。
2023-05-26 上传

#include "USART.h" #include "contral.h" #define P_ARR_MAX 50 #define Us_ARR_MAX 10 double VIN_DAS[4]; u16 pwm1_arr=1800,pwm1_psc=2,//pwm1初始arr psc 72000/2/1800=20khz pwm pwm2_arr=1800,pwm2_psc=2;//pwm2初始arr psc u16 pwm1_pluse,pwm2_pluse ; //pwm1/2占空比ccr寄存器值 float ku=21.68,ki=1.055; float UIn_ad,IIn_ad,Uo_ad,Ub_ad,Ib_ad,Ib; float Us0=0,Us=0,Uo=30,Uobase=30,p; int cnt=20,cnt_getUs=10; int flag1=0,flag2=0,i=P_ARR_MAX,flagPlus=0,flagMinus=0; float step=0.0; vu8 key=0; /*************电路初始化************/ void Init() { //1 pwm1 通过一个循环来进行滤波操作,然后根据滤波后的结果计算出 pwm1_pluse 的值 while(cnt>0) { adsfilter(0);adsfilter(1); UIn_ad=VIN_DAS[0]*ku; IIn_ad=VIN_DAS[1]*ki; Us0=IIn_ad*10+UIn_ad; cnt--; } pwm1_pluse=Us0/60.0*pwm1_arr; // TIM4_PWM_Init(pwm1_arr,pwm1_psc); // TIM_SetCompare1(TIM4,pwm1_pluse); //2 EN delay_ms(50); GPIO_SetBits(GPIOB,GPIO_Pin_15); delay_ms(50); //3 pwm2 cnt=20; while(cnt>0) { adsfilter(2); adsfilter(3); Uo_ad=VIN_DAS[2]*ku; Ub_ad=VIN_DAS[3]*ku; cnt--; } pwm2_pluse=Ub_ad/Uo_ad*pwm2_arr; TIM3_PWM_Init(pwm2_arr,pwm2_psc); TIM_SetCompare2(TIM3,pwm2_pluse); //4 EN delay_ms(50); GPIO_SetBits(GPIOB,GPIO_Pin_12); delay_ms(50); } /*************电路初始化************/ /*************采样*************/ void caiyang() { adsfilter(0);adsfilter(1);adsfilter(2); adsfilter(3); UIn_ad=VIN_DAS[0]*ku; UIn_ad=UIn_ad*0.9554+0.0127; IIn_ad=VIN_DAS[1]*ki; IIn_ad=IIn_ad*0.9906-0.0021; Uo_ad=VIN_DAS[2]*21.05; //Uo_ad=Uo_ad*0.9991+1.2882; Ub_ad=VIN_DAS[3]*21.15; Ub_ad=Ub_ad*0.859+1.8277; Ib_ad=Get_Adc(1)*(3.3/4096); Ib=(Ib_ad-1.39)/0.428+0.12; Us=IIn_ad*10+UIn_ad; Us=1.0084*Us-0.0239; }

2023-05-25 上传