公务员期刊网 精选范文 数学建模常用模型算法范文

数学建模常用模型算法精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的数学建模常用模型算法主题范文,仅供参考,欢迎阅读并收藏。

数学建模常用模型算法

第1篇:数学建模常用模型算法范文

构建合理的培训体系构建科学合理的数学建模培训体系,建立数学知识与专业课知识的课程融合体系,可以从以下几个方面着手。(1)每年年底,为下一年竞赛做好准备工作,包括给全校学生作数学建模普及性讲座和针对性的动员讲座、组织学生报名和选拔。(2)每年定期组织培训,培训学时约60—72课时,精选内容、总结多年竞赛经验、精选培训内容。重点为规划论及最优化方法建模、模糊数学与综合评价方法建模、层次分析与多目标决策方法建模、微分方程与差分方程建模、图论建模方法与应用。(3)在培训结束后以实际竞赛性建模比赛进行全校性选拔,确定参赛队员的名单,再对他们进行集训。对参赛队员进行强化训练(集训),内容包括:中文Word排版,Excel、Matlab、SPSS、LINGO等软件的使用,国内外数学建模竞赛题目及论文的阅读、讲解和模拟竞赛。(4)每年定期对参赛队员进行训练、模拟比赛、讲授论文和摘要的写作要领等内容,让他们作好充分的准备,以较好的竞技状态迎接比赛[3]。

内容及思维培训(1)培训的内容主要包括四个方面一是经典模型。在模型的发展史上,积累了很多经典模型,这些模型大多可以作为其它模型的子模型,其算法有很强的实用性,如存储模型、对策模型、网络模型、生物模型、军事模型、规划模型、微分方程模型等[4]。二是常用算法。包括优化算法、动态规划算法、网络算法、数值算法、近似算法、遗传算法等。三是精讲试卷。广泛搜集国内、国际数学模型试卷,按照竞赛的程序,分类进行实战演练,要求学生在规定时间内交出论文,然后讲解分析这些试卷,使学生快速掌握试卷的答题技巧和出题风格。其目的是使学生在论文点评与案例分析指导下,不断发现和改正存在的问题,全面提高建模水平,掌握竞赛的必要技巧。四是计算机实用知识的培训。主要包括计算机信息检索、资料查阅、写作格式、常用的数学软件等。严格规范论文写作。训练论文规范性三大部分内容:(1)摘要部分。训练学生掌握字数在200~300字,概括论文中模型的主要特点、建模方法和主要结果。(2)中心部分六要素训练:①问题提出、问题分析。②模型建立:补充假设条件、明确概念、引进参数、模型形式(可有多个形式的模型)、模型求解。③计算方法设计和计算机实现。④结果分析与检验。⑤讨论模型的优缺点、改进方向、推广新思想。⑥参考文献。(3)附录部分:①计算程序、框图。②各种求解演算过程、计算中间结果。③各种图形、表格和论文写作的技巧。学生通过第三阶段的专业训练,在写作竞赛论文时就有了较好的经验和常识,同时也提高了学生在以后毕业设计和论文的写作水平,增强了综合素质[5]。(2)注重思维上的培训一是要求学生敢于用数学语言描述现实世界的事物和现象,要求学生大胆猜想,养成理论联系实际的数学思维习惯。二是在问题的探究过程中,加强直觉思维的训练。为学生创设自由想象与自由发挥的空间,激励学生于无疑处见有疑,发现别人没有发现的潜在解决问题的方法。从而解决思考问题上的单一化、教条化、规律化,在数学建模竞赛中,能从多个角度、多个层次、多个方法上去思考和理解问题、分析问题。三是将问题进行类化比较,培养学生的转换能力。转换是运用已有的知识和经验从一个事物迁移到另一个事物、从一个现象联想到另一个现象、从一个过程变换成另一个过程、从一个模型变换到另一个模型、从一种方法变换到另一种方法的心理活动。通过问题的类比转换找到事物间的联系,找到解决问题的途径,使学生在实际问题的探究、发现过程中培养思维品质的灵活性、创造性[6]。四是通过阶段性的建模和查证,逐步建立起完善的模型。从简单模型入手,通过改变和复杂化问题的假设最终建立起相对合理和完善的模型,这是一种数学建模的基本思路。同时,要让学生明白,在数学建模竞赛中,同一个问题从不同的角度去理解,会获得不同的数学模型和求解方法,没有唯一的正确答案,只有抓住问题的本质,通过创新找到解决问题的最佳方案[7]。五是加强学生的正向思维转向逆向思维训练。让思维向对立面的方向发展,从问题的相反面深入地进行探索,树立新思想,创立新形象。

数学建模培训形式(1)分组形式学习数学建模培训不再像其他课程以个体为单位进行学习,在开课之初先请学生自愿组合成若干个学习小组,可以从优势互补的意向出发,一个小组的组合中要有数学基础较好、编程及计算机的使用较熟练、写作表达能力较强成员组合为最佳,一般三人为一组。课程考勤、作业、考核皆以小组为单位进行,课堂上开展小组讨论并上交课堂作业的研讨结果,课外作业也是要求小组集体充分研讨之后完成上交[8]。在该阶段可以达到两个目的:一是组建最佳的学生小组团队,实现磨合加优化调整;二是构建参赛学生完整的数学知识,提高计算机技能以及建立数学模型能力,使之相互学习,取长补短,达到“1+1>2”的最佳状态。(2)互动式教学数学建模培训,主要是靠同学们自己去学,这能充分调动同学们的积极性,充分发掘同学们的潜能,培训中广泛采用讨论方式与课后自习为主要手段。在数学建模培训中,以开拓学生的思维方式为主,在课堂上对一些并不复杂的问题,让学生尽可能从多角度去认知,大胆提出各种不同的解决方案,然后让大家共同讨论在处理问题时有哪些谬误,有哪些创造性的思想,有哪些独到的见解,分析比较不同解决方案的优缺点。课堂上,同学们自己报告、讨论、辩论,教师主要起引导、质疑、答疑、辅导的作用,这不仅大大提高了学生的表达和交流能力,同时培养了学生探索发现、自主思考、团结合作的能力。

针对高职院校特点,特殊培训高职院校有着其特殊的情况,必须同本科院校有所区别。因此,须充分利用好高职院校的资源,认识学生的不足,提出几点建议:(1)提前进行培训,合理安排课程内容其一,高职院校学生的数学基础与本科学生基础相比薄弱得多,因此必须提前进行培训。其二,学生在校时间只有3年,所学数学知识大多集中在一年级。若等所有数学课程都学习完成后再进行培训,则时间太过仓促,不利于思维的培养。所以,可以在大一时候就开始进行数学建模的培训,提前做出准备,强化理论知识与模型思维。其次在课程的选择上,应有所先后,因为学生在大一的数学课程学习过程中,是按照极限、导数、积分、微分方程这样的顺序来学习的。因此,在课程选择上,注意初期应避开未讲解到的数学知识,可以选择性的讲解如线性规划、图论、最优化、概率组合建模等内容。在学生学习相关知识后,再进行微分方程与积分思想等模型的讲解。通过该方法,可以有效利用时间,使得学生有一个长期的数学思维培养过程。(2)与专业实际结合,实战演练高职院校注重职业能力的培养,高职院校中的许多专业与生产实际结合得非常紧密,因此可以与专业知识充分结合,以达到学生实战演练的目的。可以针对全校各专业征集实际问题中所遇到的有价值的困难题目作为建模题目。例如,汽车工程系在生产、技术开发中所遇到的相关问题;建筑工程系中项目研究中所遇到的相关难题等等。这样学生通过实际运用,培养自身的建模能力。同时,通过建模所得结果,对实际进行指导和验证,有助于实际问题的解决。同时,也充分利用和开发网络资源,及时跟踪最新的时代问题。例如:奥运场馆建设问题、房地产决策问题、电力资源调配问题等等,都可作为数学建模的讨论题目。值得强调的是,在建模题目的选择上,应适当突出它的实践性和科普性。

作者:邹伟龙 单位:重庆电子工程职业学院,

第2篇:数学建模常用模型算法范文

(1.中国91055部队,浙江 台州 318500;2.中国91576部队,浙江 宁波 315021)

【摘 要】综合保障的实践表明,保障任务的核心问题就是如何维护复杂装备的系统可靠度和运行可用度。可用度建模是解决这些问题的前提,随着新理论的不断涌现,对建模关键技术的研究越来越深入。分析了可用度模型的分类和建模过程中遇到的关键技术,论述了系统结构、寿命分布、使用维修等条件对可用度建模过程中的影响,并对建模方法的适应性进行了初步的探讨。

关键词 可用度;建模方法;马尔科夫;更新过程

作为衡量装备战备完好与任务持续能力的重要参数——系统可用度,长期以来一直受到装备研制部门和装备使用部门的高度重视,它的优点在于其综合性很强,把装备的可靠性、维修性、测试性和保障性等设计特性综合为军方所关心的使用参数。[1-3]解决系统可用度问题的前提是建模,本文研究的目的就是提出一个可用度建模方法的框架,为深入研究打下基础。

1 建模方法分类

可用度的数学模型可以大致分为概率模型和统计模型两类:概率模型和统计模型。概率模型是指,从系统结构出发及部件的寿命分布、修理时间分布等等有关的信息出发,来推断出与系统寿命有关的可靠性数量指标,进一步可讨论系统的最优设计、使用维修策略等。其中概率模型根据系统相关时间的概率分布的不同又分为微积分模型、马尔科夫模型和更新过程模型。统计模型是指,从观察数据出发,对部件或系统的寿命、可靠性指标等进行估计和检验。

随着相关领域的发展,可用度的数学模型出现一类综合类模型,包括:基于离散事件的模型、基于神经网络的模型和基于遗传算法的模型等。可用度建模方法分类如图1所示。

2 模型研究

2.1 概率模型

1)微积分模型

主要根据基本的数学机理和单元可用度的内涵,依靠微积分的运算方法解算系统的可用度。设单元的故障概率密度函数为f(t),修复概率密度函数g(t),则其故障频率w(t),修复频率v(t)以及不可用度Q(t)的计算公式如下:

式中:f1(t)表示单元在t=0时刻是正常条件下故障概率密度函数;f2(t)表示单元在t=0时刻是被修复条件下故障概率密度函数。

此方法适用于服从任意分布的部件,针对可修复部件的可用度计算模型,采用逐次逼近方法,求解可用性指标的第二类Volterra积分方程,如式(5)所示。

这种积分模型适用于n中取m系统的平均稳态可用性,如核电厂的散热系统等。

2)马尔科夫模型

