MATLAB优化工具箱在斜拉桥索力调整中的应用

2024-09-19

MATLAB优化工具箱在斜拉桥索力调整中的应用(精选4篇)

MATLAB优化工具箱在斜拉桥索力调整中的应用 篇1

MATLAB优化工具箱在斜拉桥索力调整中的应用

针对斜拉桥施工中出现的主梁标高线形误差和索力误差,采用Matlab优化工具箱,以结构内力和线形为控制条件,利用结构影响矩阵将调索问题变为有约束的二次规划数学模型,运用Madab优化工具进行求解,并求到最终调索增量值.应用于实际工程证明该方法简单、有效,具有一定的工程实用价值.

作 者:郎俊江 LANG Jun-jiang 作者单位:重庆畅渝交通机械工程有限责任公司,中国,重庆400000刊 名:科技信息英文刊名:SCIENCE & TECHNOLOGY INFORMATION年,卷(期):2010“”(13)分类号:U4关键词:斜拉桥 MATLAB 调索

MATLAB优化工具箱在斜拉桥索力调整中的应用 篇2

每种确定斜拉桥成桥恒载索力的方法都有其优点和局限性。随着结构分析计算手段的改进和人们对斜拉桥特性认识的深入, 一些方法逐渐被淘汰, 特别是对于大跨度密索体系斜拉桥, 孤立地使用某种方法 (如刚性支承连续梁法、零位移法、指定应力法和用索量最小法) 难以达到高次超静定结构分析的精度要求, 也难以确定一个较为合理的成桥恒载索力。

本文以主梁和主塔的最大位移最小 (塔直梁平) 为目标, 利用ANSYS的优化设计功能进行优化, 确定斜拉桥的合理成桥恒载索力, 同时还可以包含斜拉桥诸如大位移、梁柱效应、斜拉索垂度等非线性因素的影响。

1ANSYS的优化设计

优化设计是在满足各种预先设定的约束条件下, 从多种方案中按预定的目标求出最优方案的一种设计方法, 它的理论基础是数学中的最优化理论, 实现手段为电子计算机。

ANSYS程序内置了优化设计模块 (用“/opt”命令进入) , 优化设计模块提供两种优化的方法, 即零阶和一阶方法, 利用这两种方法可以处理绝大多数的优化问题。ANSYS程序的优化设计实际上是一个分析—评价—修正的循环过程。

在介绍优化设计过程之前, 先了解ANSYS优化设计模块中的设计变量 (DVs) 、状态变量 (SVs) 和目标函数的定义:设计变量为自变量, 也就是要优化的变量, 可以定义它的数值变化范围, 最多可设定60个;状态变量是约束设计的数值, 是设计变量的函数, 可以定义它的数值变化范围, 也可不设限制, 优化设计中最多可设定100个, 也可以不设状态变量;目标函数就是要最小化的数值, 它必须是设计变量的函数, 随着设计变量数值的改变而改变, 目标函数只能设定一个。

2ANSYS优化设计的步骤

2.1 生成结构分析文件

生成结构分析文件是ANSYS优化设计过程中的首要步骤, 也是关键步骤, 在ANSYS程序中, 结构分析文件是优化循环文件的组成部分之一。结构分析文件主要由三部分组成:

1) 整个结构的有限元模型, 应包含整个结构的节点信息、单元信息、材料信息、实常数信息、边界条件信息、荷载信息、定义参数、定义变量等。

2) 有限元模型求解, 求解的过程包括指定分析类型、非线性分析控制、运行求解, 如下列命令:

3) 提取并将分析结果赋值给状态变量和目标函数。本步操作涉及到数据的存储、加减或其他操作, 通常用POST1处理器来完成。如:

建立结构分析文件有两种方法:1) 对ANSYS的建模命令集熟悉的用户, 可以用系统编辑器逐行输入;2) 对ANSYS命令集不熟悉的用户, 可以先可视化交互式地完成分析, 然后对ANSYS的LOG文件进行修改, 删除其中无用命令后便形成结构分析文件。

2.2 建立优化分析文件

优化分析文件中包含指定结构分析文件、定义设计变量、定义状态变量、定义目标函数、选择优化分析类型和设置优化分析控制参数。

完整的优化分析文件如下:

3 应用示例

