现代控制理论习题解答与Matlab程序示例
2016-06-09 07:27
369 查看
现代控制理论习题解答与Matlab程序示例
现代控制理论 第三版 课后习题参考解答:http://download.csdn.net/detail/zhangrelay/9544934
下面给出部分书后习题的Matlab方法求解:
第一章 状态空间表达式
1 传递函数转为状态空间表达式和约旦标准型
num=[10,-10]; den=[1,4,3,0]; w=tf(num,den); se=ss(w) [T,J]=jordan(A)
对应习题1-6
2 状态空间表达式转为传递函数
A=[0,1,0;-2,-3,0;-1,1,-3]; B=[0;1;2]; C=[0,0,1]; D=0; se=ss(A,B,C,D); w=tf(se)
对应习题1-7
第二章 状态空间表达式的解
A=[0,1;0,0]; B=[0;1]; C=[1,0]; D=0; se=ss(A,B,C,D); [y,t,x]=step(se); figure(1); plot(t,x); figure(2); plot(t,y);
对应习题2-6
第三章 能控性和能观性
1 能控性和能观性判定
A=[-3,1;1,-3]; B=[1,1;1,1]; C=[1,1;1,-1]; M=[B,A*B]; N=[C;C*A]; n=length(A); rank(M) if rank(M)==n disp('系统可控') else disp('系统不可控') end rank(N) if rank(N)==n disp('系统可观') else disp('系统不可观') end [T,J]=jordan(A); T'*B C*T对应习题3-2
2 能控标准型
A=[1 -2;3 4]; B=[1;1]; C=[0 0]; D=0; G=ss(A,B,C,D); M=[B,A*B]; n=length(A); rank(M) if rank(M)==n disp('系统可控') else disp('系统不可控') end Qc=ctrb(A,B); Cm=[0 1]*inv(Qc); Cm2=inv([Cm;Cm*A]); sysc=ss2ss(G,inv(Cm2))对应习题3-7
3 能观标准型
A=[1,-1;1,1]; B=[2;1]; C=[-1 1]; D=0; G=ss(A,B,C,D); M=[B,A*B]; N=[C;C*A]; n=length(A); rank(M) if rank(M)==n disp('系统可控') else disp('系统不可控') end rank(N) if rank(N)==n disp('系统可观') else disp('系统不可观') end Qc=ctrb(A,B); Cm=[0 1]*inv(Qc); Cm2=inv([Cm;Cm*A]); sysc=ss2ss(G,inv(Cm2)) Qo=obsv(A,C); Om=inv(Qo)*[0;1]; Om2=[Om A*Om]; syso=ss2ss(G,inv(Om2))对应习题3-8
4 传递函数转能控或能观标准型
num=[1,6,8]; den=[1,4,3]; [A,B,C,D]=tf2ss(num,den); G=ss(A,B,C,D); M=[B,A*B]; N=[C;C*A]; n=length(A); rank(M) if rank(M)==n disp('系统可控') else disp('系统不可控') end rank(N) if rank(N)==n disp('系统可观') else disp('系统不可观') end Qc=ctrb(A,B); Cm=[0 1]*inv(Qc); Cm2=inv([Cm;Cm*A]); sysc=ss2ss(G,inv(Cm2)) Qo=obsv(A,C); Om=inv(Qo)*[0;1]; Om2=[Om A*Om]; syso=ss2ss(G,inv(Om2))对应习题3-9
第四章 李雅普诺夫方法和稳定性
1 李雅普诺夫定理第一方法
A=[-3 -6 -2 -1;1 0 0 0;0 1 0 0;0 0 1 0]; B=[1;0;0;0]; C=[0 0 1 1]; D=[0]; flag=0; [z,p,k]=ss2zp(A,B,C,D,1); disp('系统零点,极点和增益为:'); z p k n=length(A); for i=1:n if real(p(i))>0 flag=1; end end if flag==1 disp('系统不稳定'); else disp('系统稳定'); end通过极点判定系统是否稳定
2 李雅普诺夫定理第二方法
A=[-3 -6 -2 -1;1 0 0 0;0 1 0 0;0 0 1 0]; Q=eye(4,4); P=lyap(A,Q); flag=0; n=length(A); for i=1:n det(P(1:i,1:i)) if(det(P(1:i,1:i))<=0) flag=1; end end if flag==1 disp('系统不稳定'); else disp('系统稳定'); end通过P是否正定判定系统是否稳定。
第五章 线性系统综合
1 极点配置
A=[0 1 0;0 0 1;0 -2 -3]; B=[0;0;1]; P=[-2 -1+1i -1-1i]; M=[B,A*B,A*A*B]; n=length(A); rank(M) if rank(M)==n disp('系统可控') disp('状态反馈') K=acker(A,B,P) else disp('系统不可控') [Ac,Bc,Cc,T,K]=ctrbf(A,B,C) end Ac=A-B*K disp('配置后极点') eig(Ac)对应例题5-2
num=[1 1 -2]; den=[1 2 -5 -6]; [A,B,C,D]=tf2ss(num,den) P=[-2 -2 -3]; M=[B,A*B,A*A*B]; n=length(A); rank(M) if rank(M)==n disp('系统可控') disp('状态反馈') K=acker(A,B,P) else disp('系统不可控') [Ac,Bc,Cc,T,K]=ctrbf(A,B,C) end Ac=A-B*K disp('配置后极点') eig(Ac)对应习题5-4
相关文章推荐
- 现代控制理论习题解答与Matlab程序示例
- matlab GUI之自定义菜单小结
- matlab GUI之 -- 绘图
- matlab GUI之常用对话框(四)-- 输入对话框 inputdlg、目录对话框 uigetdir、列表对话框 listdlg
- matlab GUI之常用对话框(三)-- dialog \ errordlg \ warndlg \ helpdlg \ msgbox \questdlg
- matlab GUI之常用对话框(二)-- 进度条的使用方法
- matlab中数据保存的相关指令
- Matlab Warning:Variable cannot be saved to a MAT-file whose version is older than 7.3
- matlab2014b 安装libsvm-3.21
- RNN及LSTM的matlab实现
- 用matlab来画表格(实例:处理光电效应及普朗克常数的实验报告)
- Matlab 图片绘制相关
- 在MATLAB下调试Caffe
- matlab中求均值的mean()函数的使用
- libsvm 安装及参数含义
- 紫金桥组态软件通过OPC与Matlab进行通信
- matlab GUI之常用对话框(一)-- uigetfile\ uiputfile \ uisetcolor \ uisetfont
- HFSS-MATLAB-API
- how to install Matlab API in caffe
- matlab GUI界面设计 点击按钮加载.mat数据的所有变量到工作空间中