线性定常系统的能控性和能观测性.docx
- 文档编号:7557631
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:21
- 大小:397.41KB
线性定常系统的能控性和能观测性.docx
《线性定常系统的能控性和能观测性.docx》由会员分享,可在线阅读,更多相关《线性定常系统的能控性和能观测性.docx(21页珍藏版)》请在冰豆网上搜索。
线性定常系统的能控性和能观测性
线性定常系统得能控性与能观测性
一、实验设备
PC计算机,MATLAB软件,控制理论实验台。
二、实验目得
(1)学习系统状态能控性、能观测性得定义及判别方法;
(2)通过用MATLAB编程、上机调试,掌握系统能控性、能观测性得判别方法,掌握将一般形式得状态空间描述变换成能控标准形、能观标准形。
(3)掌握能控性与能观测性得概念。
学会用MATLAB 判断能控性与能观测性。
(4)掌握系统得结构分解。
学会用MATLAB进行结构分解。
(5)掌握最小实现得概念。
学会用MATLAB求最小实现
三、实验原理
(1)参考教材P117~118“4、2、4利用 MATLAB判定系统能控性”
P124~125“4、3、3利用MATLAB判定系统能观测性”
(2)MATLAB 现代控制理论仿真实验基础
(3)控制理论实验台使用指导
四、实验内容
(1)已知系统状态空间描述如下
(1)判断系统状态得能控性与能观测性,以及系统输出得能控性.说明状态能控性与输出能控性之间有无联系.
代码:
A=[02-1;512;-20 0];
B=[1;0;-1];
C=[1,1,0];
D=[0];
Uc=[B,A*B,A^2*B,A^3*B];
rank(Uc)%能控性判断
Uo=[C,C*A,C*A^2,C*A^3];
rank(Uo)%判断能观性
Uco=[C*B,C*A*B,C*A^2*B,C*A^3*B];
rank(Uco)%判断输出能控性
(2)令系统得初始状态为零,系统得输入分别为单位阶跃函数与单位脉冲函数。
用MATLAB函数计算系统得状态响应与输出响应,并绘制相应得响应曲线。
观察与记录这些曲线。
当输入改变时,每个状态变量得响应曲线就是否随着改变?
能否根据这些曲线判断系统状态得能控性?
单位阶跃输入:
代码:
A=[0,2,—1;5,1,2;-2,0,0];
B=[1;0;—1];
C=[1,1,0];
D=[0];
Uc=[B,A*B,A^2*B,A^3*B];
rank(Uc)%判断状态能控性
Uo=[C,C*A,C*A^2,C*A^3];
rank(Uo)%判断能观性
Uco=[C*B,C*A*B,C*A^2*B,C*A^3*B];
rank(Uco)%判断输出能控
G=ss(A,B,C,D);
t=[0:
、04:
2];
[y,t,x]=step(G,t);%单位阶跃输入
plot(t,x,’b’,t,y,'m')%状态及输出响应曲线
legend('originaltarget positions','originaltargetpositions’,'X',’Y')
单位脉冲输入:
代码:
A=[0,2,—1;5,1,2;-2,0,0];
B=[1;0;—1];
C=[1,1,0];
D=[0];
G=ss(A,B,C,D);
t=[0:
、04:
2];
[y,t,x]=impulse(G,t)%单位脉冲输入
plot(t,x,'b’,t,y,'m')%状态及输出响应曲线
legend('originaltargetpositions’,’originaltargetpositions’,'X','Y')
当输入改变时, 每个状态变量得响应曲线并没有随着改变.
(3)将给定得状态空间表达式变换为对角标准型,判断系统得能控性与能观测性,与1)得结果就是否一致?
为何?
代码:
A=[0,2,-1;5,1,2;-2,0,0];
B=[1;0;-1];
C=[1,1,0];
D=[0];
G=ss(A,B,C,D);
G1=canon(G,'model’)
A1=[-3、89,0,0;0,3、574,0;0,0,0、8234];
B1=[0、389;-0、7421;-0、6574];
C1=[—0、2313,-1、37,-0、1116];
D1=[0];
Uc=[B,A*B,A^2*B,A^3*B];
rank(Uc)%判断状态能控性
Uo=[C,C*A,C*A^2,C*A^3];
rank(Uo)%判断能观性
系统得能控性与能观测性,与1)得结果就是一致得
(4)令 3)中系统得初始状态为零,输入分别为单位阶跃函数与单位脉冲函数。
用MATLAB函数计算系统得状态响应与输出响应,并绘制响应得曲线。
观察与记录这些曲线。
当输入改变时,每个状态变量曲线就是否随着改变?
能否根据这些曲线判断系统以及各状态变量得能控性?
不能控与能控状态变量得响应曲线有何不同?
单位阶跃输入:
代码:
A=[0,2,-1;5,1,2;-2,0,0];
B=[1;0;-1];
C=[1,1,0];
D=[0];
G1=ss(A,B,C,D);
t=[0:
、04:
3];
[y,t,x]=step(G1,t)%单位脉冲输入
plot(t,x,’b’,t,y,'m')%状态及输出响应曲线
legend('originaltargetpositions’,'original target positions','X’,'Y')
单位脉冲输入:
A=[0,2,—1;5,1,2;-2,0,0];
B=[1;0;-1];
C=[1,1,0];
D=[0];
G=ss(A,B,C,D);
G1=canon(G,’model')
t=[0:
、04:
2];
[y,t,x]=impulse(G,t)%单位脉冲输入
plot(t,x,’b’,t,y,’m’)%状态及输出响应曲线
legend('originaltargetpositions’,'original targetpositions','X’,’Y')
输入改变时, 每个状态变量曲线并没有随着改变。
(4)根据2)与4)所得曲线能否判断系统状态以及各状态变量得能观测性?
答:
能观性表述得就是输出y(t)反映状态变量x(t)得能力,与控制作用没有直接关系。
(1)已知如下与所描述得系统
已知系统
ﻩ
(1)将给定得状态空间模型转换为传递函数模型.令初始状态为零,用MATLAB 计算系统得单位阶跃输出响应,绘制与记录相应得曲线.
代码:
A=[-3—4;-20];B=[5;1];C=[—1—1];D=[0];
G=ss(A,B,C,D);
G1=tf(G)
t=[0:
、04:
5];
[y,t,x]=step(G,t)%单位阶跃输入
plot(t,x,’b’,t,y,'m’)%状态及输出响应曲线
legend('originaltargetpositions',’originaltargetpositions’,’X',’Y')
②
代码:
A=[-1000;0-3 00;00 —2 0;000-5];
B=[2;1;0;0];
C=[1 01 0];
D=[0];
G=ss(A,B,C,D);
G1=tf(G)
t=[0:
、04:
5];
[y,t,x]=step(G,t);%单位阶跃输入
plot(t,x,’b’,t,y,'m’)%状态及输出响应曲线
legend(’originaltarget positions’,'originaltargetpositions’,'original targetpositions’,'X','Y')
(2)按能控性分解给定得状态空间模型并记录所得得结果,然后再将其转换为传递函数模型.它与1)中所得得传递函数模型就是否一致?
为什么?
令初始状态为零,用MATLAB计算系统得单位阶跃输出响应,并绘制与记录相应曲线.这一曲线与 1)中得输出曲线就是否一致?
为什么?
A=[-3-4;-20];B=[5;1];C=[-1 —1];D=[0];
[AcBcCcTcKc]=ctrbf(A,B,C);
G=ss(Ac,Bc,Cc,0);
G1=tf(G)
t=[0:
、04:
5];
[y,t,x]=step(G,t);%单位阶跃输入
plot(t,x,'b',t,y,'m’)%状态及输出响应曲线
legend('originaltargetpositions','X’,’Y')
按能控性分解给定得状态空间模型并记录所得得结果,然后再将其转换为传递函数模型,它与1)中所得得传递函数模型一致得。
令初始状态为零,用MATLAB计算系统得单位阶跃输出响应,并绘制与记录相应曲线这一曲线与1)中得输出曲线就是一致得。
②
代码:
A=[—1 0 0 0;0—300;00-20;000—5];
B=[2;1;0;0];
C=[1 010];
D=[0];
[AcBc CcTcKc]=ctrbf(A,B,C);
G=ss(Ac,Bc,Cc,0);
G1=tf(G)
t=[0:
、04:
5];
[y,t,x]=step(G,t);%单位阶跃输入
plot(t,x,'b',t,y,'m')%状态及输出响应曲线
legend(’original targetpositions’,’originaltargetpositions',’originaltargetpositions’,’X','Y’)
按能控性分解给定得状态空间模型并记录所得得结果,然后再将其转换为传递函数模型,它与1)中所得得传递函数模型就是不一致得。
令初始状态为零,用 MATLAB计算系统得单位阶跃输出响应,并绘制与记录相应曲线这一曲线与 1)中得输出曲线就是不一致得。
(3)按能观测性分解给定得状态空间模型并记录分解所得得结果,然后再将其转换为传递函数模型.它与1)中得传递函数模型就是否一致?
为何?
令初始状态为零,用MATLAB计算系统得单位阶跃输出响应,并绘制与记录相应曲线。
这一曲线与1)中得输出曲线就是否一致?
A=[—3 —4;—20];B=[5;1];C=[-1 -1];D=[0];
[AoBoCo ToKo]=obsvf(A,B,C);
G=ss(Ao,Bo,Co,0);
G1=tf(G)
t=[0:
、04:
5];
[y,t,x]=step(G,t)%单位阶跃输入
plot(t,x,’b',t,y,'m’)%状态及输出响应曲线
legend(’original targetpositions',’originaltarget positions’,’originaltarget positions',’X','Y’)
按能观测性分解给定得状态空间模型并记录所得得结果,然后再将其转换为传递函数模型,它与1)中所得得传递函数模型一致得.令初始状态为零,用MATLAB 计算系统得单位阶跃输出响应,并绘制与记录相应曲线这一曲线与1)中得输出曲线就是不一致得。
②
代码:
A=[-10 0 0;0-300;00—20;00 0-5];
B=[2;1;0;0];
C=[1010];
D=[0];[AoBoCoTo Ko]=obsvf(A,B,C);
G=ss(Ao,Bo,Co,0);
G1=tf(G)
t=[0:
、04:
5];
[y,t,x]=step(G,t)%单位阶跃输入
plot(t,x,'b',t,y,'m')%状态及输出响应曲线
legend('originaltargetpositions','originaltargetpositions',’originaltargetpositions’,'X’,'Y')
按能观测性分解给定得状态空间模型并记录所得得结果,然后再将其转换为传递函数模型,它与 1)中所得得传递函数模型不一致得.令初始状态为零,用 MATLAB计算系统得单位阶跃输出响应,并绘制与记录相应曲线这一曲线与1)中得输出曲线就是不一致得。
4)按能控性能观测性分解给定得状态空间模型并记录分解所得得结果,然后再将其转换为传递函数模型。
它与 1)中得传递函数模型就是否一致?
为何?
令初始状态为零,用MATLAB计算系统得单位阶跃输出响应,并绘制与记录相应得曲线。
这一曲线与1)中得输出曲线就是
否一致?
为什么?
代码:
A=[—3—4;-20];B=[5;1];C=[-1-1];D=[0];
[AkBkCkTk]= kalmdec(A,B,C);
G=ss(Ak,Bk,Ck,0);
G1=tf(G)
t=[0:
、04:
5];
[y,t,x]=step(G,t)%单位阶跃输入
plot(t,x,'b’,t,y,'m')%状态及输出响应曲线
legend(’originaltargetpositions’,'X',’Y')
按能控性能观测性分解给定得状态空间模型并记录所得得结果,然后再将其转换为传递函数模型,它与1)中所得得传递函数模型就是一致得.令初始状态为零,用MATLAB 计算系统得单位阶跃输出响应,并绘制与记录相应曲线这一曲线与1)中得输出曲线就是不一致得。
②
代码:
A=[-1 00 0;0-300;0 0-20;000-5];
B=[2;1;0;0];
C=[1010];
D=[0];
[Ak Bk Ck Tk ]=kalmdec(A,B,C);
G=ss(Ak,Bk,Ck,0);
G1=tf(G)
[y,t,x]=step(G,t)%单位阶跃输入
plot(t,x,'b',t,y,'m')%状态及输出响应曲线
legend(’originaltargetpositions’,’X','Y’)
按能观测性分解给定得状态空间模型并记录所得得结果,然后再将其转换为传递函数模型,它与1)中所得得传递函数模型不一致得.令初始状态为零,用MATLAB计算系统得单位阶跃输出响应,并绘制与记录相应曲线这一曲线与1)中得输出曲线就是一致得。
(3)已知系统
1)求最小实现(用函数minreal()。
(a)
代码:
A =[—1,0,0,0;0,-3,0,0;0,0,-2,0;0,0,0,—4];
B=[2;1;0;0];
C=[1,0,1,0];
D=0;
G= ss(A,B,C,D);
Gm=minreal(G)
(b)
num=[1,1];
den=[1,6,11,6];
G=tf(num,den);
G1=ss(G)
Gm=minreal(G1)
2)判断所得系统得能控性与能观测性
(a)
代码:
A= [-1,0,0,0;0,-3,0,0;0,0,—2,0;0,0,0,-4];B=[2;1;0;0];C= [1,0,1,0];D=0;
G =ss(A,B,C,D);
Gm=minreal(G)
Uc= [B,A*B,A^2*B,A^3*B];
rank(Uc)%判断能控性
Uo=[C,C*A,C*A^2,C*A^3];
rank(Uo)%判断能观性
(b)
代码:
num=[1,1];
den=[1,6,11,6];
G=tf(num,den);
G1=ss(G)
Gm=minreal(G1)
A=[—6 —2、75-1、5;40 0;010];
B=[0、5;0;0];
C=[00 0、5];
D=0;
Uc= [B,A*B,A^2*B,A^3*B];
rank(Uc)%判断能控性
Uo = [C,C*A,C*A^2,C*A^3];
rank(Uo)%判断能观性
3)求得得结果就是否就是最小实现?
答:
求得得结果就是最小实现
5、实验心得
本次试验就是研究线性定常系统得能控性与能观测性。
通过本次实验学习了解到系统状态能控性、能观测性得定义及判别方法;通过用MATLAB 编程、上机调试,掌握系统能控性、能观测性得判别方法,学习到将一般形式得状态空间描述变换成能控标准形、能观标准形,以及再能控性与能观测性得概念,如何用MATLAB 判断能控性与能观测性。
并且了解系统得结构分解,学会用 MATLAB进行结构分解。
并且再了解最小实现得概念后学会用MATLAB 求最小实现.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 线性 系统 能控性 观测
![提示](https://static.bdocx.com/images/bang_tan.gif)