某大桥采用双塔双索面混合梁结构体系, 全长840 m, 跨径组合为60 m+120 m+480 m+120 m+60 m。边跨60 m为预应力混凝土梁, 并伸过辅助墩顶1.8 m, 主跨及其余边跨为钢箱梁。斜拉索采用平行钢丝索, 钢箱梁段索距16 m, 边跨混凝土梁段索距8 m, 全桥共有56对斜拉索。由塔往主跨编号为C1~C14, 往边跨编号为S1~S14, 如图1所示。

3.1 有限元模型

优化计算有限元模型采用“鱼骨”模型, 主梁、主塔、边墩和辅墩采用空间梁单元 (Beam44) 模拟, 边跨预应力和斜拉索用只受拉杆单元 (Link10) 模拟, 斜拉索和预应力钢筋的初拉力以单元的初应变的方式施加到单元上。取全桥的半结构, 共离散成756个单元, 如图2所示。

3.2 结构分析文件

结构分析文件用ANSYS命令流输入, 保存为TXT文件。结构分析文件中, 定义了S1~S14, C1~C14共28个变量存储相应边跨和中跨共28对斜索的初应变值, 索单元实参数中的初应变直接用相应的变量表示, 这28个变量也是优化分析中的28个设计变量 (DVs) 。

斜拉索的垂度效应用Ernst等效弹性模量修正, 在ANSYS中的非线性弹性 (Multilinear Elastic) 材料特性来实现。

本次优化的目标函数是主梁最大挠度和塔顶最大位移最小, 所以在循环分析文件中用*GET命令提取的结果为主梁各锚点和跨中挠度、塔顶水平位移。在分析文件中定义了一个列向量用以存储提取的30个位移结果的绝对值。最后用*vscfun函数提取列向量中的最大值作为目标函数。命令集如下:

3.3 优化分析文件

优化分析文件相对比较简单, 定义了刚才输入的分析文件名、S1~S14, C1~C14这28个变量为设计变量 (DVs) , MYMAXU为目标函数。本次优化计算并没有设置状态变量。

3.4 优化分析结果

由于优化的过程是分析—评价—修正的循环过程, 优化分析所耗费的机时取决于有限元模型计算的时间, 因此, 进行非线性分析和较大的结构模型都会导致较长的优化计算时间。

某大桥成桥恒载索力的优化结果见表1, 表2。

塔顶水平位移为1.2 cm, 方向往主跨。

由表1和表2可见, 主梁的最大挠度为2.4 cm, 塔顶水平位移1.2 cm, 满足“塔直梁平”的要求, 优化后的索力也比较合理。

4 结语

通过本文的叙述和实例可以看出, 利用ANSYS的优化设计功能进行斜拉桥成桥恒载索力是比较方便可行的, 掌握和运用好这一项功能, 可以大大提高工作效率。虽然对大跨度斜拉桥来说, 这一优化过程会耗费一定的时间, 但这一过程是自动完成的, 对于大跨度斜拉桥来说, 优化方法无疑是确定成桥恒载索力的最好方法。

参考文献

[1]李国豪.桥梁结构稳定与振动[M].北京:中国铁道出版社, 1992.

[2]王伯惠.斜拉桥结构发展和中国经验[M].北京:人民交通出版社, 2003.

[3]陈亨锦, 王凯, 李承根.浅谈部分斜拉桥[J].桥梁建设, 2003 (1) :44-47.

[4]张多平, 康炜.兰州市小西湖黄河大桥设计分析[J].兰州铁道学院学报 (自然科学版) , 2002, 21 (6) :69-72.

[5]周孟波, 刘自明, 王邦楣.斜拉桥手册[M].北京:人民交通出版社, 2004.

[6]程进, 江见鲸, 肖汝诚, 等.ANSYS二次开发技术及在确定斜拉桥成桥初始恒载索力中的应用[J].公路交通科技, 2002, 119 (13) :50-52.

MATLAB优化工具箱在斜拉桥索力调整中的应用 篇3

关键词:反应器;优化设计;反应器体积

引言:

在反应器优化设计过程中,经常会遇到选择设计参数,使得设计方案既满足工艺要求,又能降低设备投资及产品成本的问题。而对于一个优化项目而言,需解决两个问题,一是根据实际问题建立合理的数学模型,二是数学模学的求解。反应器的优化设计中,需要对模型进行求导运算,若问题较为复杂,求导则变得异常困难。利用MATLAB中的fminsearch命令,可以对问题进行无约束优化,使得优化问题大大简化。

