admin 管理员组

文章数量: 1087135


2024年4月15日发(作者:mysql创建数据库失败)

维普资讯

2007 NO.1 2 

Science and Technology Consul而画_F网 

』业技术 

利用MATLAB实现Routh稳定判据的GUI设计 

周岳斌 

(湖南理工学院机械与电气工程系 岳阳 414000) 

摘要:根据自动控制系统R0uth稳定判据的基本原理,利用MATLAB的数值计算和图形用户界面(GUI)设计功能,实现线 

性系统稳定性的快速判别和系统特征根的准确求解,给出了具体的实现方法及程序运行界面。 

关键词:matlab稳定性分析Routh表图形用户界面 

中图分类号:TP3 1 1 文献标识码:A 文章编号:1673—0534(2007)04(c)一0045—02 

MATLAB是一种简洁、直观、高效的 

其所具有的能控制其特性或性能的属性值来 

于特殊情况,点击“计算”按钮就会调用 

h表计算子程序求出完整的Routh表。计 

计算机语言,它具有强大的科学计算能力和 

确定的。MATLAB提供了三个获取当前对 

Rout

出色的图形处理能力,提供了友好的图形用 

户界面(GUI)和齐全的工具箱,在工程技术领 

域得到了广泛应用。 

稳定性是控制系统的重要性能,也是系 

统能正常工作的首要条件。线性控制系统稳 

定的充分必要条件是:闭环系统特征方程的 

所有根均具有负实部;或者说,闭环传递函 

数的极点均位于左半s平面上。由于自动控 

制系统的复杂性,判别计算量非常大,利用 

MATLAB强大的计算能力,设计出GUI应 

用程序后,将大大方便用户,使稳定性分析 

变得很简单。 

1 Routh稳定判据 

如果能够将所有的特征根全部解出来, 

立即可以判定系统是否稳定,但对于三阶以 

上的高阶系统,求解特征根难度较大,采用 

Routh稳定判据可以不必解出特征根,直接 

可判断出在右半s平面是否有根和有几个根。 

若系统的特征方程为: 

口 5 +a

,.as +…+aas+ ;0(1) 

其中an为正,绘制一个表格,最上面 

两行系数按表1的格式填入(1)式中的各系数。 

表l Routh表格式 

从第三行开始按照使第i行第J列的数 

等于(2)式: 

日=一

击 一l日._I  -I1 日.1 _lr, 、1)-r3 ’‘ 、 

如果ai-1,j+1不存在,则代之以0。整 

个表格共n+1行,称为Routh表。线性控 

制系统稳定的充分必要条件是表中第一列的 

所有元素为正数,并且该列中数值符号改变 

的次数等于特征方程中正实部根的数目。 

2 MATLAB的图形对象 

MATLAB中将一个图形的每一个组件都 

看成一个图形对象,这些对象按父对象和子 

对象组成层次结构。每次创建一个对象时, 

就建立一个唯一的句柄。句柄是存取图形对 

象的唯一识别,不同对象的句柄不能重复。 

MATLAB定义了多种图形对象,包括图形 

窗13:、坐标轴、直线、曲面、文字、图 

像、菜单等各种控件。 

各个图形对象的具体显示效果,是依据 

象句柄的函数,g C f获取当前图形窗口句 

算前必须定义几个全局变量,整数n保存特征 

柄;gca获取当前坐标轴句柄;gco获取被 

方程的阶次,行向量p=zeros(1,n+1),保存 

鼠标最近点击对象的句柄。get函数用于获 

特征方程的系数,矩阵c=zeros(n+1),保存 

取指定对象的属性值,set函数用来设置对象 

整个Routh表的系数。使用findobj和get函 

的属性值。findobj可以快速查找所有对象, 数将Routh表上两行系数编辑框的系数读出, 

获取指定属性值的对象句柄。 得到是字符变量,还必须用str2num函数转 

换为数字,再赋给P和C中相应的元素。 

3 GUI程序设计 . 

此时,就可以从第3行开始按照公式(2) 

3.1图形窗口和控件 计算余下的Routh表各行。每计算完一行必 

应用程序的图形窗口有两种生成方法, 须及时判断,一旦发现出现后面所说的特殊 

利用可视化界面环境Guide实现或者编写M 

情况应及时转入相应的子程序,而不得继续 

脚本文件实现,本设计的所有功能全部采用 

下一行的计算。正常情况下还必须用num2str 

M脚本文件设计。 

函数将新系数转换为字符,使用findobj和set 

figure函数创建新的图形窗口非常容易, 

函数将系数在相应编辑框中显示出来。 

并可同时设定窗口的各种属性来控制其显示 

3.3特殊情况的处理 

效果,如菜单条、工具条、背景色、位置尺寸、 

(1)如果ROUth表中某行的第l列系 

标题等。如果需要在运行后调节窗口的大小, 

