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

2019-07-13 19:12

(4) 令初始状态为零,输入为u(t)?3sin(5t)。用函数lsim( )计算状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。 3. 已知系统

10??0?0??x??0?u ???0x01????????6?11?6???1??y??600?x

?1???且初始状态为x(0)?0。 ?????1??(1)当输入为u(t)??(t)时,用函数initial( )和impulse( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

(2)当输入为u(t)?1(t)时,用函数initial( )和step( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

(3)当输入为u(t)?t时,用函数initial( )和lsim( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

(4)当输入为u(t)?sin(t)时,用函数initial( ) 和lsim( )求解系统的状态响应和输出响应的数值解,并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。

三、附录

1、线性定常连续系统状态转移矩阵的计算

线性定常连续系统的状态转移矩阵为?(t)?eAt?L?1[(sI?A)?1]。 (3-2-1) 在MATLAB中, 状态转移矩阵可直接用指数矩阵法和拉氏反变换法计算。 例2-1 求系统矩阵A对应的状态转移矩阵。 A??1??0?

?2?3??指数矩阵法:

在命令窗中运行下列命令

>> A=[0 1;-2 -3];syms t; phet=expm(A*t) 返回 phet =

[ -exp(-2*t)+2*exp(-t), exp(-t)-exp(-2*t)] [ -2*exp(-t)+2*exp(-2*t), 2*exp(-2*t)-exp(-t)] 拉氏反变换法:

在命令窗中运行下列命令

>> A=[0 1;-2 -3]; syms s;G=inv(s*eye(size(A))-A) 返回 G =

[ (s+3)/(s^2+3*s+2), 1/(s^2+3*s+2)] [ -2/(s^2+3*s+2), s/(s^2+3*s+2)]

即(sI?A)?1。再对其进行拉氏逆变换,即在命令窗中输入语句 >>phet= ilaplace(G) 返回 phet =

[ -exp(-2*t)+2*exp(-t), exp(-t)-exp(-2*t)] [ -2*exp(-t)+2*exp(-2*t), 2*exp(-2*t)-exp(-t)]

2. 线性定常连续系统的状态方程求解

如果线性定常连续系统的状态空间表达式为

??Ax?Bu xy?Cx?Du

且初始状态为x(0),那么状态方程解的拉氏变换式为

x(s)?(sI?A)?1x(0)?(sI?A)?1Bu(s) (3-2-2)

其解为

tx(t)?ex(0)??eA(t??)Bu(?)d? (3-2-3)

At0其中零输入响应为 eAtx(0)或L?1{(sI?A)?1}x(0) (3-2-4) 零状态响应为

?t0eA(t??)Bu(?)d?或L?1{(sI?A)?1Bu(s)} (3-2-5)

?1?1?1系统的输出响应为 L{C(sI?A)x(0)?C(sI?A)Bu(s)}?Du(t) (3-2-6) 例2-2 已知系统的状态方程为

??? x1??0?0?x?u ?????2?3??1??1?试求初始状态为x(0)???,输入分别为u(t)?1(t)和 u(t)?t时状态方程的解。

??1?编制程序%ex22求输入为u(t)?1(t)时状态方程的解。该程序如下:

A=[0 1;-2 -3];syms s;G=inv(s*eye(size(A))-A);phet=ilaplace(G);X0=[1 -1]';Xt1=phet*X0; >> B=[0 1]';Xt2=ilaplace(G*B*(1/s)) 在命令窗中运行该程序,即 >> ex22 返回 xt1 =

[ exp(-t)] [ -exp(-t)] xt2 =

[ 1/2-exp(-t)+1/2*exp(-2*t)] [ exp(-t)-exp(-2*t)]

其中xt1为零输入响应,xt2为零状态响应。

将该程序中u(s)?11用u(s)?2代替可求出输入为单位斜坡函数时状态方程的解 ssxt1 =

[ exp(-t)] [ -exp(-t)] xt2 =

[ 1/2*t-3/4-1/4*exp(-2*t)+exp(-t)] [ 1/2-exp(-t)+1/2*exp(-2*t)]

上述得到的是状态方程的解析解,MATLAB提供的函数step( ) 、impulse( )、lsim( ) 和initial( )可以求得系统响应的数值解。

? 函数step( ) 可直接求取线性连续系统的单位阶跃响应。该函数的调用格式为:

y?step(G,t) 其中G为给定系统LTI模型,t为时间向量。通常取t=0:dt:t-end,

其中t-end为终值时间,而dt为时间步长。y为系统输出。

y?step(G) 这时时间向量t自动生成。

[y,t,x]?step(G,t) 或 [y,t,x]?ste(pG) 如果G为状态空间模型,则x为系统

状态向量,否则x将返回空矩阵。

step(G,t) 或 ste(pG) 此时不返回任何变量,而自动地绘制单位阶跃响应输出曲

线。

? 函数impulse( ) 可直接求取线性系统的单位脉冲响应。该函数的调用格式与函数

step( )的调用格式相似。

? 函数lsim( ) 可直接求取线性系统在任意输入信号作用下的响应。该函数的调用格式为:

y?lsim(G,u,t)

其中u为与时间向量t对应的输入向量。当然还可以和step( )函数一样有其它的调用格式。 ? 函数initial( ) 可求解系统的零输入响应。该函数的调用格式为

y?initial(G,x0) 或 [y,t,x]?initi(aG,lx0)

其中G为状态空间模型,x0为初始状态。 例2-3 已知系统为

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

初始状态为x(0)???1?,试求u(t)为单位阶跃函数时系统状态响应和输出响应,并绘制???1?状态响应曲线和输出响应曲线。

在命令窗中运行下列命令,建立状态空间模型,计算系统在初始状态作用下的状态响应和输出响应,并绘制相应的响应曲线。

>> A=[0 1;-2 -3]; B=[0;1]; C=[1 1]; D=0; G=ss(A,B,C,D); t=0:0.5:10; x0=[1;-1];

[yo,t,xo]=initial(G,x0,t); plot(t,xo,':',t,yo,'-') 返回图1。

图1状态响应 图2 输出响应

在命令窗中继续运行下列命令,计算系统在输入作用下的状态响应和输出响应,并绘制相应的响应曲线。

>>figure('pos',[50 50 200 150],'color','w'); u=ones(size(t));

[yu,t,xu]=lsim(G,u,t); plot(t,xu,':',t,yu,'-') 返回图2。

再继续运行下列命令求系统总的状态响应和输出响应,并绘制相应的响应曲线。 >>y=yo+yu; x=xo+xu; plot(t,x,':',t,y,'-') 返回图3。

图3 图4 例2-4 已知系统

??? x1??0?2?x?u ?????5?6??0? y??12?x

求出系统在初始状态为零,且u(t)?e?t(t?0)时系统的状态响应和输出响应。

3. 线性定常离散系统状态方程的解

如果线性定常离散系统的状态空间表达式为

x(k?1)?Gx(k)?Hu(k)

y(k)?Cx(k)?Du(k) (3-2-7)

初始状态为x(0),那么状态方程的解为

x(k)?Z{(zI?G)z}x(0)?Z{(zI?G)HU(z)} (3-2-8) 系统的状态转移矩阵为?(k)?G?Z{(zI?G)z} (3-2-9) 系统的输出为

k?1?1?1?1?1?1


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

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

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

马上注册会员

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