现代控制理论实验指导书(3)

2019-07-13 19:12

例1-7 将例1-6中的传递函数转换为能控标准型。

进一步,求能控标准型的对偶系统可得能观测标准型。在命令窗中运行下列命令 >> Ao=(Gc.a)';Bo=(Gc.c)';Co=(Gc.b)';Do=Gc.d;Go=ss(Ao,Bo,Co,Do) 返回 a =

x1 x2 x3 x1 0 0 -4 x2 1 0 -8 x3 0 1 -5 b =

u1 x1 3 x2 1 x3 0 c =

x1 x2 x3 y1 0 0 1 d =

u1 y1 2

Continuous-time model.

下面是介绍MATLAB提供的三个函数tfdata( ), zpkdata( ), ssdata( )。

函数tfdata( ) 可得到传递函数模型的分子分母多项式系数。其调用格式为

[num,den]?tfdat(aG,'v')

其中G为系统LTI模型。num和den分别为分子和分母多项式的系数向量。

函数zpkdata( ) 可得到零极点增益模型的零点、极点和增益。其调用格式为

[z,p,k]?zpkdata(G,'v')

其中G为系统LTI模型。z和p分别为零点和极点向量,k为增益。

函数ssdata( ) 可得到状态空间模型的系数矩阵。其调用格式为

[A,B,C,D]?ssdata(G,'v')

其中G为系统LTI模型。A,B,C,D为系数矩阵。

3. 模型的连接 1) 串联连接

设线性定常系统?1和?2的LTI模型分别为G1和G2。在MATLAB中, 两者的串联连接(参教材)可由命令G?G2*G1实现,其中G为整个系统的LTI模型。多个系统的串联连接可由命令G?Gn*Gn?1*?*G1实现。 2) 并联连接

设线性定常系统?1和?2的LTI模型分别为G1和G2。在MATLAB中, 两者的并联连接(参教材)可由命令G?G1?G2实现,其中G为整个系统的LTI模型。多个系统的并联连接可由命令G?G1?G2???Gn实现。 3) 反馈连接

设线性定常系统?1和?2的LTI模型分别为G1和G2。在MATLAB中, 两者的反馈

连接(参教材)可由MATLAB提供的函数feedback( )实现。该函数的调用格式为:

G?feedback(G1,G2,Sign)

其中G为整个系统LTI模型。如果Sign=-1或省略Sign变量,则表示负反馈。如果Sign=1, 则表示正反馈。

4. 状态空间表达式的相似变换

线性定常系统状态空间表达式为?(A,B,C,D),假设存在一个非奇异矩阵T将原状态x变换为z=Tx, 则状态z对应的状态空间表达式为?(A,B,C,D),其中A?TAT?1,

B?TB,C?CT?1。

MATLAB提供函数ss2ss( )可完成状态空间模型的相似变换。该函数调用格式为

Gt?ss2ss(G,T)

其中G为原状态空间模型。T为变换矩阵。Gt为经变换得到的状态空间模型。 例1-8 考虑一个系统,它的状态空间表达式为

1??0?1????xx?u ?????2?3??1?y??10?x

由于该系统的系统矩阵A为友矩阵,所以可由其特征值构造变换矩阵。令变换矩阵T

1??1为T???。

?1?2??在命令窗中运行下列命令

>> A=[0 1;-2 -3];B=[1 1]';C=[1 0];G=ss(A,B,C,0); T=inv([1 1;-1 -2]); G1=ss2ss(G,T) 返回 a =

x1 x2 x1 -1 0 x2 0 -2 b =

u1 x1 3 x2 -2 c =

x1 x2 y1 1 1 d =

u1 y1 0

Continuous-time model.

通过线性变换可将状态空间表达式变换为约当标准型(包括对角标准型),能控标准型和能观测标准型。

MATLAB提供的函数canon( )可将状态空间表达式变换为对角标准型或约当标准型。该函数的调用格式为:

?1GJ?canon(G,'model')

其中G为原状态空间模型,而GJ为转换得到的对角标准型或约当标准型。但该函数在系

统含有重特征值时,效果不甚理想。

例1-9 利用函数canon( )将例1-8中状态空间表达式变换为对角标准型。

如果SISO线性定常系统?(A,B,C,D)完全能控,则可通过非奇异线性变换将状态空间表达式?(A,B,C,D)变换为能控标准型。

我们编制的函数ctrlss( ) 可实现这一变换。该函数的调用格式为:

Gc?ctrlss(G)

其中G为原来的状态空间模型。Gc为转换得到的能控标准型。

该函数程序如下:

function Gc=ctrlss(A,B,C,D) %将状态空间表达式变换为能控标准型 n=length(A); Uc=ctrb(A,B); U=inv(Uc); p1=U(n,:); for i=1:n

T(i,:)=p1*A^(i-1); end

Ac=T*A*inv(T); Bc=T*B; Cc=C*inv(T);

Gc=ss(Ac,Bc,Cc,D);

例1-10 考虑一个系统,它的状态空间表达式为

?02?2??2????11?2?x??1?u x???????2?21???1??y??111?x

将其转换为能控标准型。

试编将状态空间表达式变换为能观测标准型的函数。

实验二 线性定常系统状态方程的解

一、实验目的

1. 掌握状态转移矩阵的概念。学会用MATLAB求解状态转移矩阵。

2. 掌握线性系统状态方程解的结构。学会用MATLAB求解线性定常系统的状态响应和输出响应,并绘制相应曲线。 二、实验内容

1. 求下列系统矩阵A对应的状态转移矩阵

?010?0?1???001?

A?(a)A?? (b)????40???2?54?????(c)A?0???02. 已知系统

0?0??000?0??0?10???0?? (d)A??00?1?

?????000???1??0?0????xx?u ?????6?5??1?y??10?x

(1)令初始状态为x(0)???,输入为零。

a) 用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。观察并记录这些曲线。

b) 用函数initial( )计算系统在初始状态作用下状态响应和输出响应的数值解, 并用

函数plot( ) 绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与a)中状态响应曲线进行比较。

c) 根据b)中所得的状态响应的数值解,用命令plot(x(:,1), x(:,2))绘制系统的状态轨

迹。记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。 (2) 令初始状态为零,输入为u(t)?1(t)。

a) 用MATLAB求状态方程的解析解。选择时间向量t,绘制系统的状态响应曲线。

观察并记录这些曲线。

b) 用函数initial( )计算系统在初始状态作用下状态响应和输出响应的数值解, 并用函

数plot( ) 绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线,然后将这一状态响应曲线与a).中状态响应曲线进行比较。 c) 根据b)中所得的状态响应的数值解,用命令plot(x(:,1), x(:,2))绘制系统的状态轨迹。

记录系统状态转移的过程,结合a)和b)中的状态响应曲线分析这一过程。 (3)令初始状态为x(0)???1??0??1?,输入为u(t)?1(t)。求系统状态响应和输出响应的数值???1?解,绘制系统的状态响应曲线、输出响应曲线和状态轨迹。观察和分析这些响应曲线和状态轨迹是否是(1)和(2)中的响应曲线和状态轨迹的叠加。


现代控制理论实验指导书(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:刑事诉讼法(复习题)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: