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
版权声明:本文标题:利用MATLAB实现Routh稳定判据的GUI设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713192807a623275.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论