自动控制原理实验用Ma ab软件编制劳斯判据程序并解题 《学习辅导》例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

上海电力学院

实验报告

自动控制原理实验课程

题目:

班级:

姓名:

学号:

时间: 2012年11月4日

自动化工程学院自动化(电站自动化)专业实验报告目录

一、问题描述 (3)

二、理论方法分析 (3)

三、实验设计与实现 (3)

四、实验结果与分析 (5)

五、结论与讨论 (6)

六、实验心得体会 (6)

七、参考文献 (7)

八附录 (7)

一、问题描述

用MATLAB编制劳斯判据列出其劳斯矩阵并判断相对应系统的稳定性

二、理论方法分析

采用M文件实现Matlab编程。

1) M文件的建立与调用

➢? 从Matlab操作桌面的“File”菜单中选择“New”菜单项,再选择“M-file”命令,屏幕将出现Matlab文本编辑器的窗口。

➢? 在Matlab命令窗口的“File”菜单中选择“Open”命令,则屏幕出现“Open”对话框,在文件名对话框中选中所需打开的M文件名。

2) M文件的调试

在文件编辑器窗口菜单栏和工具栏的下面有三个区域,右侧的大区域是程序窗口,用于编写程序;最左面区域显示的是行号,每行都有数字,包括空行,行号是自动出现的,随着命令行的增加而增加;在行号和程序窗口之间的区域上有一些小横线,这些横线只有在可执行行上才有,而空行、注释行、函数定义行等非执行行的前面都没有。在进行程序调试时,可以直接在这些程序上点击鼠标以设置或去掉断点。

三、实验设计与实现

(1)程序

%RouthMatrix**劳斯矩阵(带参数的特征多项式)并判断对应系统稳定性** clear;

syms k z q %定义变量k z q

p=input('请输入特征多项式的参数 ='); %提示输入参数

n=length(p); %得到p的长度

for i=0:ceil(n/2)-1 %将多项式进行劳斯矩阵排序 a(1,i+1)=p(2*i+1);

if 2*(i+1)>n

a(2,i+1)=0;

break

end

a(2,i+1)=p(2*(i+1));

end

for k=3:n %计算从第三行开始劳斯矩阵内容

for j=1:ceil((n-k+1)/2)

if a(k-1,1)==0 %判断是否有共轭虚根

disp('系统有共轭虚根')

breaksign=1;

break

end

a(k,j)=(a(k-1,1)*a(k-2,j+1)-a(k-1,j+1)*a(k-2,1))/a(k-1,1);

end

end

disp('劳斯矩阵') %输出对应的劳斯矩阵

disp(double(a))

for i=3:k %用劳斯判据判断系统的稳定性

if a(i-1,1)<=0 %判断第一列元素是否不大于0

q=1;

break

end

end

if q==1

disp('系统不稳定')

else

disp('系统稳定') %输出系统稳定性判定结果

end

(2)设计

劳斯表的内容根据书上的原理进行设计,将多项式进行劳斯矩阵排序,可得其前两行的内容,余下几行则要根据书上原理写出。判断其是否稳定根据第一列元素是否有符号上的变化进行,从第二行第一列的元素开始,若其大于零,则endfor循环,i加1,判断第三行第一列元素,以此类推,直到有

一行第一列的元素小于或者等于0为止,给q赋值1,跳出循环,输出‘系统不稳定’,若判断到最后一行的元素也没有小于或者等于零的数值出现,则输出‘系统稳定’。

四、实验结果与分析

如图所示M文件代码:

编写好M文件之后,保存并运行,即可在MATLAB界面中进行调试。

随意选取特征方程式的系数,运行后结果:

五、结论与讨论

由上述实验过程可以看出,劳斯判据前两行是根据特征方程式的参数写出的,而后面几行则是根据前两行计算得出,运用劳斯判据我们可以判断其稳定性,若有全零行,有共轭虚根,若第一列元素符号有变化,系统一定不稳定。若有未知参数,亦可判断其取值范围。

六、实验心得体会

实践是检验真理的唯一标准,死板的书本交给我们的是一板一眼的计算方法,而实践不仅是理论的践行者,而且反馈着理论学习的真实面目。不是第一次听说MATLAB,在自控原理课上老师也不止一次用它演示了一些程序,那时MATLAB就给我留下了一个功能十分强大,操作极为简便的好印象。之后的实验课自己动手操作,更觉其神奇,那只是按照老师所讲的步骤一步一步的操作。坦白说,看到这个题目的瞬间有些茫然,好在有题目可以参考,解读了书上给出的程序后自己慢慢摸索演练,终于用MATLAB做了一道完整的题目,真的感受到了这个软件的实用,自己这次实验接触到只是其功能模块的冰山一角,只是学到了一点点基本操作,仅仅是对这款软件有了初步了解,但是对于其更高深的东西还不熟悉,虽然在报告里用到的编程并不是全部所学,但我已经身临其境的感受到MATLAB的魅力。我不得不感叹,一个好的程序软件对学习自动控制原理帮助的巨大。良好的开始是成功的一半,在以后的学习中,把理论和实践相结合,让MATLAB更好的为学习自控原理服务。

七、参考文献

《自动控制原理学习辅导》杨平、翁思义、王志萍编着。

——中国电力出版社

《自动控制原理实验与实践》杨平、余洁、冯照坤、翁思义编着。

——中国电力出版社八、附录

%RouthMatrix**劳斯矩阵(带参数的特征多项式)并判断对应系统稳定性** clear;

syms k z q %定义变量k z q

p=input('请输入特征多项式的参数 ='); %提示输入参数

n=length(p); %得到p的长度

for i=0:ceil(n/2)-1 %将多项式进行劳斯矩阵排序 a(1,i+1)=p(2*i+1);

if 2*(i+1)>n

a(2,i+1)=0;

break

end

a(2,i+1)=p(2*(i+1));

end

for k=3:n %计算从第三行开始劳斯矩阵内容 for j=1:ceil((n-k+1)/2)

if a(k-1,1)==0 %判断是否有共轭虚根

disp('系统有共轭虚根')

breaksign=1;

break

end

a(k,j)=(a(k-1,1)*a(k-2,j+1)-a(k-1,j+1)*a(k-2,1))/a(k-1,1);

end

end

disp('劳斯矩阵') %输出对应的劳斯矩阵

disp(double(a))

相关文档
最新文档