程序化建模(共3篇)
程序化建模 篇1
0 引言
随着风力机向更大、更柔和结构更优的方向发展,精确地模拟机组的结构柔性以更好地揭示系统的动态行为显得越来越重要[1~3]。多体系统方法是将实际的机械系统离散为有限数量的刚体,导出相应的微分方程。本文采用所谓混合多体系统建模方法[4,5]。该方法将一个柔性叶片划分为几个超级单元,每个单元仅有3个刚体通过弹簧和阻尼器连接,应用R-W(Roberson-Wittenburg)方法能较好地实现动力学方程推导的程式化。文中通过对1.5兆瓦风力机叶片的动力特性和响应的分析表明仅需为数不多的几个单元,就能准确地模拟叶片的动力特性。
1 叶片动力学微分方程的建立
本文将多体系统动力学中的R-W方法[5,6]应用于叶片动力学方程的建立。该方法把离散后的叶片具体结构,用数学语言进行了成功的描述,给出的叶片系统动力学一般公式的矩阵形式,具有程式化的特点,有利于计算机程序实现。
将叶片系统离散为若干个超级单元,每个单元由3个刚体通过万向节连接,可以描述叶片的挥舞和摆振以及变桨距等运动。将叶片系统看着是由若干刚体和铰组成的树形结构。使用通路矩阵T来描述各刚体相对运动关系。
其中:。由于坐标系转动前后的基点P与Q始终重合,故基点的相对位移、相对速度与相对加速度为零。
在地面上建立惯性坐标系,原点为O。取万向节的转动角度为广义坐标,从叶片拓扑树系统可知,叶片离散系统的广义坐标阵为:q=(q1 q 2 q 3 q4 q 5 q 6)T。而铰约束阵:H=diah(H1 H2 H3 H4 H5 H6),定义矩阵β:β=-TT.H,则相对角速度:
绝对角速度:
其中,。任一刚体的质心在惯性坐标系上的位置可以通过一系列矢量的叠加而成。应用通路矩阵d来描述各铰和各物体的分布及关系。定义矩阵:,则刚体质心速度:
令:u=(u1 u2 u3 u4 u5 u6)T,其中:
则质心加速度:
令刚体Bi(i=1,...,N)的质量为m,中心惯量张量为Ji。该刚体所受的外力主矢与相对于质心的主矩分别记为Fi0与Mi0。叶片离散系统质量和惯量张量为:m=diag(m1,m2,m3,m4,m5,m6),J=diag(J1,J2,J3,J4,J5,J6)。
由Jordain变分原理可得系统的动力学方程的变分形式为:
代入关系[5]:
由于广义坐标的速度变更相互独立,整理后可得:
其中:F0,M0分别为外力和外力矩,Fτ为力元。ε=(ε1ε2ε3ε4ε5ε6)T,εi=ωi×(Ji.ωi)。
2 超级单元模型及弹簧系数的确定
叶片结构分析所建立的模型应该与实际叶片具有相同的自然频率。而在多刚体模型中引入“超级单元(super elements)”[4]建模,可在尽量少的自由度下得到满意的结果。
在超级单元方法中,叶片用几个超级单元模拟,每个单元由3个刚体通过铰点和理想的弹簧连接,如图1所示。弹簧的刚度系数应按如下原则确定:1)在静载荷下,超级单元的弹性变形应和柔性叶片变形相等;2)超级单元应与相同尺寸的刚性梁有相同的质量和惯性性质;3)超级单元的固有频率应尽量接近连续梁的固有频率。
考虑外力F作用在自由端的情况,将梁弯曲的挠曲线方程分离变量整理后可得:
其中:v为挠度,y为距固定端的距离,M为弯矩,E为弹性模量,I为截面惯性矩。积分上式并代入边界条件v=(0)=0,v'=(0)=0,整理后可得:
将y=L代入便可得在外力F作用下,自由端的转角θ和挠度δ;同理可得外力矩M作用下的自由端的转角θ和挠度δ。
综合上述结果,写成矩阵形式如下:
由图1中的几何关系可得离散模型中弹簧系数与广义坐标[∆γ1,∆γ2]T的关系如下:
其中:L为单元的长度,k为单元内刚体的长度系数。图1中三刚体的长度分别为k L,(1-2k)L和k L。解得弹簧的刚度系数为:
文献[4]建议长度系数k的取值范围为:,这里取k为0.2611。
3 算例
以1.5MW变速恒频风电机组玻璃钢叶片为例计算了该叶片挥舞(弯曲)振动的固有频率,叶片在风力机启动、刹车和正常运行状况下,叶尖弯曲挠度随时间的变化,数值结果与常规有限元计算结果作了比较。
3.1 叶片的固有频率分析
风力机整机功率1.5MW,额定转速19rpm,风轮直径70m,材料密度取为1850kg/m3。叶片在平面内绕轴转动[3]。
利用MSC.ADAMS的求解器求解特征方程。求得叶片前四阶固有频率。分别取3,4,5个超级单元计算,考察单元数量对计算结果的影响并与有限元分析结果[3]进行了比较,结果如图2和表1所示。
图2中纵轴为相对误差%,横轴为计算结果对应的超级单元数,每条折线代表对应阶固有频率计算结果误差大小的变化趋势。从图中可以清楚的看出:当取到4个超级单元后结果趋于稳定,接近有限元计算的结果,超级单元方法用较少的自由度(4个超级单元,16个自由度)就可以得到满意的结果。
3.2 叶片尖端弯曲挠度分析
模拟的叶片工作转动过程为:加速过程与稳定转速过程;突然刹车到风力机完全停车过程。图3和图4分别表示叶片从零转速启动到工作转速到突然刹车过程中(过程时间140秒),叶片尖端沿弦向和拍动方向的位移。从两图中可以看出,本文计算的位移要较常规有限元方法结果要大,这是因为多体动力学方法考虑了叶片旋转运动对叶片刚度等特性的影响。
4 结论
本文采用混合多体动力学方法,引入超级单元对风力机叶片进行离散,建立了水平轴风力机叶片的动力学方程,利用ADAMS的求解器功能模块实现了数值解法;通过对1.5MW风力机的叶片动力响应计算表明,所建立的模型能正确反映外部激励对结构变形的影响,而且仅需较少的单元即可实现较准确的叶片频率分析和响应分析,特别适合于风力机控制系统的设计。
参考文献
[1]洪嘉振,蒋丽忠.柔性多体系统刚一柔耦合动力学[J].力学进展,2000,30(1).
[2]Lee,D,Hodges D H,Patil M J.Multi-flexible-body dynamicanalysis of horizontal axis wind turbines[J].Wind Energy2002,5:281-300.
[3]李德源,叶枝全,陈严.风力机旋转叶片的多体动力学数值分析[J].太阳能学报,2005,26(4):473-481.
[4]Proefschrift,Cost-effective design and operation of variablespeed wind turbines werktuigkundig in genieur geboren teMiddel ie[C],2003.
[5]Rauh J.Schiehlen W.Various Approaches for the Modeling ofFlexible Robot Arms.Proceedings of the Euromech-Collo-quium 219 on Refined Dynamical Theories of Beams,Plates,and their Applications[C],1986:420-429.
[6]洪嘉振,计算多体系统动力学[M].北京:高等教育出版社,1999.
[7]J.Rauh,Ein Beitrag zur Modellierung elastischer Balkensy-steme.Fortschritt-Berichte VDI[J],VDI-Verlag GmbH,D¨usseldorf,Reihe 18:Mechanik/Bruchmechanik,Nr.37,126p.,1989.
程序化建模 篇2
数学在其发展早期主要是作为一种实用技术, 用于处理人类生活及社会活动中的各种实际问题。近年来, 随着社会以及计算机的迅速发展, 人们对数学的重要作用有了新的认识。数学在社会各领域中的应用越来越广泛, 不但运用于自然科学的各个领域, 而且渗透到经济、军事、管理、医学以至于社会科学和社会活动的各领域, 在许多方面发挥着越来越重要的作用。数学建模[1]就是对我们在科学研究、技术改革、经济管理等现实生活中所遇到的实际问题加以分析、抽象和简化, 引入一些数学符号、变量和参数, 用数学语言和方法建立变量参数间的内在关系, 得出一个可以近似刻画实际问题的数学模型, 进而对其进行求解、分析检验和推广的过程。在数学建模中, MATLAB[2]发挥了重要作用, 尤其是对大量的数据进行分析、处理、加工时, 手工计算很难完成, 往往借助MATLAB来实现。MATLAB强大的数值计算、绘图以及多样化的工具箱功能, 能够快捷、高效地解决数学建模所涉及的众多领域的问题, 倍受数学建模工作者的青睐。
1 MATLAB的主要功能和特点
MATLAB的数值计算功能在数学类软件中可谓是首屈一指。它可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、链接其他编程语言的程序等, 主要用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等各个领域。具体来说, MATLAB具有如下特点:
1.1 友好的工作平台
MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件, 其中许多工具采用的是图形用户界面。接近Windows的标志界面, 人机交互性强、操作简单。
1.2 简单易用的程序语言
MATLAB是一个高级的矩阵语言, 它包含控制语句、函数、数据结构、输入和输出面向对象编程特点。支持命令和程序两种工作方式。移植性好、可拓展性强。
1.3 强大的计算功能和数据处理能力
MATLAB包含了大量的算法, 拥有600多个工程中用到的数学函数, 可以方便地实现用户所需的各种计算功能。
1.4 完美的图像处理功能
MATLAB具有方便的数据可视化功能, 可以将向量和矩阵用图形表现出来。高层次的作图包括二维和三维的可视化、图像处理、动画和表达式作图。可以用于科学计算和工程绘图。
2 MATLAB在数学建模中的应用
2.1 数学建模的一般步骤
下面我们通过数学建模的几个环节和数学建模实例, 介绍MATLAB在数学建模中的应用。数学建模没有固定的模式, 按照建模的进程, 数学建模可分成如下几个环节:1) 问题分析。了解问题的实际背景, 明确建模目的, 搜集必需的各种信息, 尽量弄清研究对象的重要特征, 形成一个比较清晰的“问题”。2) 模型假设。根据实际对象的特征和建模目的, 对问题进行必要的简化, 并用精确的语言提出恰当的假设。3) 模型建立。在假设的基础上, 利用适当的数学工具来刻画各变量间的数学关系, 建立相应的数学结构。4) 模型求解。利用获取的数据资料, 对模型的所有参数做出计算。5) 模型检验。将模型结果与实际情形进行比较, 以此来检验模型的准确性、合理性和适用性。除此之外, 模型的分析, 模型的修改、应用和推广也是数学建模中非常重要的环节, 建模时视具体问题进行选取。
2.2 建模实例:证券投资问题
某银行经理计划用一笔资金进行有价证券投资, 可供购进的证券以及其信用等级、到期年限、收益如下表所示。按照规定, 市政证券的收益可以免税, 其他证券的收益需按50%的税率纳税。此外还有以下限制:1) 政府及代办机构的证券总共至少要购进400万元;2) 所购证券的平均信用等级不超过1.4 (信用等级数字越小, 信用程度越高) ;3) 所购证券的平均到期年限不超过5年。
若该经理有1000万元资金, 应如何投资?
解:1) 模型假设与建立:设投资A、B、C、D、E的金额分别为x1、x2、x3、x4、x5百万元, 则要求利润
f=0.043x1+0.027x2+0.025x3+0.22x4+0.045x5的最大值, 其约束条件为:
此为线性规划[3]问题。
模型求解:在MATLAB命令窗口输入如下命令:
f=[-0.043-0.027-0.025-0.022-0.045];
A=[0-1-1-1 0;1 1 1 1 1;6 6-4-4 36;4 10-1-2-3];
b=[-4 10 0 0];
lb=[0 0 0 0 0];
[x, fval]=linprog (f, A, b, [], [], lb) ;
运行结果:
通过以上的分析、建模、求解可得, 证券A、C、E分别投资2.1818百万元, 7.3636百万元, 0.4545百万元, 证券B和D不投资收益最大, 最大税后收益为0.2984百万元。
3 结论
通过上述模型的求解过程可以看出, MATLAB软件在解决复杂的数学问题时具有方便、快捷、易学易用的特点, 它的强大功能在许多领域都有着其它软件无法比拟的优势。将其应用于数学建模的分析和求解必将大大推进建模的进程, 起到事半功倍的效果。
参考文献
[1]王兵团.数学建模基础[M].北京:北京交通大学出版社, 2011.
[2]张贤明.MATLAB语言及应用案例[M].南京:东南大学出版社, 2010.
程序化建模 篇3
数学建模就是通过对实际问题的分析、抽象和简化,明确实际问题中最重要的变量和参数,并应用某些规律建立起变量、参数间的确定的数学问题(也可以称为一个数学模型),再用精确的或者近似的数学方法求解之,解释验证所得到的解,从而确定能否用于解决实际问题的多次循环、不断深化和完善的过程。[1]数学建模是实践教学,而实践教学是培养学生创新精神和实践能力的重要手段,是提高学生综合素质的关键环节,是当前高校教学改革的重要内容。[2],[3]数学建模在一定程度上是一个学校大学生创造性思维及解决实际问题能力的一个指标。它正在全国乃至世界各大中专院校中受到教育机构的重视,也受到学生的青睐。就我国而言,教育部高等教育司已经在2002年确立了“新世纪高等教育教学改革工程本科教育教学改革立项项目”,即“将数学建模思想和方法融入大学数学主干课程教学中的研究与试验”。
数学建模是用数学方法来解决实际问题的一项实践活动。在这过程中所遇到的问题极少是纯数学方面的问题,基本上都是交叉学科的问题。在数学建模的教学过程中,要求教师传授的是数学建模的思维方法,如优化原理,评价方法,假设与现实的矛盾,等等,而不是某一具体问题的解决方案。
2. 对称原理在有约束条件下对称方程极值中的运用
2.1 连续问题建模与元胞自动机程序设计
许多学科中的问题都属于连续问题。建模时如果用与连续性相关的学科,如微分方程、微积分、偏微分方程等去解决,则需要较深厚的理论基础,这是我们学校学生的弱项。但有些连续问题可通过离散化处理为离散问题,如交通流、经济时间序列、动态规划等问题,这就可以考虑用元胞自动机来进行程序设计。但在具体实施时,因学科不同而导致程序设计方法不同。例如会出现元胞移动不按整数元胞格运行的情况。在2005年国际数学建模比赛的试题中即遇到了这样的问题,见问题1。处理的方法可以将非整数元胞格转化为元胞按概率移动的规则,这时就把概率知识应用于其中,不仅避免了复杂的理论证明过程,而且十分符合事理逻辑。这种方法是把交通、概率统计、程序设计等三个学科方面的问题综合到一起来考虑的,使得十分棘手的问题得到很好的解决。
问题1:设一批旅客在飞机过道上非匀速行进,如何用元胞自动机来描述他的运动?
这显然可用一维元胞自动机来描述。但问题是元胞C并非按匀速运动,而一般情况下元胞都是按匀速运动来说明它的规律的。为了解决这个问题,可引入概率知识。如图1 (b)中,元胞C以概率p停止、以概率1-p行进,则可方便用程序来执行。
2.2 符号动力学建模与程序设计
混沌动力系统中寻找短周期轨道往往是非常耗时的,如文献为了寻找周期为10的轨道,编制的程序所耗计算机机时达半小时以上。这个模型可表示为问题2。其它学科中也有通过计算机枚举再筛选的问题,如果编制的程序不合适,则会导致计算机无法执行。这时利用数学原理事先作一些证明或推理会给程序设计带来很大的便利[4]。
问题2.设有两个符号时间序列C和D,其中
我们规定“1”比“0”大,若序列与的前个字符相同,而S1的第n+1个字符比S2的大,则顺序准则为S1>S2。任意可行序列S必须满足允字条件,即S中任意0的后继序列比D小,任意1的后继序列比C大。那么如何检测出周期为15以内的所有符号序列?
我在文献中,先证明了一个较简单的命题,即对于任意两个互素的正整数a, b∈Z+,a, b>1存在非负整数m、n,使得任意不小于ab的整数c,都可以表示为am+bn=c (am+bn称作a、b的非负线性组合);再提出了单调1—基本字节和单调0—基本字节的概念并指出了它们的作用,克服了Sarkovskii关于连续整数周期点对于函数连续性的限制,而所讨论的Lorenz映射也没有作每个单调支为线性的要求。给出了一些例子中连续整数周期轨道的符号序列的算法与表达形式,所提出的算法效率高,并可在作相应变化后推广到其它动力系统中。这样编制的程序比国内外获得同样结果的时间缩短60%以上。
2.3 图论中的网络问题与程序设计
网络问题是图论中重要的组成部分。但往往因为其路径与点的复杂关系而使程序设计变得很难。如问题3。
问题3.设一个无向图如图2。八个点彼此之间或者路径连通或者不连通(指直接关系)。请问从V1到V8有多少条路径?
图2中,边的一个数组表示两个点之间的连通关系,如V1V3边上的(0, 1)表示从V1到V3是通的,反之则不通。
这个问题如果用不完全归纳法去编制程序,则计算量非常大,样本量是88之大。但我们可以将线性代数知识运用进去。首先我们可以编制一个矩阵V。V中Vij表示Vi到Vj的连通情况。我们定义Vii=0,是考虑到程序计算的方便。
我们注意到一个事实,即从V1到V8的一个路径应是以第一行中的1作为左上角数字、以第八列的1作为右下角数字的一个满秩子矩阵。有了这个线性代数的知识,我们编程就可以大大节省时间了。所得结果为:V1V2V7V8, V1V4V3V7V8, V1V4V7V8, V1V4V5V3V2V7V8, V1V4V5V3V7V8, V1V4V5V3V8, V1V4V5V6V7V8。
3. 结语
数学建模是一门综合性的、交叉性的实践科学,合理的程序设计会大大有利于问题的解决。而合理的程序往往需要多门学科的综合运用,才能使程序的运行变得可行。在数学建模程序设计的教学中要传授这种技巧,让学生养成综合运用各科知识来解决问题的习惯。
参考文献
[1]文玉婵.数学建模竞赛与学生综合素质的提高[J].高教论坛, 2006, (4) :32.
[2]李大潜.数学建模与素质教育[J].中国大学教育, 2002, (10) :41.
[3]张英彦.实践教学的理论基础探析[J].中国大学教学, 2006, (6) :50.
[4]Z.Galias, P.Zglicqynski.Computer assisted proof of chaos in the Lorenz equations[J].Physica D., 1998, 115, (3) :165.