数为0,而其余各项不为0,可以用一个小 

可将Resize属性值设为013,同时为了能正常 

的正数代替,而继续计算其余各元素。也可 

关闭窗口,必须设置CloseRequestFcn属性, 

以用因子s+a乘以原特征方程,其中a可以 

通过执行close函数关闭窗口对象。 

为任意正数,之后再对新的特征方程应用 

整个窗口按功能分为三块功能区域,一 

Routh判据。 

部分用于显示计算后完整的Routh表;一部 

在Routh表计算子程序中,一旦发现上 

分用于功能和参数设置,如系统特征方程的 

述情况,通过一个单选按钮提示,并将相应的 

阶次、稳定度、特殊情况的处理方式等; 

两个检查框控件使能,由用户选择处理方法。 

还有一部分用于文本信息显示,如稳定性判 

如果以小正数取代,在MATLAB中有 

定结论和特征方程的根。各部分利用 

个系统定义的特殊变量eps,它是计算机能 

unicontrol命令创建了静态文本、单选按 

处理的最小数,约等于2.2204e-0l6,因此 

钮、命令按钮、框架,列表框、检查框、 

可以利用属性设置函数set将该行第l列系数 

编辑框、下拉菜单等控件,构成窗口主体。 

设为eps,然后调用Routh表计算子程序继续 

和figure一样,uicontrol函数也可以一次性 

计算余下的各系数。 

设定控件的各种属性。 

也可以通过下拉菜单控件,选择因子 

使用时,用户先通过上部的下拉菜单设 

s+a的a值大小,在该控件的回调函数中执行 

定特征方程的阶次n,阶次n确定后,Routh 

如下操作:用get和findobj获取a值,利用 

表各行的数据个数就可以确定了。编写一个 

函数cony将保存原特征方程的多项式系数行 

建表子程序作为该控件的回调函数,根据n值 

向量P与行向量【l,a】相乘,就可以得到新的 

自动生成Routh表最上面的两行,由于这两 

特征方程的系数,相应的方程阶次应加l, 

行需要用户用键盘输入特征方程的系数,所 

然后调用建表子程序重建Routh表。 

以使用unicontrol函数建立几个的编辑框控 

(2)如果ROUth表中某行的所有元素 

件。 

都为0,表明特征方程中存在一些大小相等 

在用户未输入特征方程系数前,仅四个 

但关于原点对称的根。这时,可用全0行的 

命令按钮有效,为避免误操作,其他控件用set 

上一行的系数构造一个辅助方程,对其求 

函数将其Enable属性置为off,使其功能暂时 

导,用所得方程的系数代替全0行,然后继 

无效。“计算”按钮用于系数输完后计算Routh 

续运算得到全部的Routh表。 

表,“清空”按钮可将Routh表各行的系数清 

程序设计在Routh表计算时,通过判断 

空,“求根”按钮用于求取全部特征根,“退出” 

发现上述情况后,通过一个单选按钮提示, 

按钮用于关闭整个应用程序,每个按钮的具 

并将相应的检查框控件使能,由用户选中 

体功能都通过各自的回调函数实现。 

后,在回调函数中提取上一行的系数,构造 

3.2 Routh表的计算 

个多项式,再利用polyder函数进行微分 

系统特征方程的系数输完后,如果不属 

运算,得到的新的多项式系数通过set函数, 

科技咨询导报Science and Technology Consulting Herald 45 

维普资讯

工业技术 

油罐火灾油面高度和直径关系研究 

杨威 段宏飞 王晓。张文洁‘ 

(1.中国矿业大学能源与安全工程学院安全工程 江苏徐州 221 008 

2.中国矿业大学资源与地球科学学院地质工程 江苏徐州 22 1 008 

3.中国矿业大学能源与安全工程学院采矿工程 江苏徐州 221 008 

4.中国矿业大学环境与测绘学院环境科学 江苏徐州 221 008) 

摘要:本文重点研究短沸程液体油罐火灾液面高度和直径关系, 

从热传递的各种方式去综合探究燃烧过程中燃料供给的内在原因, 

从而为防止火灾的发生,制造安全油罐提供了理论依据。 

关键词:油罐火灾 消防 油罐直径 油面高度 

中图分类号:TE94 文献标识码:A 

文章编号:1 673—0534(20O7)04(c)0046 02 

油罐火灾在消防中是一种很严重的火 

烧热。单位时间内蒸发的燃油的蒸发热等于 

高度为。罐内石油燃烧的火焰高度取决于油 

灾,有很多扑救方法,但是由于油池火灾的 

液体单位时间内吸收的总热量。液体的燃油 

罐横截面和油品种类,即油罐截面越大,油品 

严重性和复杂性,在扑救时很不安全,通常 

吸收的热量受到三方面的影响:油罐向液体 

