自动控制原理实验用Matlab软件编制劳斯判据程序并解题(《学习辅导》例435)
上 海 电 力 学 院
实 验 报 告
自 动 控 制 原 理 实 验 课 程
题目:用Matlab软件编制劳斯判据程序并解题(《学习辅导》例4.3.5)
班级:
姓名:
学号:
时间: 2012年1月日………………………………………………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,