一、优化模型的变形及fminsearch命令的调用格式

(一)目标函数的变形

最优化,在数学表达式上就是求得目標函数f(x)最大或最小值的决策变量,通用的优化模型可以表示为:

例如求minf(x),为最优化问题的标准型;如果求maxf(x),则应根据实际情况将问题转化为最优化问题的标准型,即:maxf(x)=min(-f(x))。

(二)MATLAB中fminsearch命令的调用格式

MATLAB中的fminsearch命令基于Nelder-Mead算法,求多变量函数的最小值。其调用格式为:

其中x0为被优化参数的初值,func为目标函数,p1、p2为需要额外输入的参数。fminsearch命令通过不断更新被优化参数x的值,最后得到使得目标函数取得最小值时的x值。

二、具有循环操作的平推流反应器

具有循环操作的平推流反应器广泛应用于均相反应,其循环比反映了物料的宏观混合程度,是反应器设计的重要参数。采用适宜的循环比可以有效地调整物料的反应器进口浓度、降低反应器体积和设备投资,如图1所示。

(一)具有循环操作的平推流反应器的基础算式

在平推流反应器进口处对组分A进行质量恒算:

V2CAf+V0CA0=V1CA1(1)

V1=V2V0

V2=βV0

得CA1=■(2)

在平推流反应器内部对组分A进行质量恒算:

■=■■ (3)

将(2)式代入(3)式,■=■■ (4)

由(4)式可以看出,一定的工艺条件、确定的出口转化率的条件下,反应器的体积与循环比有关,循环比具有一个最优值,此时的反应器体积最小。

(二)应用实例

自催化反应A+R→2R,其反应速率方程式为-rA=KCACR,在70℃下等温的进行反应,在此温度下k=1.512m3/kmol.h,其他数据如下:CA0=0.99kmol/m3,CR0=0.01kmol/m3,v0=10m3/h,要求反应的转化率xA=0.99,若采用带有循环操作的平推流反应器,求最佳循环比下的反应器体积。

运用式(4)计算反应器的体积,将反应器体积VR作为目标函数,用fminsearch命令计算最佳的循环比。计算过程如图2所示。

步骤一:编写目标函数M文件

function V=objfunc(beita)

global CA0 CR0 k XAf

CA0=0.99;CR0=0.01;k=1.512;XAf=0.99;v0=10;

CAf=CA0*(1-XAf);CA1=(CA0+beita*CAf)/(1+beita);

sol=quad(@func,CAf,CA1,[],[],beita);

V=(1+beita)v0*sol;

function y=func(CA,beita)

global CA0 CR0 k XAf

CRf=CR0+CA0*XAf;CR1=(CR0+beita*CRf)/(1+bei

ta);CAf=CA0*(1-XAf);

CA1=(CA0+beita*CAf)/(1+beita);

CR=CR1+CA1-CA;

rate=k*CA.*CR;

y=1./rate;

步骤二:用fminsearch对循环比进行优化:

beita=fminsearch(@objfunc,1),其中1为设定的循环比的初值。

最后得到最优循环比β=0.177,此时反应器体积为VR=48.91m3。

不同循环比下的反应器体积如图3所示。

三、全混流反应器与平推流反应器串联

(一)具有循环操作的平推流反应器的基础算式

在全混流反应器中,对A组分进行质量恒算:

■=■ (5)

在平推流反应器中,对A组分进行质量恒算:

■=■■ (6)

反应器总体积为VR=VR1+VR2

由(5)、(6)式可以看出,反应器的总体积与全混流反应器出口浓度有关,存在一个最佳的值,使得反应器的总体积最小。

(二)应用实例

仍然是2.2中的实例,如果采用全混流反应器与平推流反应器串联,则当全混流反应器出口浓度为最佳浓度时,反应器的总体积为多少。

仍然采用2.2中的方法,根据式(5)、(6)计算反应器的总体积,作为目标函数,用fminsearch对全混流反应器出口浓度进行最优化。计算过程如图5所示。

经过优化,最后得到全混流反应器的最佳出口浓度 CA1=0.5kmol/m3,此时的反应器总体积V=43.42m3。不同全混流反应器出口浓度下的反应器体积如表1所示。

四、结论