油质越轻,则火焰越高。几次油罐着火的实际 

火灾一旦发生就会产生严重的危害。那么我 

传送的热量,在液体表面的对流换热和热辐 

统计资料表明,敞口油罐火焰的长度和高度 

们如何能够预防油罐火灾的发生呢?在这里 

射。可以表达如下: 

分别为: 

我们研究的是短沸程液体在油罐内着火燃烧 

O‘: = +g +g … 

汽油火焰长度 =1.43D,高度0.7L; 

时油面高度和油罐直径之间的关系。 

其中Q’为燃油单位时间内吸收的总热 

柴油火焰长度 =0.93D,高度0.5Ll 

油罐火灾之所以会持续燃烧,就是因为 

量,g删为通过器壁传送的热量,g 为液面 

原油火焰长度L=0.75D,高度0.5L。【2 

燃油吸收了火焰的温度使得燃油蒸发参加了 

对流换热,g 为热辐射吸收的热量。 

假设火焰温度为 ,液面的温度为 , 

燃烧。如果使得燃油吸收的热量降低就可以 

现在对这三个因素做单独的讨论: 

油罐外面温度为 ,罐壁厚度为 。 

减少油气的生成,从而可以抑制火灾的继续。 

油罐的上面的温度和火焰的温度有很重 

油罐火灾燃烧时,单位时间内燃烧放出的热 

1热传导g。 

要的关系,所以说我们认为油罐的上面温度 

量等于油罐内单位时间内蒸发的燃油蒸汽燃 

如图1所示:火焰高度为h,H为液面 

为 ,油面温度为 ,并认为温度在 曰 

设置该行Routh表的编辑框控件的string属 

数值符号改变的次数来得到判定结论,并得 

达式转换为新的按降幂排列的行向量P,最 

性,从而更新全0行系数,然后调用计算子 

到特征方程中正实部根的数目。由于整个 

后调用建表子程序重建Routh表 

程序求出Routh表剩下的各行。 

Routh表的系数实际是存在一个二维矩阵c 

3.4判定结论与特征根 

中,利用一个for循环语句,取出该矩阵第 

5结语 

在GUI窗口利用uicontrol函数建立两个 

1列的数据,相邻两数相乘,如果小于0则 图1给出了一个6阶系统出现全0行后的 

静态文本框,一个用于显示最终的判定结论, 表明有一次符号改变,相应的计数加1,最 判定结果,图2给出了一个5阶系统在稳定度 

个是用于显示全部特征根以验证结论。 后得到全部正实根的数目。特征方程的系数 设为2时的判定结果。可以看出,使用 

计算出Routh表后,需要根据第1列中 保存在行向量P中,利用多项式求根函数 

MATLAB对自动控制系统进行稳定性分析, 

roots(p)就可以很容易地求取特征根。最后 

设计快捷高效,判定准确。GUI应用程序使用 

使用set函数将相应的判定结论和特征根赋给 

简单,设置方便,能够判断Routh表计算过 

文本框的string属性。 程中的各种情况,并提供了灵活的处理方法, 

既简化了计算过程又减轻了工作量。 

4稳定度判断 

为了保证系统有一定的稳定裕度,且具 参考文献 

有良好的动态性能,希望特征根在s左半平 …1曹戈,赵阳.MATLAB实用教程【M】.北京: 

面且与虚轴有一定的距离,通常称为稳定 电子工业出版社,2005. 

度。为了运用ROUth稳定判据,只需用新 【2】林雪松,周婧,林得新.MATLAB7.0应用 

的变量s=z—a代人原系统的特征方程,即将 集锦【MJ.北京:机械工业出版社,2005. 

s平面的虚轴左移一个常数值a,a就是要求 【3】程鹏.自动控制原理【M】.北京:高等教育出 

的特征根与虚轴的距离。此时,判断以z为 版社,2003. 

变量的系统的稳定性就相当于判别原系统的 [4】何强,石惠.MATLAB在时域分析中的应 

稳定度,如果满足稳定条件,就说明原系统 用【J].安徽水利职业技术学院学报,2005.5 

不但稳定,而且所有特征根均位于一a的左 (1):71—73. 

侧。 【5】朱红,王海军.MATLAB在自动控制系统 

在GUI窗口的稳定度选项的列表框控件 稳定性判别中的应用【J】.自动化技术与应 

中,利用get和findobj函数获取稳定度a的 用,2006.25(3):4-6. 

大小,多项式系数保存在行向量P中,为了 

得到新变量S=Z—a代入后新特征方程的系 

数,用poly2sym函数将P转换为符号表达 

式,用subs函数将该符号表达式中的变量替 

换为z a,再用expand函数展开为多项式形 

式,并用sym2poly将构成多项式的符号表 

46科技咨询导报Science and Technology Consulting Herald 


本文标签: 系数 油罐 对象 特征方程 函数