当系统的各组成部件的寿命、维修时间等相关时间均遵从指数分布,且部件失效和修复相互独立,只要适当定义系统的状态,总可以用马尔科夫过程来描述,这样的可修系统称为马尔科夫可修系统。

以n个不同单元组成的串联系统为例,马尔科夫模型如下,第i个单元的故障率为?姿i,维修率为ui。只要一个单元故障,系统就故障,进行维修,系统地状态集合为S={0,1,2,…,n},其中系统正常工作状态集合为W={0},系统故障状态集合为F={1,2,…,n},系统状态概率向量表示为X={x0,x1,…,xn},系统状态转移图如图2所示。

马尔科夫模型适用于系统稳态可用度的研究中,被广泛应用于对互联计算机通信网络,雷达等复杂电子系统的建模。

3)更新过程模型

其中,Ai(t)表示系统可用度。gi(t)是定义在[0,∞]上的非负、在任何有限区间上的有界函数,在计算可用度时,通常这个函数是不同装备服从任意分布的维修,寿命,保障延误的时间。

马尔科夫更新模型的建模流程:

(1)模型假设,构建服从一般分布的各统计量;

(2)系统状态转移关系确定;

(3)半马尔科夫表达式确立,并对相应的概率进行Laplace-Stieltjes变换;

(4)构建马尔科夫更新方程组,根据极限定理及洛比达法则求解系统稳态可用度,系统的瞬时可用度可根据更新方程组直接拉氏反变换求得。

马尔科夫更新模型适用于估算通用性的系统效能,武器系统的可用性及备件更换方面等。其优点在于能适应各种分布类型的问题求解,不足之处是计算过于繁琐。

2.2 统计模型

现场数据统计方面的研究主要是按照可用度的定义,对历史数据或仿真数据进行研究,运用数理统计的基本理论与方法得到的相应结论,即统计规律意义上的装备可用度的估计值或置信区间。

这里我们重点介绍蒙特卡洛仿真方法。对于复杂可修系统或者寿命或维修时间不遵从指数分布的系统的可用度分析,经常还需要借助仿真技术来实现,蒙特卡洛(Monte Carlo)仿真是常用的仿真技术。

蒙特卡洛仿真的步骤:

(1)构造或描述概率过程;

(2)实现从已知概率分布抽样;

(3)建立各种估计量。

蒙特卡洛仿真方法一般不单独使用,它一般有模型条件的限制和输入数据的要求。根据一般可用性仿真的要求,建立了仿真方法的一般流程示意图,如图4所示。

统计方法通过历史数据或仿真数据,只能获得系统可用度的估计值或置信区间,无法获得系统准确的瞬时可用度。并且这种统计意义下的系统瞬时可用度根本无法反映系统瞬时可用度波动的内在机理,不利于研究的展开。但是,统计方法却可以作为模型有效性验证的重要工具。

2.3 综合类模型

随着相关领域的发展,离散事件、神经网络和遗传算法等模型被广泛的应用于可用度的s建模领域。文献[4]建立了对预防性维修的单部件离散可修系统的瞬时可用度模型,利用概率分析的方法详细讨论了系统正常、修复性维修和预防性维修3个状态之间的转移关系。文献[5]利用神经网络学习能力强,分布式,并行性和非线性的特点,结合装备可用度的计算要求,建立预测模型,通过训练及预测结果,确定网络模型结构。文献[6]针对部件寿命服从非指数分布,维修属于非马尔科夫过程的复杂设备为对象,以系统可用度为优化目标,以预防性维修周期为优化变量,基于蒙特卡洛和遗传算法研究预防性维修策略的优化问题,建立了设备可用度的优化模型,并将遗传算法中的个体进化搜索用于维修策略优化。同时,粒子群算法也被应用于可用度的建模中。

2.4 模型的适应性

表1是对各种模型适应性的分析,经过研究得出每一种建模方法适用于可用度建模的类型、考虑因素和应用领域。

3 总结

在可用度建模过程中,由于各种原因,往往遇到很多困难,本文的研究提出了一套较为完整的可用度建模方法,全面的分析了各种方法的适用条件和考虑因素,为复杂系统的可用度建模提供了依据,为设计和保障具有高可用性的装备提供了技术支持。

参考文献

[1]Machere Y, Koehn P, Sparrow D.Improving reliability and operational availability of military systems[C]// IEEE Aerospace Conference.2005,3489-3957.

[2]徐廷学.导弹武器系统的使用可用度[J].航空科学技术,2000,3:34-35.

[3]单志伟.装备综合保障工程[M].国防工业出版社.2007,4-5.

[4]杨懿,王立超,邹云.考虑预防性维修的离散时间单部件系统的可用度模型[J].航空学报,2009,30(1):67-69.

[5]段志勇,张彤,等.基于BP神经网络的飞机完好率建模研究[J].航空计算技术,2007,37(3):37-40.

第3篇:数学建模常用模型算法范文

关键词: 数值分析 数学建模 Matlab

数值分析又称计算方法,是一门与计算机使用密切结合的实用性很强的一门课程,重点研究如何运用数值计算方法去处理实际工程问题,因此数值分析在科学研究、工程建设和经济建设等很多方面有着广泛的应用。在信息科学和计算机技术飞速发展的今天,这门课程中的数值方法更显得极其重要,但是对多数学校来说,还没有引起对这门课足够的重视,而且在数值分析的教学过程中都存在很多不足。不少学者也讨论过我国高校中数值分析课程的教学情况,其中存在一些普遍问题,例如学生理论学习模式化、实践能力不够、缺乏应用性,学习过程中学生感觉到枯燥或者学习效果不佳,学校软、硬件设施无法满足学生的上机实习等。如何更好地开展这门课程的教学工作,对于我们来说是一个巨大的挑战。下面我们来谈谈在教学过程中遇到的几个问题。

1.理论基础知识扎实,同时采用启发式教学

课程中的很多公式是推导出来的,推导过程比较烦琐,得到的公式也比较冗长,而且比较难记,对于已经复杂并且很冗长的数值公式,还需要进一步进行抽象的理论分析,包括算法的收敛性如何,数值算法是否稳定并进行误差分析,以及分析算法的空间和时间复杂性等,同时还涉及如微积分、线性代数、常微分方程等。过多地强调数学理论证明,大多数的学生觉得这门课很难,学得很枯燥,也感觉不到乐趣,从而越来越厌烦学习这门课程。

因此,我们要将“因材施教”的理念落到实处。方法的讲授应该尽量地从实例中提出问题,引导学生去思考如何运用数学知识去构造解决的方法,然后给出相应的数学理论。并且,给出一种方法,可以换位思考,激发学生思考是否能用另外的已学方法来求解。这样不仅能复习已学的知识,而且能巩固各种知识之间的联系,还可以启发学生把学过的知识学以致用,真正了解学习带来的乐趣。

2.将数学建模的思想融入到教学过程中

数值分析是对实际问题的数值模拟方法的设计、分析与软件实现的理论基础。要解决具体的实际问题,首先需要建立起适当的数学模型,将实际问题的解决归结为相应的数学问题的求解,然后对所归结的数学问题建立相应的数值方法。这样就可以以实例启发学生弄清为什么要进行数值分析、应该如何引进数值方法进行分析,建立一种数值分析的方法后,哪些问题是值得且必须研究的。例如在汽车、飞机等的外形设计过程中,利用样条技术设计的外形越来越光滑、美观。学生了解了样条插值的实际应用背景后就会对样条插值的理论更感兴趣,也会更有动力来学。

将数学建模的思想融入到数值分析教学过程中,要求我们必须有一个合适的切入点,不能用数学建模课的内容过多占有数值分析课的教学,因此精选只涉及相应数值分析理论和方法而又能体现数学建模思想的内容,既能吸引学生又是学生以后可能碰到的案例,将其融入到数值分析课程中是十分重要的。下面具体举两个例子,插值方法可以引入人口增长的模型和设计公路平面曲线的问题,常微分方程的差分方法可以引入导弹追踪和估计水塔的流量问题,方程求根的迭代法可以引入一般战争模型,线性方程组的解法可以引入投入产出模型和小行星轨道问题等。

3.结合Matlab进行实践教学

在结合多媒体教学的过程中,尽量地在讲解数学模型的过程中,无论是问题的引入还是算法的讲解和实现,以及结果尽可能地转化成图形等一些可视的结果展示给学生,以激发学生的学习兴趣,引人入胜,Matlab软件的可视化功能能够实现这一点。

在计算机技术飞速发达的今天,只要有效地把教学过程和相关的计算机技术结合起来,就能够做到减轻教师教和学生学的负担,优化学习环境,实现高效教学。在一些数值分析教材中一些常用的算法都已经有了现成的程序,因此在授课的过程中,对这些算法进行展示时,要让学生从中学会如何将一个算法转变成一段程序。鼓励学生自己根据算法写出程序流程图,然后使用Matlab语言将其转变成程序,将自己所得程序与课本中的结果进行比较分析,这个过程有助于学生更好地理解算法,增强学生动手实践的自信心。

4.结语

数值分析是研究数学模型的数值计算方法。随着电子计算机的迅速发展、普及,以及新型数值软件的不断开发,数值分析的理论和方法无论是在高科技领域还是在传统学科领域,其作用和影响都越来越大,实际上它已成为科学工作者和工程技术人员必备的知识和工具。

对于理工科的本科学生而言,它的理论和实践知识对学生的要求都比较高。因此要让学生学好这门课程,需要在教学中采用一些技巧性的教学方法,比如采用启发式的教学方法,融入数学建模的思想,以及结合Matlab进行实践教学等。这样可以调动学生主动学习的积极性,提高学生的综合素质,使学生真正学好这门课程。

参考文献:

[1]赵景军,吴勃英.关于数值分析教学的几点探讨[J].大学数学,2005,21(3):28-30.

[2]孙亮.数值分析方法课程的特点与思想[J].工科数学,2002,18(1):84-86.

第4篇:数学建模常用模型算法范文

【关键词】数学建模;数学实验;创新能力;微课;翻转课堂

随着大学生数学建模竞赛的不断开展,各高校也越来越重视数学建模和数学实验课程的教学工作,并通过围绕该赛事组织本校的预赛等工作,大力推广数学建模的参与面.分析历年来大学生数学建模竞赛赛题,可以发现近年的赛题有如下一些特点:题目的难度逐年升高,对数学知识的要求超出书本范围;问题越来越接近解决生活中遇到的实际问题,题目应用性很强;题目中常常会出现大数据,这些数据的处理和合理应用直接影响题目的求解;题目经常是命题专家的课题的一部分或简化,要求有一定的专业背景知识;解决问题的手段与计算机的联系也越来越密切,数学软件的使用趋于普遍,对学生的计算机能力要求越来越高;问题的综合性要求较高,对学生的数学应用能力和创新能力也要求更高.