本文采用MATLAB优化工具箱中的fminsearch命令,对具有循环操作的平推流反应器、全混流反应器与平推流反应串联两种形式进行了优化,得到了最佳的操作条件。运用MATLAB工具箱对反应器设计过程中的问题进行优化,简便快捷,结果准确、可靠。同时,此种方法也可应用于日常教学过程中。

参考文献:

[1]杨宪昆.基于MATLAB在化工优化设计中的应用[J].贵州化工,2005,30(5):51-54.

[2]黄华江.实用化工计算机模拟[M].第1版.北京:化学工业出版社,2004:196.

[3]徐超,等.循环反应器的最优计算[J].合肥工业大学学报(自然科学版),2006,29(11):1454-1456.

[4]张兴法.循环反应器中循环比的研究[J].合肥工业大学学报(自然科学版),2000,23(5):650-653.

MATLAB优化工具箱在斜拉桥索力调整中的应用 篇4

关键词:极值,Matlab优化工具箱,创新能力

0引言

20世纪90年代初,为了培养大学生的创新意识和团队精神,教育部高教司及中国工业与应用数学学会创办了全国大学生数学建模竞赛,迄今为止,本项赛事已经成功举办24届,成为目前世界上规模最大的数学建模竞赛。优化问题作为一个热点,也屡屡见诸赛题。然而在教学中提到的例子通常比较简单,离实际的优化问题有一定的距离,实际问题中的函数通常比较复杂,学生尤其是高职的学生手算起来难度较大。本文就Matlab7.0中的优化工具箱在求解数学建模中的应用进行了阐述。

1函数的最值与非线性优化

定义1:设函数y=f(x)在x0的某一邻域内有定义,若对该邻域内非x0的x,总有f(x)<f(x0)(或f(x)>f(x0)),则称f(x0)为函数y=f(x)的极大值(或极小值),点x0为函数y=f(x)的极大值点(或极小值点)。

定理1:函数y=f(x)在x0处连续,在x0的某个去心邻域上可导,当x从小到大经过x0时,若y=f′(x)从正变负,则x0是y=f(x)的一个极大值点;若y=f′(x)从负变正,则x0是y=f(x)的一个极小值点;若y=f′(x)没有变号,则x0一定不是y=f(x)的极值点。

定理2:函数y=f(x)在x0处二阶可导,且f′(x)=0,若f′′(x)<0,则x0是y=f(x)的一个极大值点;若f′′(x)>0,则x0是y=f(x)的一个极小值点;若f′′(x)=0,则无法确定。

定义2:设函数y=f(x)在闭区间内有定义,x0为区间上的一点,若对该闭区间内非x0的x,总有f(x)≤f(x0)(或f(x)≥f(x0)),则称f(x0)为函数y=f(x)的最大值(或最小值)。

一元函数y=f(x),x∈[a,b]的极值与最值计算步骤:

(1)计算y=f(x)的一阶导数。

(2)解方程y′=f′(x)=0得到驻点。

(3)应用上述定理1或者定理2判断是极大值或者极小值。

(4)比较(a,b)上的极值、不可导点处函数值以及f(a)、f(b)得到最大值或者最小值。

2 Matlab优化工具箱

工程上比较多的优化问题最终都转化为函数最值的计算,所以函数最值计算也是解决许多工程领域实际问题的有效措施。优化计算方法主要有单纯型法、拟牛顿算法等。

Matlab软件提供的优化工具箱可以满足用户对优化计算的各种要求,其提供了fminbnd()、fminunc()、fminsearch()和fmincon()函数用于求解非线性优化问题。

2.1函数fminbnd()

函数fminbnd()主要用于简单优化问题,可在固定的自变量区间内找到目标函数的最小值。其调用格式为:

x=fminbnd(fun,x1,x2):在自变量区间[x1,x2]范围内找寻使目标函数fun的值最小的x。

x=fminbnd(fun,x1,x2,options):参数options用于设置优化算法的参数,可通过函数optimset()设置。

[x,fval]=fminbnd(...):返回最优解x和最优解x处的函数值。

[x,fval,exitflag]=fminbnd(...):参数exitflag用于显示函数算法终止的状态。

[x,fval,exitflag,output]=fminbnd(...):参数output为优化函数的输出,具体同函数linprog()。

例1:利用函数fminbnd()求解优化问题,计算y=x2+3x-5。

(1)手算过程。

(2)Matlab求解过程。

