现代控制理论习题解答与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程序示例的更多相关文章

  1. [zz]求一维序列的信息熵(香浓熵)的matlab程序实例

    对于一个二维信号,比如灰度图像,灰度值的范围是0-255,因此只要根据像素灰度值(0-255)出现的概率,就可以计算出信息熵.    但是,对于一个一维信号,比如说心电信号,数据值的范围并不是确定的, ...

  2. 【matlab】MATLAB程序调试方法和过程

    3.8  MATLAB程序的调试和优化 在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂.MATLAB ...

  3. DirectX 11游戏编程学习笔记之8: 第6章Drawing in Direct3D(在Direct3D中绘制)(习题解答)

            本文由哈利_蜘蛛侠原创,转载请注明出处.有问题欢迎联系2024958085@qq.com         注:我给的电子版是700多页,而实体书是800多页,所以我在提到相关概念的时候 ...

  4. 機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 课后习题解答

    今天和大家分享coursera-NTU-機器學習基石(Machine Learning Foundations)-作业三的习题解答.笔者在做这些题目时遇到非常多困难,当我在网上寻找答案时却找不到,而林 ...

  5. 《C++编程思想》第四章 初始化与清除(原书代码+习题+解答)

    相关代码: 1. #include <stdio.h> class tree { int height; public: tree(int initialHeight); ~tree(); ...

  6. 《C++Primer》第五版习题解答--第四章【学习笔记】

    [C++Primer]第五版习题解答--第四章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/11 第四章:表达式 练习4. ...

  7. 条件随机场matlab程序下载

    19:44:23 1 http://www.cs.ubc.ca/~murphyk/Software/CRF/crf.html matlab程序包: 该条件随机场程序(CRF)是针对语句进行标注,mat ...

  8. (搬运)《算法导论》习题解答 Chapter 22.1-1(入度和出度)

    (搬运)<算法导论>习题解答 Chapter 22.1-1(入度和出度) 思路:遍历邻接列表即可; 伪代码: for u 属于 Vertex for v属于 Adj[u] outdegre ...

  9. C/C++程序通过动态链接库调用MATLAB程序

    C/C++程序通过动态链接库调用MATLAB程序 1 MATLAB编译器设置 需要设定对应的C++编译器才能编译.m文件生成可供C++调用的库文件. 在MATLAB命令行输入:mex –setup:然 ...

随机推荐

  1. 设置思科设备console密码、enable密码、vty登录密码

    思科设备各级密码:1)  console密码 SW2(config)#line console 0SW2(config-line)#password ciscoSW2(config-line)#log ...

  2. App上架应用市场,如何攻破安全过检难题

    App的安全过检与众所熟知的安全检测是两个完全不同的概念.首先App行业本身对App安全过检有一定的要求与规范,其次2017年6月1日正式实施的<中国网络安全法>中就曾要求App在渠道上线 ...

  3. VMWare 虚拟机 共享文件夹

    1.不能拷贝和直接拖拽文件至虚拟机系统中  解决办法:    通过共享文件夹的方式进行文件共享.   (Win7 32位  10.0版本的虚拟机). ①:选择虚拟机 虚拟机 → 设置  如下图: ②: ...

  4. Node.js 子进程

    稳定性: 3 - 稳定 Node 通过 child_process 模块提供了 popen(3) 数据流. 它能在非阻塞的方式中,通过 stdin, stdout, 和 stderr 传递数据. (请 ...

  5. PHP 安装

    PHP 安装 您需要做什么? 为了开始使用 PHP,您可以: 找一个支持 PHP 和 MySQL 的 Web 主机 在您自己的 PC 机上安装 Web 服务器,然后安装 PHP 和 MySQL 使用支 ...

  6. sorted函数返回一个新的列表就安全了吗?

    arr=[[1,2,3],[4,2,3],[5,2,3]] x2=sorted(arr) print 'sorted',x2 print '-'*20 for ar in arr: ar.append ...

  7. proc文件系统探索 之 以数字命名的目录

    在proc根目录下,以数字命名的目录表示当前一个运行的进程,目录名即为进程的pid.其内的目录和文件给出了一些关于该进程的信息. niutao@niutao-desktop:/proc/6584$ l ...

  8. WCF Restful调用跨域解决方案

    目前很多项目中CRM更多扮演一个纯后台管理系统,用户更多的操作是在移动端执行,不管是安卓还是IOS甚至是H5.这里以H5为例,CRM提供数据接口,移动web端来调用接口进行数据处理,这里就会涉及到一个 ...

  9. Android输入事件详解

    输入事件 在 Android 系统中,从用户与应用的交互中截获事件的方法不止一种.如考虑截获用户界面内的事件,则可从用户与之交互的特定视图对象中捕获事件. 为此,View 类提供了多种方法. 在您将用 ...

  10. FLAnimatedImage -ios gif图片加载框架介绍

    简介 FLAnimatedImage 是 Flipboard 团队开发的在它们 App 中渲染 GIF 图片使用的库. 后来 Flipboard 将 FLAnimatedImage 开源出来供大家使用 ...