一、当前数学建模和数学实验课程的特点及不足

目前已有的数学建模和数学实验的教学工作,主要是针对典型的教学案例,讲授如何建立适当的数学模型的理论知识,以及分析问题和解决问题的过程.教学中,教师还是以电子课件的课堂讲授为主,学生的实验活动主要是在课外完成,练习作业也基本以较为简单的题目为主,学生难以获得系统的、全面的训练.因此,数学建模与数学实验课程传统的教学内容、教学手段、教学方法与近年数学建模竞赛和学生对竞赛辅导的要求的距离较大.学生在面对大学生数学建模竞赛的真题时,普遍感觉题目较难,难以下手;很多学生在建模的过程中有一些好的想法,但是由于数学软件基础较弱,难以实现自己的算法.同时,由于这两门课程通常分期开设,加之学时有限,使学生很难把两门课程有效地联系起来.

二、数学建模与数学实验课程改革内容

(一)教学形式多样化

1.高等代数和数学分析等数学主干课程的教学中,要融入数学建模和笛实验的内容,增加一些简单建模的例题,强调运用数学知识解决实际问题的教学.

2.我校每年举办多次数学建模系列讲座,对更多的学生进行数学建模启蒙教育,宣传数学建模的基本思想,激发了学生们对数学建模的兴趣.

3.同时,基于微课的翻转课堂模式,开设数学实验和数学建模公共选修课,系统介绍数学建模的基本内容和数学软件的功能,培养学生的数学建模能力.

4.每年组织开展1次校内数学建模竞赛、2次建模夏令营,选拔优秀学生参加全国大学生数学建模竞赛和美国大学生数学建模竞赛.2016年获得美赛二等奖3项、国赛一等奖1项、国赛二等奖6项、国赛省一等奖11项.目前我校数学建模成绩在吉林市名列前茅.

5.从数学建模和数学实验出发,为学生开设创新实验,建立数学建模工作室,鼓励学生申请数学建模的大学生创新项目,培养优秀学生的数学建模的素养和能力.

(二)教学内容多样化

1.结合课程的特点,在数学主干课程中穿插具有建模思想的例题.例如,在常微分方程课程中,增加对汽车碰撞模型的介绍.这类教学主要是让学生了解和体会数学建模的基本思想和基本概念,激发学生应用数学知识解决问题的兴趣.

2.数学建模讲座可以选取某种模型,使学生全面理解模型的适用范围、典型特征、建模及求解过程.通过对该模型比较深入的理解,能了解数学建模的全过程,能举一反三.

3.数学建模和数学实验的选修课可以比较系统地讲授常用的数学模型的基本知识,介绍一种数学软件的使用.通过该课程的学习,使学生能比较系统地了解数学建模的基本过程,掌握数学建模的基本技能,能运用数学模型解决较为简单的实际问题.

(三)将数学建模与数学实验课程合并

将数学理论知识、数学建模的思维方法与数学实验融为一体,充分体现了数学的应用价值.

1.学生在学习各种典型案例的同时,可以利用数学软件及时开展实验.这样既弥补了单独开设的缺点,又在一定程度上节省了课时,效果也有了明显改观.

2.合并后的课程强调淡化理论,特别注重学生实践动手能力的培养.

3.教学方式采用的是分专题的案例教学法,比如,在数据处理专题中,会介绍数据拟合、插值、线性回归和非线性回归分析的相关案例以及实验工具.

4.课程宗旨就是让学生通过课程学习,在分析问题,应用数学方法原理建立数学模型,并综合应用计算机技术解决实际问题的能力培养上有质的飞跃.

(四)考核方式多样化

本着以学生为主体,以能力考查为中心,以提高教学质量为根本的理念,我们对课程的考核方式进行了改革,具体的成绩评定方案如下:

1.平时成绩占最终成绩的10%;

2.实验课考核占最终成绩的30%;

3.实践论文(模型+求解+排版)占最终成绩的60%.

总体看,新的考核方式更看重实践环节的考核.这里的实践有两层含义:一是学数学,用数学,尝试解决一些生活实际问题;二是上机实践,要求熟练掌握各种基本的数学软件工具,并能辅助学生对实际问题进行探究和求解.

第5篇:数学建模常用模型算法范文

【关键词】数学建模 数学软件 Lingo

【中图分类号】G642 【文献标识码】A 【文章编号】1009-9646(2008)09(a)-0153-01

1 数学建模简介

数学建模是对现实世界的一个特定对象为了一个特定目的,根据特有的内在规律做出一些必要的简化假设,运用适当的数学工具,得到一个数学结构的过程。在电工数学建模以及全国大学生数学建模竞赛中最常碰到的是一类决策问题,即在一系列限制条件下寻求使某个或多个指标达到最大或最小,这种决策问题通常称为最优化问题。每年的数学建模比赛都有一些比如解决最优生产计划、最优决策等最优化问题,它主要由决策变量、目标函数、约束条件三个要素组成。当遇到实际的最优化问题转化为数学模型,对于较大的计算量可以使用Lingo系列优化软件包求解。

2 Lingo软件简介及其在建模比赛中的应用

Lindo和Lingo专门用于处理线性规划与非线性规划方面问题。求解最优化问题的软件包,其线性、非线性和整数规划求解程序已经被数千万的公司用来做最大化利润和最小化成本的分析。Lindo和Lingo能在产品分销、成分混合、存货管理、资源配置等问题的数学建模中发挥巨大作用。Lingo是一套快速、简单、更有效率求解线性、非线性与整合最佳化模型的完整工具,除了具有Lindo的全部功能外还可用于求解非线性规划,也可用于一些线性和非线性方程组的求解等。Lingo提供了完整的整合套件,包含:求解最佳化模型的语言、完整建构与编辑问题的环境以及快速求解问题套件。其内部优化问题的建模语言为建立大规模数学规划模型提供了极大方便,包括提供的50多个内部函数,其中有常用数学函数、集合操作函数和自编函数等供参赛者建立优化模型时调用,通过这些函数的使用能大大减少参赛者的编程工作量,使求解大型规划变得不再费时费力。并提供了与其它数据文件的接口,易于方便地输入、求解和分析大规模最优化问题。这两个软件的最大特色在于其具有的快速建构模型、轻松编辑数据、交互式模型或建立完成应用、丰富的文件支持等特点, 2003年的全国大学生数学建模竞赛中D题(抢渡长江)的优化问题、2005年全国大学生数学建模竞赛中B题(DVD在线租赁)、2007年全国电工数学建模竞赛中A题(机组组合问题)等可以充分展示用Lingo建模语言求解的优越性。

3 Lingo软件短期训练教学策略

为了让学生尽快掌握学习这个软件,在培训时本人借鉴财经大学的教学经验以及本人在07年电工数学建模竞赛带队的经验总结了以下我们短期学习该软件的方法。

3.1 模仿式(即学即用Lingo软件)

所谓模仿式就是让学生照着同类模型的编程格式练习。用数学建模当中具有的普遍性的四种模型给学生学习软件,在教学过程中用幻灯片给学生逐一演示。

一般模型:

线性规划:

在Lingo窗口中输入如下代码:

然后单击工具条上的即可。

数据量较小的模型:

2004年全国大学生数学建模竞赛C题(酒后驾车)中给出某人在短时间内喝下两瓶啤酒后,间隔一定时间得到数据。建立了无约束的非线性规划模型:

程序如下:

Model

Sets:

Bac/r1..r23/:T,Y;

Endsets

Data:

T=0.25,0.5,0.75,1,1.5,2,2.5,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16;

Y=30,68,75,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4;

Enddata

Min=@sum(Bac:(a1*(@exp(-a2*T)-@exp(-a3*T))-Y)^2);

End

Lingo求解多元函数极小值时内部所采用的算法效率高,速度快,精度高,无需初始值,能准确地得到回归系数的最小二乘解,程序简洁,易于修改和扩展。

一些特殊模型:

当出现分段函数时如何解决,2000年全国大学生数学建模竞赛B题(钢管订购和运输)就是这样的例子。Lingo软件是利用符号“#LT#”即逻辑运算符,用来连接两个运算对象,当两个运算对象不相等时结果为真,否则为假。类似的逻辑运算符共有9个。

数据量较大的模型:

当遇到数据量比较大的题型的时候,Lingo的输入和输出函数可以把模型和外部数据(文本文档、数据库和电子表格等)连接起来。比如2005年全国大学生建模赛题B就是需要处理1000×100维数据的题型。它的Lingo程序如下:

model:

sets:

guke/c0001..c1000/:zulin;

dvd/d001..d100/:zongliang;

links(guke,dvd):x,pianhao;

endsets

max=@sum(1inks:x/(pianhao) k);