在当前路径下创建目标函数:

利用函数fminbnd()求解目标函数在指定范围内的最小值:

计算结果与手算结果一致,在Matlab返回结果中,还可以看到迭代次数。

2.2函数fminunc()

无约束最优化问题的一般数学描述为xminf(x)。其中,x=[x1,x2,…xn]T为优化变量,f(x)为目标函数,该数学表示的含义是求取向量x,使得优化目标函数f(x)取得最小值。事实上,即使是求最大值的情况,亦可通过在f(x)前面加一个负号,使之转化为最小值问题。函数fminunc()可用于求解比较复杂的优化问题,可计算一个无约束多元函数的最小值,使用的算法主要是拟牛顿算法。其调用格式为:

x=fminunc(fun,x0):参数fun为优化的目标函数,x0为函数优化解的初始值,返回目标函数具有最小值的自变量x。

x=fminunc(fun,x0,options):参数options用于设置优化算法的参数。

[x,fval]=fminunc(...):返回最优解x和最优解x处的函数值。

[x,fval,exitflag]=fminunc(...):参数exitflag用于显示函数算法终止的状态。

[x,fval,exitflag,output]=fminunc(...):参数output为优化函数的输出,具体同函数linprog()。

[x,fval,exitflag,output,grad]=fminunc(...):参数grad返回目标函数在最优解x处的梯度。

[x,fval,exitflag,output,grad,hessian]=fminunc(...):参数hessian返回目标函数在最优解x处的Hessian矩阵值。

(1)手算过程。

根据二元函数极值判别条件,y(0,0)=0为函数的极小值,也是唯一驻点,所以也是最小值。

(2)Matlab求解过程。

在当前路径下创建目标函数:

利用函数fminunc()求解目标函数的最小值:

得到的结果也与手算结果非常接近。返回的结果表明:在默认的情形下,fminunc使用了基于内部反馈的拟牛顿算法,这个方法的每一次迭代都使用了共轭梯度条件。

2.3函数fminsearch()

函数fminsearch()用于多变量目标函数计算最小值,其调用格式如下:

x=fminsearch(fun,x0):参数fun为优化的目标函数,x0为函数优化解的初始值,返回目标函数具有最小值的自变量x。

x=fminsearch(fun,x0,options):参数options用于设置优化算法的参数。

[x,fval]=fminsearch(...):返回最优解x和最优解x处的函数值。

[x,fval,exitflag]=fminsearch(...):参数exitflag用于显示函数算法终止的状态。

[x,fval,exitflag,output]=fminsearch(...):参数output为优化函数的输出。

在当前路径下创建目标函数:

利用函数fminsearch(),求解目标函数在指定范围内的最小值:

2.4函数fmincon()

[x,fval]=fmincon(...)返回目标函数的值在解x中的值。

[x,fval,exitflag]=fmincon(...)返回一个值,exitflag描述fmincon退出条件。

[x,fval,exitflag,output]=fmincon(...)返回一个结构的输出。

[x,fval,exitflag,output,lambda]=fmincon(...)返回一个结构域含有λ为拉格朗日乘子的解x。

[x,fval,exitflag,output,lambda,grad]=fmincon(...)返回值梯度。

[x,fval,exitflag,output,lambda,grad,hessian]=fmincon(...)返回的解x.Hessian矩阵的值。

例4:计算f(x)=-x1x2x3,x0=[10,10,10],满足0≤x1+2x2+2x3≤72。

求解过程:

从上述求解过程来看,fminunc()的迭代次数比fmin search()少,因为fminsearch是基于单纯形法寻优去搜索最值,而fminunc()使用的算法是牛顿法搜索最值,具有较快的收敛速度,所以效率更高。而函数fminbnd()的迭代则采用基于黄金分割和二次迭代方法,目标函数要求是连续函数,得到的解可能是局部最优解。

3结语

在微积分极值和最值教学中应用Matlab优化工具箱,将计算机技术与传统理论教学结合起来,可提高学生的学习能动性和积极性。

参考文献

[1]侯风波.高等数学[M].第三版.北京:高等教育出版社,2010

[2]袁亚湘.非线性优化计算方法[M].北京:科学出版社,2014

[3]王沫然.MATLAB与科学计算[M].第三版.北京:电子工业出版社,2012

上一篇:该怎么办心得体会下一篇:热能工程及其自动化