自动控制原理实验用Matlab软件编制劳斯判据程序并解题(《学习辅导》例4.3.5)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二、理论方法分析…………………………………………3
三、实验设计与实现………………………………………3
四、实验结果与分析………………………………………5
五、结论与讨论……………………………………………6
六、 实验心得体会…………………………………………6
七、 参考文献………………………………………………7
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('系统有共轭虚根')
七、参考文献
《自动控制原理学习辅导》杨平、翁思义、王志萍编著。
——中国电力出版社
《自动控制原理实验与实践》杨平、余洁、冯照坤、翁思义编著。
——中国电力出版社
八、附录
%RouthMatrix**劳斯矩阵(带参数的特征多项式)并判断对应系统稳定性**
clear;
syms k z q %定义变量k z q
end
end
disp('劳斯矩阵') %输出对应的劳斯矩阵
disp(double(a))
for i=3:k %用劳斯判据判断系统的稳定性
if a(i-1,1)<=0%判断第一列元素是否不大于0
q=1;
break
end
end
ifq==1
disp('系统不稳定')
else
disp('系统稳定') %输出系统稳定性判定结果
end
八 附录……………………………………………………7
一、问题描述
用MATLAB编制劳斯判据列出其劳斯矩阵并判断相对应系统的稳定性
二、理论方法分析
采用M文件实现Matlab编程。
1)M文件的建立与调用
从Matlab操作桌面的“File”菜单中选择“New”菜单项,再选择 “M-file”命令,屏幕将出现Matlab文本编辑器的窗口。
上 海 电 力 学 院
实 验 报 告
自 动 控 制 原 理 实 验 课 程
题目:用Matlab软件编制劳斯判据程序并解来自百度文库(《学习辅导》例4.3.5)
班级:
姓名:
学号:
时间:2012年11月4日
自动化工程学院自动化(电站自动化)专业
实 验 报 告 目 录
一、问题描述………………………………………………3
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));
四、实验结果与分析
如图所示M文件代码:
编写好M文件之后,保存并运行,即可在MATLAB界面中进行调试。
随意选取特征方程式的系数,运行后结果:
五、结论与讨论
由上述实验过程可以看出,劳斯判据前两行是根据特征方程式的参数写出的,而后面几行则是根据前两行计算得出,运用劳斯判据我们可以判断其稳定性,若有全零行,有共轭虚根,若第一列元素符号有变化,系统一定不稳定。若有未知参数,亦可判断其取值范围。
在Matlab命令窗口的“File”菜单中选择“Open”命令,则屏幕出现“Open”对话框,在文件名对话框中选中所需打开的M文件名。
2)M文件的调试
在文件编辑器窗口菜单栏和工具栏的下面有三个区域,右侧的大区域是程序窗口,用于编写程序;最左面区域显示的是行号,每行都有数字,包括空行,行号是自动出现的,随着命令行的增加而增加;在行号和程序窗口之间的区域上有一些小横线,这些横线只有在可执行行上才有,而空行、注释行、函数定义行等非执行行的前面都没有。在进行程序调试时,可以直接在这些程序上点击鼠标以设置或去掉断点。
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);
q=1;
break
end
end
ifq==1
disp('系统不稳定')
else
disp('系统稳定') %输出系统稳定性判定结果
end
(2)设计
劳斯表的内容根据书上的原理进行设计,将多项式进行劳斯矩阵排序,可得其前两行的内容,余下几行则要根据书上原理写出。判断其是否稳定根据第一列元素是否有符号上的变化进行,从第二行第一列的元素开始,若其大于零,则endfor循环,i加1,判断第三行第一列元素,以此类推,直到有一行第一列的元素小于或者等于0为止,给q赋值1,跳出循环,输出‘系统不稳定’,若判断到最后一行的元素也没有小于或者等于零的数值出现,则输出‘系统稳定’。
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
三、实验设计与实现
(1)程序
%RouthMatrix**劳斯矩阵(带参数的特征多项式)并判断对应系统稳定性**
clear;
syms k z q %定义变量k z q
p=input('请输入特征多项式的参数 ='); %提示输入参数
n=length(p); %得到p的长度
for i=0:ceil(n/2)-1 %将多项式进行劳斯矩阵排序
六、实验心得体会
实践是检验真理的唯一标准,死板的书本交给我们的是一板一眼的计算方法,而实践不仅是理论的践行者,而且反馈着理论学习的真实面目。不是第一次听说MATLAB,在自控原理课上老师也不止一次用它演示了一些程序,那时MATLAB就给我留下了一个功能十分强大,操作极为简便的好印象。之后的实验课自己动手操作,更觉其神奇,那只是按照老师所讲的步骤一步一步的操作。坦白说,看到这个题目的瞬间有些茫然,好在有题目可以参考,解读了书上给出的程序后自己慢慢摸索演练,终于用MATLAB做了一道完整的题目,真的感受到了这个软件的实用,自己这次实验接触到只是其功能模块的冰山一角,只是学到了一点点基本操作,仅仅是对这款软件有了初步了解,但是对于其更高深的东西还不熟悉,虽然在报告里用到的编程并不是全部所学,但我已经身临其境的感受到MATLAB的魅力。我不得不感叹,一个好的程序软件对学习自动控制原理帮助的巨大。良好的开始是成功的一半,在以后的学习中,把理论和实践相结合,让MATLAB更好的为学习自控原理服务。
三、实验设计与实现………………………………………3
四、实验结果与分析………………………………………5
五、结论与讨论……………………………………………6
六、 实验心得体会…………………………………………6
七、 参考文献………………………………………………7
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('系统有共轭虚根')
七、参考文献
《自动控制原理学习辅导》杨平、翁思义、王志萍编著。
——中国电力出版社
《自动控制原理实验与实践》杨平、余洁、冯照坤、翁思义编著。
——中国电力出版社
八、附录
%RouthMatrix**劳斯矩阵(带参数的特征多项式)并判断对应系统稳定性**
clear;
syms k z q %定义变量k z q
end
end
disp('劳斯矩阵') %输出对应的劳斯矩阵
disp(double(a))
for i=3:k %用劳斯判据判断系统的稳定性
if a(i-1,1)<=0%判断第一列元素是否不大于0
q=1;
break
end
end
ifq==1
disp('系统不稳定')
else
disp('系统稳定') %输出系统稳定性判定结果
end
八 附录……………………………………………………7
一、问题描述
用MATLAB编制劳斯判据列出其劳斯矩阵并判断相对应系统的稳定性
二、理论方法分析
采用M文件实现Matlab编程。
1)M文件的建立与调用
从Matlab操作桌面的“File”菜单中选择“New”菜单项,再选择 “M-file”命令,屏幕将出现Matlab文本编辑器的窗口。
上 海 电 力 学 院
实 验 报 告
自 动 控 制 原 理 实 验 课 程
题目:用Matlab软件编制劳斯判据程序并解来自百度文库(《学习辅导》例4.3.5)
班级:
姓名:
学号:
时间:2012年11月4日
自动化工程学院自动化(电站自动化)专业
实 验 报 告 目 录
一、问题描述………………………………………………3
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));
四、实验结果与分析
如图所示M文件代码:
编写好M文件之后,保存并运行,即可在MATLAB界面中进行调试。
随意选取特征方程式的系数,运行后结果:
五、结论与讨论
由上述实验过程可以看出,劳斯判据前两行是根据特征方程式的参数写出的,而后面几行则是根据前两行计算得出,运用劳斯判据我们可以判断其稳定性,若有全零行,有共轭虚根,若第一列元素符号有变化,系统一定不稳定。若有未知参数,亦可判断其取值范围。
在Matlab命令窗口的“File”菜单中选择“Open”命令,则屏幕出现“Open”对话框,在文件名对话框中选中所需打开的M文件名。
2)M文件的调试
在文件编辑器窗口菜单栏和工具栏的下面有三个区域,右侧的大区域是程序窗口,用于编写程序;最左面区域显示的是行号,每行都有数字,包括空行,行号是自动出现的,随着命令行的增加而增加;在行号和程序窗口之间的区域上有一些小横线,这些横线只有在可执行行上才有,而空行、注释行、函数定义行等非执行行的前面都没有。在进行程序调试时,可以直接在这些程序上点击鼠标以设置或去掉断点。
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);
q=1;
break
end
end
ifq==1
disp('系统不稳定')
else
disp('系统稳定') %输出系统稳定性判定结果
end
(2)设计
劳斯表的内容根据书上的原理进行设计,将多项式进行劳斯矩阵排序,可得其前两行的内容,余下几行则要根据书上原理写出。判断其是否稳定根据第一列元素是否有符号上的变化进行,从第二行第一列的元素开始,若其大于零,则endfor循环,i加1,判断第三行第一列元素,以此类推,直到有一行第一列的元素小于或者等于0为止,给q赋值1,跳出循环,输出‘系统不稳定’,若判断到最后一行的元素也没有小于或者等于零的数值出现,则输出‘系统稳定’。
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
三、实验设计与实现
(1)程序
%RouthMatrix**劳斯矩阵(带参数的特征多项式)并判断对应系统稳定性**
clear;
syms k z q %定义变量k z q
p=input('请输入特征多项式的参数 ='); %提示输入参数
n=length(p); %得到p的长度
for i=0:ceil(n/2)-1 %将多项式进行劳斯矩阵排序
六、实验心得体会
实践是检验真理的唯一标准,死板的书本交给我们的是一板一眼的计算方法,而实践不仅是理论的践行者,而且反馈着理论学习的真实面目。不是第一次听说MATLAB,在自控原理课上老师也不止一次用它演示了一些程序,那时MATLAB就给我留下了一个功能十分强大,操作极为简便的好印象。之后的实验课自己动手操作,更觉其神奇,那只是按照老师所讲的步骤一步一步的操作。坦白说,看到这个题目的瞬间有些茫然,好在有题目可以参考,解读了书上给出的程序后自己慢慢摸索演练,终于用MATLAB做了一道完整的题目,真的感受到了这个软件的实用,自己这次实验接触到只是其功能模块的冰山一角,只是学到了一点点基本操作,仅仅是对这款软件有了初步了解,但是对于其更高深的东西还不熟悉,虽然在报告里用到的编程并不是全部所学,但我已经身临其境的感受到MATLAB的魅力。我不得不感叹,一个好的程序软件对学习自动控制原理帮助的巨大。良好的开始是成功的一半,在以后的学习中,把理论和实践相结合,让MATLAB更好的为学习自控原理服务。