@for(guke(i):@sum(dvd(j):x(i,j))

@for(dvd(j):@sum(guke(i):x(i,j))

@for(1inks:@bin(x));k-2;

利用@OLE命令便可以轻易的调取出需要的数据.程序如下:

zongliang=@OLE( ‘f:\B2005Table2.xls’,‘zongliang’ );

pianhao=@OLE( ‘f:\B2005Table2.xls’,‘pianhao’ );

通过上面的编译之后很容易出结果,但是由于结果是一个1000×100的数值矩阵,因此同样用@OLE命令,利用它将结果输出到表格,可以更直观的读取。

程序语言:@OLE(‘f:\k1.xls’,‘x’)=x;

将以上四个模型的编程形式逐一讲授,学生只需将它们对应的程序进行备份,当比赛中遇到同类型时调用修改就可以了。

3.2 函数对应法,边学边练

对模型求解的Lingo编程形式同学们已经有了了解,这时候需要进一步到细节上去,具体练习一些函数的表达式 。教练组针对数学软件的特点,采取了上午讲课,下午上机的教学方式,这样学生在上机过程中可就上午所学知识中存在的疑问向老师提出,教师也可针对性地进行一些辅导和讲授。

参考文献

[1] 杨涤尘.数学软件与数学建模[J].湖南人文科技学院学报,2006,(6).

[2] 常新功,郝丽霞.如何让学生短时间内掌握Maple软件[J].山西财经大学学报(高等教育版),2001,52(3).

[3] 周甄川.数学建模中的优秀软件――Lingo[J].黄山学院学报,2007,9(3).

[4] 袁新生,龙门.非线性曲线拟合的三种软件解法比较[J].徐州工程学院学报,2005,20(3).

[5] 袁新生,廖大庆.用Lingo6.0求解大型数学规划[J].工科数学,2001,17(5).

[6] 姜英姿.大规模数据的计算机处理技术[J].徐州工程学院学报,2005,20(5).

第6篇:数学建模常用模型算法范文

计算机仿真主要是利用计算机技术和应用领域有关的专业技术,通过建立研究系统的数学模型,进而在计算机上对系统进行实验分析和研究的一门技术。因此,该门课程是一门解决实际问题、实践性强的课程。目前,大部分院校对该门课程的讲授主要围绕计算机仿真的概念、方法和技术来开展的,而在系统分析、系统建模、仿真计算、仿真结果分析等方面的讲解还存在薄弱环节。从教学内容来看,主要存在重理论分析,轻仿真实验;从教学过程来看,还存在重课堂教学,轻实践环节的现象。为此,应加强计算机仿真技术课程实验教学方法的研究,突出系统仿真建模分析实验,建立仿真实验的内容体系,强化仿真实验过程管理,以达到提高学生在计算机仿真技术领域的运用能力。仿真实验的内涵就是针对仿真实验对象,建立仿真实验模型,利用计算机技术,在计算机上开展仿真运算与结果分析的一种实践活动。单纯的课堂理论教学一般缺乏主动获取知识的能力,缺乏对所学知识的深入思考和实际动手能力的培养,缺乏发现问题、灵活运用已有知识解决实际问题的能力。而实验环节能在很大程度上弥补这种教学方式的不足,尤其是计算机仿真技术这门课程,具有系统针对性强与实际结合紧密的特点。因此,在计算机仿真技术课程的教学过程中,重视仿真实验课程建设,加强学生实验环节的教学和训练,已经成为本门课程改革和创新的一个重要内容。

1仿真技术实验课程的目的、分类及特点

计算机仿真实验课是掌握计算机仿真技术和仿真技能培养的重要环节,是开展科学实验、科学研究和工程应用领域能力培养的重要课程之一。开展计算机仿真实验课程改革,需要从实验内容设置、实验教学管理、实验课程评价等几方面入手,以达到实验课程提高学生实践能力和创新能力的目标。计算机仿真技术的教学内容通常分为连续系统仿真和离散系统仿真两个方面,因此,仿真技术实验可分为连续系统仿真实验和离散系统仿真实验。另一方面,按照仿真的作用和目的来分,仿真技术实验领域也可分为三种形式。一是系统设计仿真实验,即对尚不存在的假象系统开展仿真实验。通过仿真实验,来观察系统设计的各项性能参数。二是仿真对象的系统分析仿真实验,即对已有系统进行仿真实验。针对存在的已有系统,构建系统模型,通过仿真实验以观察和分析系统,来了解和掌握系统的变化规律。三是系统模拟训练仿真实验,利用现代虚拟现实技术或半实物仿真技术,构建训练系统的操作训练模型和模拟训练仿真环境,为系统的操作人员提供模拟训练的实验平台。根据仿真技术实验的目的结合计算机仿真技术课程要求,仿真技术实验课程具有以下特点:一是系统实验对象的针对性。仿真实验必须针对某个具体的对象或系统开展仿真实验活动。如一个控制系统的仿真实验,应从该系统的数学模型入手,明确数学模型中各参数的含义和参数之间的物理关系,以此开展仿真实验才具有针对性,而不能笼统地给出一个仿真计算的式子,不加分析就开始进行仿真计算。二是仿真实验模型的有效性。仿真实验模型是仿真实验系统的一种抽象,与实验系统和内容结合紧密,学生应从掌握仿真系统原理的基础上,建立有效的、可计算的仿真实验模型,以便开展仿真实验教学活动。三是仿真实验过程的完整性。仿真实验过程包括系统建模、仿真建模和仿真实验等过程。从仿真实验对象或系统入手,对仿真实验目的,建立仿真实验系统的数学模型,利用掌握的仿真软件或熟知的仿真实验环境,将数学模型转换成仿真计算模型,开展仿真实验,最后对仿真实验与仿真结果进行处理分析。四是仿真实验环境的可操作性。仿真实验依赖于仿真环境与仿真软件,不同的系统、不同的仿真模型,需要在不同的仿真环境下进行。仿真实验环境与仿真软件,有通用计算机程序设计语言,如C++、VB等;有数学计算能力较强应用软件,如Matlab;有针对离散事件系统仿真软件,如GPSS。还有针对不同领域的专业性仿真软件,如流体工程仿真计算软件Fluent,机械设计与虚拟样机仿真软件SolidWorks、Pro/E和UG等。因此,仿真实验的开展应根据仿真实验对象,仿真实验目的和要求,选择正确的仿真实验环境和仿真软件。

2仿真技术实验课教学体系建设

仿真技术实验课程教学改革涉及教学内容,教学体系、教学方法等多个方面。在教学内容上,应紧密配合仿真技术课堂教学要求,合理安排仿真实验项目。如在连续系统仿真方面,应针对仿真对象的微分方程、传递函数、状态空间和结构图等不同模型开展仿真实验,以了解不同模型表示方法的仿真技术。在仿真实验教学体系方面,要结合相关专业对不同仿真技术的要求,有针对性地选择仿真对象。即从建模表示、模型处理、仿真算法设计、仿真结果分析等方面,设置仿真实验案例。在实验教学方法方面,要加强仿真实验前学生的实验准备,以及熟悉仿真实验环境、做好仿真实验过程记录、仿真实验结果处理和分析等方面的工作。

2.1仿真实验课程体系建设

计算机仿真技术属于一门应用类型的课程,课程涉及大量的数学知识,理论性强,同时还蕴含着大量的工程性知识。因此,该门功课的建设与改革要突出工程性和应用性,要注重理论与实际的结合。作为一门实验课程教学体系的建设,主要涉及该门课程的教学目标、教学内容、教学管理与考评、教学过程实施等多个方面。另一方面,计算机仿真实验主要是在计算机上完成,在教学体系建设方面,还要注重学生计算机应用能力和软件编程能力的培养。

(1)实验课程教学目标计算机仿真技术课程的设置目的,是使学员掌握计算机仿真的有关概念、原理和方法,学会利用计算机仿真技术,针对各自研究方向与领域,培养学生开展系统分析、系统设计、系统运用的能力,以及能独立开展实验研究,解决科学研究和工程应用领域中出现的问题。培养学生的计算机仿真思维,提高学生使用计算机仿真理论和技术从事科学研究的能力。

(2)实验课程教学内容计算机仿真技术课程涉及的领域较为广泛,从仿真技术体系来看,课程内容主要包括相似理论、建模理论、建模方法、仿真算法、仿真语言、仿真工具,仿真实验、仿真数据处理与仿真VV&A等。从仿真知识体系来看,课程除涉及大量基础数学知识外,还涉及系统、模型与仿真的概念、方法及分类,连续系统建模与仿真方法,离散事件系统建模与仿真,分布式系统仿真、面向对象建模与仿真技术,虚拟现实技术与仿真等。这些都为如何确定仿真实验内容提出了挑战。为此实验课程内容安排上,我们提出了单项仿真实验与综合仿真实验的解决思路,围绕能力培养选择实验课程内容。通过单项仿真实验让学生掌握重要的知识点,通过综合仿真实验让学生掌握仿真技术的系统知识和仿真技术综合运用能力。其中,单项实验内容包括:系统建模实验,仿真工具运用实验,仿真系统运行实验,仿真数据处理与可信度评估实验等。综合仿真实验主要包括连续系统仿真实验,离散事件系统仿真实验,先进系统仿真实验,虚拟现实仿真实验等。

(3)实验组织实施与管理仿真实验教学过程的组织实施与管理,既要遵循实验课程教学规律,又要突出实验课实践能力和创新能力的培养。在给学生讲解熟悉实验环境、理解仿真对象和仿真目标的基础上,让学生参与实验前准备工作,参与实验方案与计划的制定。根据仿真实验特点,由学生独立或与实验小组完成整个仿真实验过程,重视实验过程中出现问题的分析与解释。让学生在完成实验的同时,还要对实验过程进行总结,提交仿真实验后的体会等。在实验安排方面,加强与相关课程内容的同步结合。在实验学时方面,突出课堂实验与课后拓展实验相结合,即单项仿真实验可在较短的时间内完成,主要安排在教学课程的学时内。对综合性仿真实验采用开放式实验,在制定完实验方案和计划后,可让学生灵活安排时间去完成实验。在实验课程的考核管理是实验过程也是教学过程的重要一环,应加强实验课程的过程考核,通过考核方式的改革,督促学生自觉开展实验活动,达到开设仿真实验课的目的。考核成绩可以按学生的仿真实验准备情况,实验完成质量,实验过程表现与实验报告质量等内容进行综合评定。

2.2实验课教学方法改革

实验教学既是教学活动,又是实践活动。要突出学生的能力培养,也要突出思维能力和科学精神的培养。实验课教学可以采用任务驱动、过程开发的教学模式进行,即在明确仿真实验任务的基础上,由学生自己制定仿真实验任务的计划和方法,编写如何做好仿真实验的准备工作条目,提出每项仿真实验的思路和注意事项,并将这些内容作为仿真实验课成绩的一部分。在这种教学模式下,还要注重以下三方面的工作。

(1)重视仿真实验准备工作仿真实验准备工作是开展仿真实验的前提。仿真实验准备工作包括仿真实验对象的认识和理解,仿真实验目的,制定实验工作步骤以及熟悉仿真实验环境、仿真语言和仿真工具等。要针对仿真实验的对象或系统,让学生查阅相关资料,了解对象和系统的特性,为下一步模型的建立奠定基础,同时,作好仿真实验前的数据收集与准备工作。

(2)强化仿真实验建模分析模型是研究对象或系统的抽象,也是仿真实验的基础。仿真模型的建立是按照一定的目的对所要研究的对象或系统进行抽象的过程。没有正确抽象和描述的仿真模型,就无法开展正确的仿真实验。对于连续系统或离散事件系统仿真建模来说,通常需要根据对象的物理特性,变量特征和仿真实验的目的等开展系统实验建模分析。模型分析主要包括模型的使用对象,模型假设条件,模型内部要素的作用机理,模型简化,模型的表示方式,以及输出结果形式等。建模分析不仅能锻炼和提高学生面向问题的解决能力,同时还可以培养学生逻辑推理能力和科学的思维方式。

(3)突出仿真实验技术应用仿真实验技术主要包括仿真实验设计,仿真算法设计,仿真实验数据处理与分析等。这些仿真技术的应用对提高学生的创新能力、实践能力和探索热情有着重要作用。仿真实验设计主要是制定仿真实验方案,包括编写实验目的,实验步骤,实验初始条件设定等。仿真实验算法设计是一项具有挑战性和创新性的工作,在这一方面要充分让学生去阅读相关文献,为仿真实验设计高效、正确的仿真算法。同时,在算法设计时还要考虑到仿真实验环境,仿真实验环境包括仿真所用的软件和硬件等。在此教师主要给学生以引导和提示,让学生熟悉相关的实验环境,摸索和掌握各种实验工具的应用。在此基础上,再让学生编写仿真实验程序、设计计算步长等相关仿真计算工作。仿真实验数据处理与分析是仿真实验的重要组成部分,让学生掌握常用的数理统计的方法进行实验数据处理与分析。同时,还要通过仿真实验,教会学生对仿真对象变化规律如何做出合理的估计和判断的方法,以达到实验的目的。

3仿真技术实验课教学案例

以连续系统仿真为例,对起重机吊运系统特性开展研究。利用起重机吊运系统仿真实验,进一步阐明仿真技术实验课程教学方法的运用。

3.1仿真实验前准备

在实验准备阶段,首先要认识仿真对象,弄清仿真对象的系统组成,即系统是有哪些实体对象构成的,系统中各个实体的参数属性,系统内部实体之间的作用机制等。在本案例中系统由起重机小车、钢丝绳和吊运的货物构成。其次,是要明确仿真实验的目的,即起重机小车的移动速度、吊绳长度和货物质量等相关参数,对吊运时货物摆角的影响。三是系统抽象,对系统中无关的因素进行简化,如忽略吊运时吊绳长度变化、风速和前后摇摆等影响,以降低系统建模的复杂性。四是收集实验所需数据,为系统建模做好准备,如货物的质量、吊绳长度等。

3.2实验模型建立

根据上述准备工作,利用运动学和动力学的相关知识,结合仿真目的建立仿真实验对象的数学模型。在建立模型时,首先考虑模型的初始状态,给出了初始条件下的参数和方程。其次,考虑货物吊运时的摆动,即在某一摆角下的系统状态,以此建立该状态下货物吊运摆动角度与货物质量、吊绳长度和吊运速度之间的计算关系。这样就为下一步的计算机的仿真计算奠定了基础。建立的起重机吊运货物时的数学模型。

3.3仿真实验

根据上述的实验模型,开展仿真计算。仿真计算可以采用通用程序设计语言,如C语言,也可采用数值计算和科学分析软件Matlab来完成。对于Matlab软件来说,即可采用M文件编程方式,也可利用SimLink方式进行交互式仿真。因此,在这一阶段要鼓励学生积极动手,独立思维,利用不同状态下的参数计算开展系统的仿真实验。

3.4仿真实验结果分析

仿真实验结果分析就是对仿真实验计算的数据进行综合分析,获取系统的相关信息和实验结论,达到仿真实验分析的目的。在计算结果分析时,要让学生观察多组输入输出数据对系统的影响,来进一步认识系统。如在吊运过程中,通过修改吊运货物的质量,吊绳的长度和水平运行速度,来计算和观察吊运摆角的变化,以此来达到认识起重机吊运系统的性能和变化规律。

4结束语

第7篇:数学建模常用模型算法范文

关键词:数学建模;数学实验;创新能力;教学形式;教学内容

中图分类号:G642.0 文献标志码:A 文章编号:1674-9324(2012)03-0033-02

一、数学建模的起源和发展现状

数学建模的教学尝试,始于20世纪70年代末,其教学理念是将数学与工程技术、管理科学、计算机科学紧密联系在一起,培养学生运用数学思维和方法解决实际问题的能力。数学建模课程的开设改变了传统的知识灌输型数学教育方式。数学实验是计算机技术和数学软件引入教学后出现的新生事物,是数学教学体系、内容和方法改革的一项创造性的尝试。数学实验概括地讲包含两部分内容,即“数学的实验”和“数学应用的实验”。“数学的实验”是用计算机及有关的工具软件解决数学问题;“数学应用的实验”是用计算机、工具软件及数学知识和方法求解其它学科领域的实际问题。上世纪六、七十年代,美、英等国家的一些学校开设了一门称为数学建模的课程,着重讲授一些把实际问题归纳为数学模型的方法,以培养建模能力。1986年开始的美国大学生数学建模竞赛推动了数学建模课程的普及。数学建模课程越来越受到重视,现在每两年召开一次数学建模教学国际会议,研究数学建模课程和数学建模教学[1]。20世纪80年代初,数学建模作为一门崭新的课程进入我国高校,萧树铁先生1983年在清华大学首次为本科生讲授数学模型课程。1987年由姜启源教授编写了我国第一本数学建模教材。数学建模课程早期教学活动的成功使我们认识到高等教育除了传授知识以外,还应注重对学生综合素质的培养,尤其应当创造一定的机会和环境让学生们去运用书本知识,在运用过程中开拓他们的进取精神、创新精神和竞争意识。在国家教育部关于《高等教育面向21世纪教学内容和课程体系改革》计划中,已把“数学实验”列为高校非数学类专业的数学基础课之一。1991年中国开始了由教育部高教司和中国工业与应用数学学会联办的每年一届的全国大学生数学建模竞赛。受这一竞赛的影响,从1993年至今,数学建模教学在全国各高校迅速发展起来,目前几乎所有的高校都开设这门课程或相似名称的课程,出版的教材也有几十种。

二、当前数学建模和数学实验课程的特点及不足

随着高教社杯全国大学生数学建模竞赛的不断开展,各高校也越来越重视数学建模和数学实验课程的教学工作,并通过围绕该赛事组织本校的预赛等工作,大力推广数学建模的参与面。分析历年来全国大学生数学建模竞赛赛题,可以发现近年的赛题有如下一些特点:题目的难度较高,对数学知识的要求超出一般工科学生本科阶段讲授的高等数学、线性代数和概率统计这三门课的要求;问题越来越接近解决生活中遇到的实际问题,题目应用性很强;题目中常常会出现大批量的数据,这些数据的处理和合理应用直接影响题目的求解;题目经常是命题专家的课题的一部分或简化,要求有一定的专业背景知识;解决问题的手段与计算机的联系也越来越密切,数学软件的使用趋于普遍,对学生的计算机能力要求越来越高;问题的综合性要求较高,对学生的数学应用能力和创新能力也要求更高。目前已有的数学建模和数学实验的的教学工作,主要是针对典型的教学案例,讲授如何建立适当的数学模型的理论知识,以及解决问题和分析问题的过程。教学中,教师还是以电子课件的课堂讲授为主,学生的实验活动主要是在课外完成,练习作业也基本以较为简单的题目为主,学生难以获得参加系统的、全面的训练。因此,数学建模与数学实验课程传统的教学内容、教学手段、教学方法与近年数学建模竞赛和学生对竞赛辅导的要求的距离较大。学生在面对大学生数学建模竞赛的真题面前,普遍感觉题目较难,难以下手;很多学生在建模的过程中有一些好的想法,但是由于数学软件基础较弱,难以实现自己的算法。

三、多形式的开展数学建模与数学实验课程的教学

基于上面在数学建模和数学实验教学遇到的问题,可以从下面两点来考虑。

1.教学形式多样化。数学建模和数学实验的教学和实践活动已在高校普遍开展起来,成为本科教学中的亮点,在加强素质教育、培养高素质开拓型人才和应用型人才方面发挥了其他课程无法取代的独特作用[2]。数学建模和数学实验的教学形式也应多样化,可通过多种途径开展。①李大潜院士强调要将数学建模的思想融入数学类主干课程[3]。《高等数学》等数学主干课程的教学中,要融入数学建模和数学实验的内容,增加一些简单建模的例题,强调运用数学知识解决实际问题的教学。②举办数学建模系列讲座,对更多的学生进行数学建模启蒙教育,宣传数学建模的基本思想,激发了同学们对数学建模的兴趣。③开设《数学实验》和《数学建模》公共选修课,系统介绍数学建模的基本内容和数学软件的功能,培养学生的数学建模能力。④组织开展校内数学建模竞赛,选拔学生参加全国大学生数学建模竞赛,我校数学建模成绩在上海市名列前茅。⑤从数学建模和数学实验出发,为学生开设创新实验,鼓励学生申请数学建模的大学生创新项目,培养优秀学生的数学建模的素养和能力。

2.教学内容多样化。①数学主干课程中,可结合课程的特点穿插具有建模思想的例题。例如高等数学微分方程一章中,增加了对汽车碰撞模型的介绍。这类教学,主要是让学生了解和体会数学建模的基本思想和基本概念,激发学生应用数学知识解决问题的兴趣。

②数学建模讲座可以选取某种模型,使学生全面理解模型的适用范围、典型特征、建模及求解过程。通过对该模型比较深入的理解,能了解数学建模的全过程,能举一反三。③数学建模和数学实验的选修课可以比较系统的讲授常用的数学模型的基本知识,介绍一种数学软件的使用。通过该课程的学习,使学生能比较系统的了解数学建模的基本过程,掌握数学建模的基本技能,能运用数学模型解决较为简单的实际问题。④创新实验和大学生创新活动,针对的应该是具有较扎实基础和主动性的学生。除了介绍数学建模的基本知识和基本方法外,可以选取近年来的数学建模真题或者和学生的专业紧密结合的课题作为研究内容。不强调教学内容的多少,更注重于在教学过程中培养学生的分析问题和解决问题的综合能力。在这个过程中,可以同时结合计算机等手段,培养学生独立完成从建立数学模型、模型的求解、模型理论解释、计算结果分析等完整的解决问题的过程。正如数学建模竞赛的口号“一次参赛,终生受益”所说的,给学生一次完整的参与,会对学生能力的提高起到更好的效果,这种训练是课本知识的讲授难以代替的。

参考文献:

[1]谭永基.对数学建模和数学实验课程的几点看法.大学数学,2010,26(10).

第8篇:数学建模常用模型算法范文

【关键词】负荷建模;静态负荷模型;参数辨识;遗传进化算法;最小二乘法

0.引言

在对最小二乘法的辨识过程进行初步研究的基础上,指出其存在的不足,针对这一问题,采用了一种用于电力系统负荷建模和参数辨识的遗传进化算法 ,该方法具有全局搜索优化特点 ,适用于非线性、不连续或微分不连续的各种负荷模型。

1.最小二乘法

最小二乘法大约是1795年高斯在星体运动轨道预报工作中提出的。后来,最小二乘法就成了估计理论的奠基石,由于最小二乘法结构简单,编制程序也不困难,所以它颇受人们重视,应用相当广泛。最小二乘法是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。是用最简单的方法求得一些绝对不可知的真值,而令误差方法之和为最小,通常用于曲线拟合。

1.1幂函数模型

其形式为P=a■V■Q=a■V■ (1-1)

其中,P,Q,V均为额定运行参数的标么值。

1.2辨识准则及目标函数

将式1.1两边取对数,转化成线性形式,即

lnP=lna■+b■lnVlnQ=lna■+b■lnV (1-2)

幂函数模型构造的目标函数如下:

minJ■(p■,α)=■[■(V■)-■m(V■)]■ minJ■(Q■,β)=■[■(V■)-■m(V■)]■ (1-3)

其中N为每一负荷记录的数据长度。■,■是与系统有功和无功的模型响应。

p■Q■为V=V■时的有功和无功实测响应,待辨识的参数为a■,a■,b■,b■。

2.应用实例

2.1实验数据来源

实验数据取自2008年12月19日-20日由某变电站对110kV变电站35kV侧进行的负荷特性的稳态实验。该次实验分别在早高峰,晚高峰及深夜低谷时进行测试,并记录下主变压器35kV侧的电压、有功功率及无功功率。

2.2数据处理

在进行负荷静态模型参数估计之前,需将各测量值除以额定值化成标么值。如表2-1所示,为某变电站35KV侧的负荷特性实测数据(表中数据为有名值)

表2-1 12月19日晚高峰20日早高峰1#35kv侧主变压器

2.3模型参数结果

将表2-1中的测量数据化为标么值,运用前面所述的参数辨识方法,即可分别得到各个测试点的幂函数模型。计算结果列于表2-2

表2-2变电站35KV综合负荷的数学模型计算结果

2.4有功和无功偏差结果

将实测电压代入个模型,计算得到有功功率及无功功率,并与实测有功功率及无功功率进行比较。下面列出12月19日晚高峰时,12月20日早高峰时1#主变压器35KV侧负荷特性部分结果。其中测试的计算值和实测值如表2-3和2-4所示,模型有功功率和无功功率的计算值与实测值的偏差如表2-5和2-6所示。

表2-3 12月19日晚高峰1#主变压器35KV侧负荷

基准值PB=5.951MW QB=2.203MVA VB=35KV

表2-4 12月20日早高峰1#主变压器35KV侧负荷

基准值 PB=7.95MW QB=3.8MVA UB=35KV

2.5结果分析及讨论

(1)比较表2-3、2-4中的数据可知,当电压变化时,对负荷无功功率的影响很大,而对有功功率的影响相对较小。

(2)当电压变化范围较小时,模型的计算值与实测值都比较接近。

(3)该次实验所需负荷特性数据是在人为干扰下对负荷点进行调压使之不超过额定值的正负10%的范围而获取的。这是通过进行稳态实验传统静态模型模拟负荷特性的一个最基本的条件。在这个条件下进行实验时,模型的拟合精度相对较高。

3.遗传进化算法

遗传进化算法的应用研究己经从早期的组合优化问题扩展到现在广泛应用于神经网络、机器学习、智能控制、非线性优化、系统辨识、信号处理及故障诊断等问题,尤其是遗传进化算法在许多工程实际中的成功应用,更引起了专家学者的极大的研究兴趣。

3.1遗传进化算法的定义

遗传算法是目前用于动态负荷模型参数辨识较为成功的方法。根据模式定理:在选择、交叉和变异的作用下,具有低阶、短定义距以及平均适应度高于群体平均适应度的模式在后代中将以指数级增长。所以,遗传算法具有良好的全局收敛性能。本文的模型参数辨识采用的就是这一算法,下面详细介绍一下。

遗传算法是仿照生物界的遗传进化过程提出的一种优化算法。与传统搜索算法不同,遗传算法从一组随机产生的初始解,称为群体,开始搜索过程。群体中的每个个体是问题的一个解,称为染色体。这些染色体在后续迭代中不断进化,称为遗传。遗传算法主要通过交叉,变异,选择运算实现。交叉和变异运算生成下一代染色体,称为后代。染色体的好坏由适应度来衡量。根据适应度的大小从上一代和后代中选择一定数量的个体,作为下一代群体,再继续进化。这样经过若干代之后,算法收敛于最好的染色体,它很可能就是问题的次优解或最优解。遗传算法中使用适应度这个概念来度量群体中的各个个体在优化计算中有可能达到最优解的优良程度。因此,作为模拟生物进化过程的遗传算法,在解一个问题时应包括以下5 个要素:

(1)问题可能解的遗传表示(可能解表示为字符串,作为染色体)。

(2)建立可能解的初始群体(种群)。

(3)评价函数,用以评价每个染色体所代表个体的优劣。

(4)遗传操作(选择、复制、交叉、变异)用以改变后代染色体的结构。

(5)遗传算法中的各种参数。

3.2遗传进化算法的基本计算

遗传进化算法的基本计算包括三个过程:选择、交叉和变异。

3.2.1选择

遗传算法通过选择运算来实现对群体中个体进行优胜劣汰操作。选择的目的是为了从当前群体中选出优良个体,使它们有机会作为父代产生后代个体,选择过程按照当前解群中每个个体的适应函数值,用随机的方式选出一定数目的个体,用于繁殖下一代。适配值较大的个体在选择中获得较多的机会进行繁殖,反则反之。

3.2.2交叉

所谓交叉运算,是相互配对的两个染色体按照某种方式交换其部分基因,从而形成两个新的个体。交叉运算是遗传算法区别于其它进化算法的重要特征,它在遗传算法中起主要作用,是形成新个体的主要方法。

3.2.3变异

变异是按照一定的变异概率,随机选定一个个体并随机确定某个基因位置,进行基因翻转,实现变异。遗传算法中,选择算子提供了算法向最优解收敛的保证,交叉算子保证了遗传算法的全局搜索能力,变异算子作为辅助算子,可以在当群体在进化中陷于搜索空间中某个超平面而仅靠交叉不能摆脱时,通过变异可以跳出该超平面。这里,针对要解决的问题的特征,对标准遗传算法进行了一定的改进:

3.3静态负荷算例

令种群规模 n=50,每个个体面对竞争个数为m=30,每代保留10%的精华,即 E=n.10%=5个。变异量参数 Z=0.001,比例因子β=e■,其中n■为迭代步数。解向量变化范围如表3-1:

表3-1

该变化范围仅在随机产生初始解群时使用,种群进化演变过程中并未对各个体进行范围检验,因为实际上那些不合理的解相应的误差值很大,很快就会被淘汰掉。算例:某工业负荷实测数据,辨识分别对P,Q进行辨识,100代后结果如下(见表 3-2)。

静态负荷模型为:

P=0.454084U1.405,Q=0.179435U3.206.

P0,a1,Q0,b1每次辨识结果都非常接近,辨识重复多次均很快能收敛到某一个结果附近,由于现场试验未虑及频率变化,实际测得的数据中所包含关于频率的信息过于的少,远远在噪声和测量误差之下,因此与频率f有关的参数a2,b2每次结果都相去甚远,所以辨识时不考虑频率特性,即令a2,b2均为 0。有功和无功拟合曲线与实测曲线的比较见图3.1.

图 3.1 静态负荷模型有功、无功拟合与实测曲线比较

表3-2 有功、无功功率的电压特性

3.4小结

(1)辨识结果是令人满意的。从图3.1和表3.2可以看出遗传进化算法的结果比最小二乘法给出的结果更优。改变模型阶次,或者由线性模型变为非线性模型,算法表现出很好的稳健性。而最小二乘法等传统方法因模型阶次提高或引入非线性因素使结果变得恶化。

(2)初始解群可以通过随机的办法产生,亦可结合对于待解问题的某些已知信息来获得。遗传进化算法原则上可允许初始解范围没有限制而搜寻到最优解。本算例是利用负荷的已有的知识和经验使与最优解比较接近,并给出了大于最优解 20倍的范围,仍获得了理想的解。

(3)遗传进化算法的缺点在于计算量较大,但其内在的并行能力在一定程度上弥补了这一点。更重要的是它能够在许多别的现行算法一筹莫展的问题上发挥作用。

4.总结

负荷具有时变性及随机性、分布特性、复杂性以及多样性等特征,这些特性决定了负荷特性的难以理解与把握,造成了负荷建模的困难性。近几年遗传算法在电力系统领域得到了广泛应用。并且在解决许多具体问题的过程中提出了各种改进的遗传进化算法,取得了令人满意的效果。本文研究了一种用于电力系统静态负荷建模和参数辨识的遗传进化算法,该方法具有全局搜索优化等特点,适用于非线性、不连续或微分不连续的各种负荷模型。并将其成功应用于基于负荷实测数据的静态负荷建模,虽然遗传算法具有许多其它搜索方法所缺乏的独特优点,但是尚存在一些需要深入研究和有待完善的一些课题。遗传进化算法在理论方面的研究尚处于初级阶段,还有待于完善和提高。此外对于遗传进化算法的一些参数的选取,如种群大小、交叉和变异的概率,编码方式及选择方式等还需要深入研究。

【参考文献】

[1]张红斌,李黎,贺仁睦.动静态负荷模型在电网暂态稳定计算中的应用[J].电力自动化设备,2009,N0.6;49-53.

[2]张琦,韩祯祥等.进化规划方法在电力系统静态负荷模型参数辨识中的应用[J],2007,21:9-12.

[3]唐巍,郭镇明,李殿璞.混沌优化用于电力系统静态负荷模型参数辨识[J].电力系统自动化,2009,19,8-11.

[4]贺仁睦.电力系统精确仿真与负荷模型实用化[J].电力系统自动化,2004,28(16):4-7.

第9篇:数学建模常用模型算法范文

如今,3G 无线网络和手持终端设备已经开始大规模部署,下一代无线通信协议标准,俗称4G,也已经基本制定完成。3GPP 的长期演进(LTE) 被大多数国家接受为4G 标准。LTE 的支持者宣称只需对现有的网络基础设施更新部分关键部件就可以完成升级,因此LTE 得到了业界的广泛认同。2008 年12 月11 日,3GPP 批准并冻结了LTE Release 8,这一里程碑式的事件开启了研发兼容新协议的产品的大幕。移动WiMAX(802.16) 作为4G 的另一个候选方案,与LTE 在物理层应用上有许多相同的概念,只是实现细节上存在不同。这也为开发同时支持WiMAX 和LTE 方案的产品提供了可能。在物理层设计上,LTE 和WiMAX 的复杂度相差不多。对LTE 的研究为我们重提调制解调算法设计和验证过程的重要性提供了机会。在算法设计阶段犯下的错误很难在硬件设计或者嵌入式软件开发阶段弥补回来。对算法的验证是为了检测设计能否满足协议标准的要求。例如,需要检测不同信道环境下的最大误包率。协议标准的很大一部分内容都被用来定义测试环境。当选择某种工具或者方法来进行有效的算法设计时,工程设计者需要从整个设计流程的角度来考虑算法复杂度的要求。针对一些简单设计的解决方案对更大更复杂的系统来说可能完全不适用。而如果每一个项目都采用独特的工具和方法,项目的维护就会成为噩梦。一些表面上看成本很小的解决方案,后续可能需要购买其他昂贵的工具。而如果工具某些基础功能缺失,也会耗费工程师更多的时间和精力。本文主要探讨从3G 转向4G 的物理层设计过程中的仿真工具效率问题。这些关于效率的准则也可以用于其他信号处理领域。

2LTE 和WiMAX:物理层关键技术

LTE 和WiMAX 都是基于正交频分复用(OFDM) 的多载波调制方案,通过多输入输出天线(MIMO) 进行信号传输。这与3G基于码分复用(CDMA) 的概念有很大不同。3G 与4G 系统的物理层基带处理算法有着本质区别。

物理层概念的不同直接导致了仿真复杂度的增加。相比3G而言,4G系统的物理层仿真复杂度大概有100倍的增长。部分原因在于4G系统中,每个数据采样点都需要更多的操作:更复杂的编码/解码算法,需要同时在平行的多个信道上传输,采用了更复杂的信道均衡技术。针对不同频带上的不同信道模型,还有多输入多输出(MIMO)的不同配置(见图1),需要增加大量的测试方案。在此基础上,还需要考虑不同量化精度对系统性能的影响。因此算法的验证工作越来越艰巨也就不足为奇了。

下文的例子都会以LTE为基础。所有的结论也适用于WiMAX和其他需要大规模仿真的信号处理系统。

3设计和验证流程

制定一个新的通信协议标准的目的,是以最小的成本实现用户和网络运营商对高速信号传输的要求,同时也要符合市场化的预期。一个LTE调制解调系统往往同时包含了ASIC和DSP或者微控制器,整个工程需要实现复杂的硬件设计和软件算法。因此,制定一个覆盖算法设计、软硬件实现、以及系统验证的高效流程显得尤为重要。

算法设计的初始阶段,一般都需要首先为算法创建一个浮点模型。一旦这个浮点模型验证通过,下一步就会开始对算法的定点转换,最后再移植到硬件及软件平台上进行验证。

3.1 算法的浮点模型

在设计目标确定以后,系统工程师就需要针对几种备选算法进行测试和优化,然后在蒙特卡洛仿真结果的基础上确定最优的算法。图2给出了以误比特率(BER)或者误块率(BLER)为指标,进行性能仿真的蒙特卡洛仿真平台框图(蒙特卡洛仿真是指激励信号由随机或者伪随机数据源产生的一类仿真)。此时仿真模型并不需要考虑最后的实现细节,所有的算法都可以用浮点模型来表示。

建模效率是反映创建仿真平台难易程度的一个概念。决定建模效率的一个关键因素就是可重用的模型数量。这些可重用的模型可能来自厂商提供的库,也可能是从以前的项目继承得来(也称为重用效率)。当然并不是所有的模型都能从库里面找到,有些模型也需要用户自己开发。开发的模式有多种,比如可以由一些基本的模型组合成一个复杂的模型(分层设计),或者从零开始,根据新的功能需求创建新的模型。

仿真时还需要考虑的一个因素是仿真效率。以前面提到的LTE和WiMAX为例,由于涉及到许多设计参数,因此为了得到最优的算法,就需要仿真大量的参数组合。仿真效率成为制约整个过程的关键。

3.2 从浮点算法到定点算法的转换

考虑到成本的因素,算法的主要部分最后都需要以定点而不是浮点来实现,除非选择浮点DSP。因此,当算法从设计到应用的转换过程中,需要分析量化精度的影响。字长的选择直接关系到实现的性能,字长太短会使系统质量有很大损失。算法本身可能很好理解,但是量化噪声对算法的影响可能很难评估,因此需要小心对待。

一般来说,对算法进行定点转换是一个递归的过程。首先需要创建一个浮点模型,然后将变量逐个进行转换。每个变量定点化后,都需要将仿真结果与浮点模型进行比较。仿真工具应该仅仅通过修改模型参数就实现这一过程,而不需要每次都重写模型。另外,工具对常用的定点数据类型的支持也很重要。因为如果仅仅依靠以整型位移来实现定点,调试的时候会非常麻烦。仿真工具的选择应该在项目的初期就考虑好。如果在项目开始几个月后才意识到问题,此时要更换工具几乎是不可能的。

人们往往会低估定点化过程需要的时间。定点转换其实非常繁琐,花费的时间可能并不比算法设计来得短。因此选择合适的仿真工具显得尤其重要。

3.3 软硬件实现和验证

当算法的定点转换完成以后,定点模型就是系统实现的参考模型,因为它定义了系统的算法性能。一般来说,从算法模型到硬件实现的过程会出现很多错误。这是因为算法开发和硬件实现所遵循的设计原则是不同的,使用的工具也做不到紧密结合。算法工程师往往需要给硬件工程师提供激励信号,作为HDL仿真的输入,然后将HDL仿真的结果与算法仿真做比较。这种方法实现起来会有许多困难:

针对每一组参数配置和测试方案都会有一个仿真结果,为了比较所有的这些参数组合,需要保存大量的激励信号和参考结果文件,既费时又费力

每一个新创建的HDL测试案例都需要算法工程师和硬件工程师一起进行验证,工作量很大

当HDL仿真和参考仿真结果不同时,很难确定错误发生的位置和原因

这种方法已经逐渐被淘汰。现在流行的方法是不同部门之间通过一个可执行平台来传递设计定义。算法部门、RTL硬件部门、以及采用虚拟平台做软件开发的部门可以共享一个仿真平台。算法部门创建的浮点或定点模型作为一个可执行的参考模型文件,可以直接用到HDL代码和软件验证中去。

实现这种设计共享存在两种途径。第一,在算法设计工具中直接导入RTL代码,实现RTL和算法模型的联合仿真。第二,由算法设计工具导出算法模型,以标准库的形式集成到硬件验证工具中去。硬件验证工程师往往更愿意采用熟悉的工作环境,所以第二种途径更为常用。SystemC是大多数HDL仿真工具都能识别的一种标准接口,因此算法设计工具导出的模型一般会采用SystemC的格式。这些SystemC模型也可以直接在虚拟平台中表示一个硬件模型或者激励信号源,对开发的软件进行验证。SystemC模型是在软硬件开发中实现算法模型重用的关键。

图3给出了利用算法设计工具导出的模型来验证接收机实现模块的一个例子。信号源与传输信道模型封装了SystemC接口,产生的激励信号作为定点算法参考模型和实现模型(也采用SystemC封装)的输入。

4算法设计效率

上述的例子表明,从算法设计的角度来看,工具效率是由多个方面组成的。从算法构思到最后的软硬件实现,效率的提升需要工具的各个方面紧密结合,共同完成。

效率包括多个方面:

建模效率

仿真效率

重用效率

验证效率

在设计的开始阶段,选择工具时常犯的错误是只注重某一个方面的影响,而忽视了其他。这并不奇怪。首先,面对复杂的应用环境,传统的思维方式往往只考虑设计环节,即创建浮点模型。其次,项目的压力使得人们急于看到成果,迫使工程师们追求尽快获得一个初步的模型。这些因素导致了大家更倾向于选择浮点优化能力强的工具,因为只有这样才能更快的完成一个设计雏形。而当项目逐渐深入,实现变得越来越重要的时候,这种工具选择的短视才会显现出来。

4.1 建模效率

建模效率是反映创建模型难易程度的一个概念,这其中既包含了创建浮点算法模型,也包含从浮点到定点的转换。算法的最初形式是一些数学表达式,把这些抽象的表达式转换成仿真模型的过程应该是越简单越好。利用标准接口以及遵循一定的代码规则可以提高模型的互操作性。如果工具有好的调试和分析能力,也能改善建模的效率。

建模效率是衡量浮点到定点转换过程的一个关键因素。浮点到定点的转换要求尽可能的保留设计的关键部分,不对代码做大的改动。因此,工具需要支持一些特殊的数据类型、常用运算符、模板、以及运算符重载等。

4.2 仿真效率

工具的仿真效率主要体现在仿真速度上。仿真平台的运行速度对项目周期的每一个阶段都有很大影响。比如在算法设计阶段,需要反复测试算法的有效性,而在定点转换过程中,需要不断调整量化字长。这些都需要很高的仿真速度支持,否则整个项目周期会拉长。

在诸如LTE之类的通信系统接收机设计中,利用接收机算法模型得到衰落信道下的一个误比特率值可能需要好几个小时,有时甚至是几天的仿真时间。而不同的仿真工具之间也可能存在100x的速度差异。如今,通信标准越来越多的采用复杂算法模块,比如多天线发送接收,turbo编解码等等,需要做的一致性测试也大量增加。为了避免项目延迟,保证设计符合预期,我们应该在设计和验证的每一个阶段都仔细考虑工具的仿真效率问题。

仿真效率的提高还体现在工具的批处理能力和平行仿真能力上。虽然工具仿真效率的重要性不言而喻,但是由于在设计开始阶段往往只有一些简单的测试案例,工具效率的差别无法充分体现,从而导致选择工具时不够慎重。随着项目深入,设计越来越复杂,效率的瓶颈会变得日益明显。所以我们需要在一开始就仔细考虑仿真效率的问题。

4.3 重用效率

在通信系统的开发过程中,我们可以重用一些以前的设计。这些设计可能来自其他设计部门。为了能有效的将它们整合到现有的系统中,工具需要提供版本控制、标准接口、以及自动管理设计文档的特性。

4.4 验证效率

从算法设计的角度来讲,验证效率是指算法模型能否直接集成进软硬件架构的验证流程中。理想情况下,算法设计工具应该是从系统到芯片的验证流程中的一个组成部分。这要求设计工具能将算法模型导出为SystemC模型,在HDL仿真器和虚拟平台中重用。

5仿真技术

如今市面上存在很多设计工具,但是所使用的仿真技术可以归为以下三类:

时间驱动的仿真

事件驱动的仿真

数据流驱动的仿真

这些仿真技术的主要差别在于顶层模块是如何调用子模块与子函数的。在数字通信和信号处理系统中,不同的仿真技术将导致仿真速度的巨大差异。

在数字通信和信号处理系统中,信号可以分为数据信号和控制信号,也称为数据流和控制流。

数字通信接收机利用数据信号来检测和解调发送的符号。这些数据信号承载着有用信息,数值在每个采样时间点是变化的。数据信号既可以用无限精度(实数)的离散时间信号来表示,也可以看作有限精度的数字信号。任何一种表示方法都可以附带离散时间索引作为参量。这个参量也可以忽略,因为它仅仅表示信号在时间轴上的位置关系。位置关系要么是已知的,要么可以随时重建。因此离散时间数据信号可以看作是由采样点组成的数据流。

控制信号则是一些逻辑值或者标志,用来对通信或者信号处理系统中的数据链路进行控制和配置。例如,控制信号可以指示信道解码器采用什么样的码表。控制信号的值一般很少改变。因此控制信号可以看作是低速数据流或者离散的事件。在算法设计的开始阶段,控制信号可以首先以参数的形式存在。在后续过程中,比如架构设计阶段,再重新以信号的形式建模(参看图5的例子)。

数据流和控制流在系统的设计验证中发挥了重要作用,系统设计工具需要提供对其建模的要求。下文将对三种建模技术做一个比较。

5.1 时间驱动的仿真

固定步长的时间驱动仿真技术最简单。全局仿真时钟在固定的时间间隔更新,仿真器跟踪全局时钟,在每一次时钟更新后调用模块,读取输入,更新内部状态,计算输出信号。这种方法对所有的模块使用了相同的采样速率。然而,即使在同一个通信系统中,不同信号的带宽也有可能是不同的,扩频系统就是一个例子。此时仿真器需要对低速信号做过采样,这将带来极大的开销,仿真效率也很低。所以固定采用率的仿真方法不适合对通信系统的仿真。

也有一些改进的措施,比如可以对每个模块都标注采样时间,当全局仿真时钟等于采样时间的某个倍数时,才调用该模块。但是这种方法存在很大的局限性,例如当模块的几个输入或者输出信号采样时间不一致时,就无法实现。因此,利用该方法不能建模既有数据输入又有控制输入的模型。

其他的改进方法包括以帧为单位来处理信号,这也称为向量化的处理,就是将顺序的采样值用向量来表示。但是这种方法提高了对内存的要求,也不能用于反馈环路。向量化操作是导致仿真死锁的主要原因,而且一旦发生很难定位错误。总之,时间驱动的仿真方法通常很慢,对通信系统中的数据流和控制流建模效率不高。

5.2 事件驱动的仿真

事件驱动的仿真是指调度算法根据事件序列的发生顺序来指示状态更新的一种仿真技术。当事件发生时,只有那些与事件相关的模块会被调用。对一个事件的处理可能会触发其他的事件,因此事件序列在仿真过程中需要不断调整。当事件的发生在时间轴上分布不均匀时,比如像网络之类的异步系统或者逻辑系统,事件驱动的仿真效率优势才能体现出来。因此这种方法主要用于针对控制流的仿真。

如果是同步系统,比如基于数据流的通信或者信号处理系统,每产生一个采样点都对应发生一个事件,需要更新事件队列,这在运行时的开销就非常大。因此,基于事件驱动的仿真技术不适用于针对数字通信系统之类的系统级设计工具。

5.3 数据流驱动的仿真

模块的调度由输入端口的采样数据数量决定,这就是数据流驱动的仿真技术特性。模块被调用时,会从输入端口读取一定数量的采样数据,同时将一定数量的数据输出。消耗和产生的采样点个数分别对应输入输出端口的速率。当输入端口累积的数据量超过端口速率时,模块就会被调用。

模块的各个端口速率不要求一致,因此建模多速率系统和模块都很方便。

模块调度的顺序又称为调度算法。如果端口速率恒定,或者说端口速率在仿真时间内不变,调度算法就可以在仿真开始之前确定。这称为静态调度,也叫同步数据流。如果模块的端口速率不是常数,而是在每一次调用时都不相同,调度算法就无法预先确定,需要在仿真运行时动态的调整。这称为动态调度或者动态数据流。动态调度会增加额外的运行时开销,但是比起静态调度更灵活。而且在某些数字信号接收机算法中,比如定时恢复或者不固定的采样速率转换模块,只能采用动态数据流来建模。信号的传输可以用带方向的线网来表示。模块的输出端口会与其他模块的输入端口相连。有些端口连接需要特别关注,因为如果端口速率不匹配,可能会造成调度算法的内存问题。另外,反馈环路中需要包含延迟模块。需要特别说明的是,这些问题并不是数据流驱动的仿真造成的,而是离散信号系统本身不可避免的。比如两个离散信号的加法或者乘法操作需要信号有相同的采样速率,而离散信号系统中的反馈环路必须包含延迟。只有遵循了特定的规则,对离散信号系统的仿真才能保证内存不会溢出。而仿真工具应该提供帮助用户定位速率不匹配和死锁的功能。

由于离散时间数字信号可以用数据流和多速率模块来表示,因此采用数据流驱动的仿真器对数据信号和控制信号流建模就有很高的效率。图5给出了数据流驱动的仿真模型的例子。图的上半部分是动态多速率模型,带有高速端口的模块主要用来处理数据链路。图的下半部分是低速的控制模块,用来指示每一帧的符号数或者比特数。由此可见,数据流驱动的仿真是数字通信系统中最常用,也是最有效的仿真方法。

6优化的系统级设计解决方案

对于物理层算法的仿真,我们有多种方案可以选择。包括直接利用C/C++编译信号处理函数库,以及采用商业化工具提供的建模和仿真模式。本节以Synopsys System Studio为例,说明在无线设计领域,商业化工具相比C/C++在各方面的优势。

6.1 仿真模式

上文提及,Synopsys System Studio采用了数据流驱动的仿真模式,能够自动处理静态和动态数据流,特别适合针对复杂通信系统的设计需求。

时间驱动的仿真技术需要在仿真性能(使用向量处理)和仿真灵活性(反馈回路,时域和频域切换)之间取得折中,而且对动态系统模型仿真的支持不够。

C/C++没有专门的仿真模式,开发者需要自己设计调度算法。因此在C/C++中可以使用数据流驱动的概念。SystemC仿真器采用事件驱动的方式,考虑到对仿真性能的影响,应该尽量避免使用。

6.2 建模效率

System Studio对模型接口有严格的定义,支持基于模块的设计方法(见图6),对模型的使用简单明了,文档管理也很清晰。System Studio支持SystemC定点数据类型,允许数据类型重载,从而大大简化了浮点到定点的转换过程。对于商业化的工具,我们需要了解它们的发展历程。一般来说,每种工具及其建模方式都有各自的应用范围。比如针对控制信号的建模方式并不适合通信系统中常见的数据流模型。在浮点到定点的转换过程中,应该避免重复建模,而应采用支持参数的模型,通过参数修改来逐步转换。

C/C++的建模效率很低,因为除了需要设计功能模块,还需要同时开发专门的调度算法来管理这些模块。一旦修改了设计,调度算法也需要做相应的调整。这不但要求所有的研发人员都遵循严格的代码风格,也加大了项目维护的难度。SystemC建模也存在同样的问题,仅有的改进包括增加了对定点数据类型的支持,模型间可以利用FIFO完成数据交换。

6.3 仿真效率

System Studio采用了优化的数据流驱动概念,支持自动分析和产生静态调度算法,必要的时候又保持了动态调度的灵活性,因此仿真效率很高。System Studio针对定点仿真还采用了特殊的优化技术,使得包含SystemC定点数据类型的仿真平台有接近浮点平台的运算速度。

对定点算法的建模与仿真有两种常用的模式。一种是高建模效率(使用一些通用的定点数据类型)加低仿真速度,另一种是低建模效率(使用整型数据类型、移位及与或操作)加高仿真速度。如果选择了适当的调度算法,使用固有的数据类型,C/C++的仿真效率是很高的。从设计复杂度的角度来讲,C/C++仿真的主要工作是设计一个有效的调度算法。商业化的工具由于内置了优化的调度算法,在仿真效率上的优势明显。SystemC仿真内核采用了基于事件驱动的仿真技术,不适用于通信系统的仿真。采用C/C++仿真还需要额外开发的分布式仿真模式和增加数据管理功能,这本身也是一项艰巨的任务。

6.4 重用效率

System Studio极高的重用效率得益于其严格定义的接口规范,这保证了不同来源的模型可以有效整合在一起。而基于模块的设计输入和自动生成HTML格式文档的能力也使得模型重用效率极大提高。C/C++模型接口没有严格的规范,接口定义有很大的自由度,不支持图形设计界面,也不支持文档生成和管理,因此重用效率很低。

6.5 验证效率

System Studio的验证效率很高,内置的HDL导入特性支持所有主流的HDL仿真器。同时System Studio可以导出SystemC模型,因此System Studio开发的模型可以在SystemC仿真环境中使用。

其他的商业化的解决方案多数不提供硬件仿真的接口,或者需要额外购买昂贵的工具。C/C++的验证效率很不错,因为C/C++函数可以与HDL仿真平台或虚拟平台进行集成。SystemC的验证效率也很高,SystemC 模型可以直接在HDL仿真器以及SystemC兼容的虚拟平台中使用。SystemC模型还可以利用时钟和并发的概念来创建适配器,这一点与C/C++不同。

7总结

对于现代通信系统的开发,比如LTE和WiMAX,算法设计验证工具的选择对设计质量和能否早日实现商用都有着非常重要的影响。LTE和WiMAX系统都需要支持极高的数据速率,同时也要满足频谱效率的要求,这些都会导致非常复杂的信号处理算法。4G标准定义了很多应用场景,要求系统在这些场景中都能很好的工作,因此在算法设计阶段需要仿真大量的测试案例。复杂度和项目周期的压力要求算法与结构设计能与软硬件实现工作完全整合在一起。因此,系统设计变成了一项更宽泛的工程,不止需要工程师之间横向的合作,也需要按照项目进展的情况纵向的管理。

设计流程或者方法的选择对设计效率有很大的影响。对于算法工程师来讲,效率体现在使用的工具上,具体包括四个方面的因素:建模效率,仿真效率,重用效率和验证效率。当选择某种工具或者方法来进行有效的算法设计时,工程设计者需要从整个设计流程的角度来考虑算法复杂度的要求。针对一些简单设计的解决方案对更大更复杂的系统来说可能完全不适用。而如果每一个项目都采用独特的工具和方法,项目的维护就会成为噩梦。一些表面上看成本很小的解决方案,后续可能需要购买其他昂贵的工具。而如果工具某些基础功能缺失,也会耗费工程师更多的时间和精力。

Synopsys的 System Studio作为业界领先的仿真工具,针对通信系统设计者面临的挑战给出了完善的解决方案。System Studio的特点包括:

支持算法设计的标准化流程:标准模型接口、自动生成和管理文档、代码检查、版本控制系统接口。