北京交通大学现代控制理论matlab实验报告
- 格式:doc
- 大小:2.01 MB
- 文档页数:41
实验一系统的传递函数阵和状态空间表达式的转换实验目的:1、学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换的方法。
实验内容及结果:>>num=[0 0 1 2;0 1 5 3];den=[1 2 3 4];[A,B,C,D]=tf2ss(num,den)实验二状态空间控制模型系统仿真及状态方程求解实验目的:1、熟悉线性连续系统的状态空间控制模型的各种表示方法;2、熟悉系统模型之间的转换功能;3、利用MATLAB对线性定常系统进行动态分析。
实验内容及结果(1)>>num=[1 2 1 3]; den=[1 0.5 2 1];sys=tf(num,den);sys1=tf2zp(num,den); sys2=tf2ss(num,den); impulse(sys);step(num,den,t);>>A=[0 1;-10 -5];B=[0;0];D=B;C=[1 0;0 1];x0=[2;1];[y,x,t]=initial(A,B,C,D,x0);plot(t,x(:,1),t,x(:,2))gridtitle('Response to initial condition') xlabel('Time(sec)')ylabel('x1,x2')text(0.55,1.15,'x1')text(0.4,-2.9,'x2')>>A=[-1 -1;6.5 0]; B=[1 1;1 0];C=[1 0;0 1];D=[0 0;0 0];step(A,B,C,D)(4)思考>>A=[0 -2;1 -3];B=[2;0];C=[1 0];x0=[1;1];U=1;[t,x]=ode45(@solve_state_fun,[0 10],x0,[],A,B,U); plot(t,x(:,1),t,x(:,2));gridtitle('Response to initial condition')xlabel('Time(sec)')ylabel('x1,x2')text(0.55,1.15,'x1')text(0.4,-2.9,'x2')实验三系统能控性、能观性的判别实验目的:1、系统的能控性和能观测性的判别方法、系统的能控性和能观测性的分解;2、了解MATLAB中的相应的函数。
控制理论实验报告MATLAB仿真实验实验报告课程名称:控制理论(二)讲师:林峰结果:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _实验名称:MATLAB仿真实验类型:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _同一组学生的姓名:________一、实验的目的和要求(要求)二.实验内容和原则(要求)三.主要仪器和设备(必需)四.操作方法和实验步骤五、实验数据的记录和处理六.实验结果和分析(必需)7.控制系统时域分析实验9的探讨与体会首先,实验的目的:1.利用计算机辅助分析,掌握系统的时域分析方法。
2.熟悉Simulink仿真环境。
二、实验原理和方法:系统仿真本质上是系统模型的求解。
对于控制系统,一般模型可以转化为微分方程或差分方程。
因此,在仿真过程中,通过一些数值算法从初始状态开始逐步计算系统响应。
最后,画出系统的响应曲线,分析系统性能。
控制系统最常用的时域分析方法是当输入信号为单位阶跃和单位脉冲函数时,获得系统的输出响应,分别称为单位阶跃响应和单位脉冲响应。
在MATLAB中,提供了单位阶跃响应函数step、单位冲激响应函数impulse、零输入响应函数initial等来获得连续系统。
二、实验内容:二阶系统的状态方程模型是——控制理论(二)指导者:林峰结果:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _实验名称:MATLAB仿真实验类型:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _同一组学生的姓名:________一、实验的目的和要求(要求)二.实验内容和原则(要求)三.主要仪器和设备(必需)四.操作方法和实验步骤五、实验数据的记录和处理六.实验结果和分析(必需)7.控制系统时域分析实验9的探讨与体会首先,实验的目的:1.利用计算机辅助分析,掌握系统的时域分析方法。
2.熟悉Simulink仿真环境。
MATLAB上机实验报告(2)实验容:一、试用如下几种方法来建立向量,观察结果(1)x=1:5, x=(1:5)’实验结果:x=1:5 是行向量,x=(1:5)’是列向量.且1为初始值,5为终止值,默认的步长为1.>> x=1:5x =1 2 3 4 5>> x=(1:5)'x =12345(2)x=0:pi/4:pi实验结果: x=0:pi/4:pi指的是x=(0,0.25*pi,0.50*pi,0.75*pi,pi).其中pi为圆周率,初始值为0,终止值为pi,步长为pi/4.>> x=0:pi/4:pix =0 0.7854 1.5708 2.3562 3.1416(3)x=(0:0.2:3)’, y=exp(-x).*sin(x)实验结果: x的初始值为0,终止值为3,步长为0.2.而函数y 表示将x向量中的每一个数代入函数y=e^(-x)*sin(x)得到的函数值组成的向量.>> x=(0:0.2:3)', y=exp(-x).*sin(x)x =0 0.2000 0.4000 0.60000.80001.0000 1.2000 1.4000 1.60001.80002.0000 2.2000 2.4000 2.60002.80003.0000 y =0.16270.26100.30990.32230.30960.28070.24300.20180.16100.12310.08960.06130.03830.02040.0070(4)k=linspace(-pi,pi,5), k=logspace(-3,-1,5)实验结果:k=linspace(-pi,pi,5),产生的是初始值为-pi,终止值为pi,元素总数为5的行向量,即k的步长为pi/2.k=logspace(-3,-1,5)产生的是初始值为10^(-3),终止值为10^(-1),元素总数为5的列向量.其中第n个元素为10^(-3+0.5*n).>> k=linspace(-pi,pi,5), k=logspace(-3,-1,5)k =-3.1416 -1.5708 0 1.5708 3.1416k =0.0010 0.0032 0.0100 0.0316 0.1000二、已知x=[1 2 3],y=[4 5 6],试计算z=x.*y, x.\y和x./y。
现代控制理论实验指导书实验一:线性系统状态空间分析1、模型转换图1、模型转换示意图及所用命令传递函数一般形式:)()(11101110n m a s a s a s a b s b s b s b s G n n n n m m m m ≤++++++++=----K KMATLAB 表示为:G=tf(num,den),其中num,den 分别是上式中分子,分母系数矩阵。
零极点形式:∏∏==--=n i j mi i ps z s K s G 11)()()( MATLAB 表示为:G=zpk(Z,P ,K),其中 Z ,P ,K 分别表示上式中的零点矩阵,极点矩阵和增益。
传递函数向状态空间转换:[A,B,C,D] = TF2SS(NUM,DEN);状态空间转换向传递函数:[NUM,DEN] = SS2TF(A,B,C,D,iu)---iu表示对系统的第iu个输入量求传递函数;对单输入iu为1;验证教材P438页的例9-6。
求P512的9-6题的状态空间描述。
>> A=[0 1;0 -2];>> B=[1 0;0 1];>> C=[1 0;0 1];>> D=[0 0;0 0];>> [NUM,DEN] = ss2tf(A,B,C,D,1)NUM =0 1 20 0 0DEN =1 2 0>> [NUM,DEN] = ss2tf(A,B,C,D,2)NUM =0 0 10 1 0DEN =1 2 0给出的结果是正确的,是没有约分过的形式P512 9-6>> [A,B,C,D]=tf2ss([1 6 8],[1 4 3])A =-4 -31 0B =1C =2 5D =12、状态方程求解单位阶跃输入作用下的状态响应:G=ss(A,B,C,D);[y,t,x]=step(G);plot(t,x). 零输入响应[y,t,x]=initial(G,x0)其中,x0为状态初值。
北京交通⼤学现代控制理论matlab实验报告实验⼀利⽤MATLAB进⾏线性系统的模型转换及联结课程:现代控制理论姓名:王柬⽂学号:11212070班级:⾃动化1103指导教师:张勇标题 (1)⽬录 (2)⼀实验⽬的: (3)⼆实验原理: (3)三实验步骤: (6)四实验要求: (7)五实验内容: (8)1 (8)2 (18)3 (29)4 (36)5 (37)六实验感想: (40)⼀实验⽬的:1、学习系统状态空间模型的建⽴⽅法、了解状态空间模型与传递函数、零极点模型之间相互转换的⽅法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的⽅法。
3、通过编程、上机调试,掌握系统模型的联结⽅法。
⼆实验原理:⼀、连续系统(1)状态空间模型x Ax Buy Cx Du=+=+& (1.1)其中:nx R ∈是系统的状态向量,mu R ∈是控制输⼊,py R ∈是测量输出,A 是n n ?维状态矩阵、B 是n m ?维输⼊矩阵、C 是p n ?维输出矩阵、D 是直接转移矩阵。
在MATLAB 中,⽤(A,B,C,D )矩阵组表⽰。
系统传递函数和状态空间模型之间的关系如式(1.2)所⽰。
1()()G s C sI A B D -=-+ (1.2)(2)传递函数模型11101110()(),()m m m m n n n n b s b s b s b num s H s m n den s a s a s a s a ----++++==≤++++L L 在MATLAB 中,直接⽤分⼦/分母的系数表⽰1010[,,,][,,,]m m n n num b b b den a a a --==L L(3)零极点增益模型1212()()()()()()()m n s z s z s z H s ks p s p s p ---=---L L在MATLAB 中,⽤[z, p, k]⽮量组表⽰,即1212[,,,];[,,,];[];m n z z z z p p p p k k ===L L ⼆、离散系统(1)传递函数模型11101110()m m m m n n n n b z b z b z b H z a z a z a z a ----++++=++++L L (2)零极点增益模型1212()()()()()()()m n z z z z z z H z kz p z p z p ---=---L L(3)状态空间模型(1)()()()()()x k Ax k Bu k y k Cx k Du k +=+=+三、三种模型间的转换表⽰状态空间模型和传递函数的MATLAB 函数。
现代控制理论实验报告姓名:班级:学号:目录一.实验设备二.实验目的三.实验步骤一、实验设备PC计算机1台,MATLAB软件1套。
二、实验目的1。
学习系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2。
通过编程、上机调试、掌握系统状态空间表达式与传递函数相互转换方法;3。
学习MATLAB的使用方法。
三、实验步骤1、根据所给系统的结构图写出死循环系统的传递函数,若K=10,T=0。
1时阶跃输出下的系统输出响应,并采用MATLAB编程.2、在MATLAB接口下调试程序,并检查是否运行正确.3、给出定二阶系统结构图:图为二阶系统结构图(1)求二阶系统的闭环循环传递函数ɸ(s )=)(1)(s G s G +=K S TS K++2(2)若K=10,T=0。
1,仿真给出阶跃下的系统输出响应把K T 代入方程得Φ(S)= =1)MATLAB 命令得出的系统响应曲线在MATLAB 上输入下列指令:〉> num=[100];>> den=[1,10,100];>> step (num,den)程序运行后显示的时域动态响应曲线(如图2)图为 时域动态响应曲线2)、用进行Simulink 进行仿真启动Simulink并打开一个空白的模块编辑窗口,画出所需模块,并给出正确参数,将画出的所有模块链接起来(如图1),构成一个原系统的框图描述(如图3).选择仿真控制参数,启动仿真过程。
仿真结果示波器显示如图4。
图3二阶系统的Simulink(仿真)图4仿真结果示波器显示(仿真输出)(3) 调整比例系数K,使之从零开始增加。
同时,观察仿真曲线的变化,并给出过阻尼、临界、欠阻尼的条件。
当K=0时的仿真曲线当K=1时的仿真曲线当K=2.5时的仿真曲线当K=3。
5时的仿真曲线当K=4时的仿真曲线根据调整比例系数K,使之从零开始增加,同时观察仿真曲线的变化,得出以下结论;过阻尼的条件:K>2.5时;临界阻尼条件:K=2.5时;欠阻尼的条件:K<2。
现代控制理论第一次Matlab 实验报告一、实验目的:1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。
3、通过编程、上机调试,掌握系统模型的联结方法。
二、实验过程实验题目1:(1)在运行以上例程序的基础上,应用MATLAB 求下面传递函数阵的状态空间实现232252()234s s s G s s s s +⎡⎤⎢⎥++⎣⎦=+++ 提示:num =[0 0 1 2;0 1 5 3](2)Matlab 源程序num=[0 0 1 2;0 1 5 3];den=[1 2 3 4];[A ,B ,C ,D ]=tf2ss (num,den);(3)实验结果 A =—2 —3 -4 1 0 00 1 0B =1C =0 1 21 5 3D =实验题目2:(1)一个双输入双输出系统112233412311022711353x x x x u x x -⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦11223120011x y x y x ⎡⎤⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦求出此模型的能控标准型和能观标准型.提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标准型。
(2)Matlab 源程序A=[4 1 -2;1 0 2;1 -1 3];B=[3 1;2 7;5 3];C=[1 2 0;0 1 1];D=[0 0;0 0];[num1,den1]=ss2tf (A,B ,C ,D,1);[num2,den2]=ss2tf(A ,B,C,D,2);(3)实验结果:num1 =0 7。
0000 -19。
0000 —36。
现代控制理论实验报告实验一 系统的传递函数阵和状态空间表达式的转换一、实验目的1.熟悉线性系统的数学模型、模型转换。
2.了解MATLAB 中相应的函数 二、实验内容及步骤 1.给定系统的传递函数为1503913.403618)(23++++=s s s s s G 要求(1)将其用Matlab 表达;(2)生成状态空间模型。
2.在Matlab 中建立如下离散系统的传递函数模型y (k + 2) +5y (k +1) +6y (k ) = u (k + 2) + 2u (k +1) +u (k ) 3.在Matlab 中建立如下传递函数阵的Matlab 模型⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡+++++++++++=726611632256512)(2322s s s s s s s s s s s s G4.给定系统的模型为)4.0)(25)(15()2(18)(++++=s s s s s G求(1)将其用Matlab 表达;(2)生成状态空间模型。
5.给定系统的状态方程系数矩阵如下:[]0,360180,001,0100011601384.40==⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=D C B A用Matlab 将其以状态空间模型表示出来。
6.输入零极点函数模型,零点z=1,-2;极点p=-1,2,-3 增益k=1;求相应的传递函数模型、状态空间模型。
三、实验结果及分析1. num=[18 36];den=[1 40.3 391 150]; >> G=tf(num,den) Transfer function: 18 s + 36----------------------------s^3 + 40.3 s^2 + 391 s + 150>> sys=ss(G)a =x1 x2 x3x1 -40.3 -24.44 -4.688x2 16 0 0x3 0 2 0b =u1x1 2x2 0x3 0c =x1 x2 x3y1 0 0.5625 0.5625d =u1y1 0Continuous-time model.2. num=[1 2 1];den=[1 5 6];tf(num,den,0.1) Transfer function:z^2 + 2 z + 1-------------z^2 + 5 z + 6Sampling time: 0.13. num={[1 2 1] [1 5] [2 3] [6]};den={[1 5 6] [1 2] [1 6 11 6] [2 7]};>> tf(num,den)Transfer function from input 1 to output:s^2 + 2 s + 1-------------s^2 + 5 s + 6Transfer function from input 2 to output:s + 5-----s + 2Transfer function from input 3 to output:2 s + 3----------------------s^3 + 6 s^2 + 11 s + 6Transfer function from input 4 to output:6-------2 s + 74. sys=zpk([-2],[-15 -25 -0.4],[18])Zero/pole/gain:18 (s+2)---------------------(s+15) (s+25) (s+0.4)z=-2;p=[-15;-25;-0.4];k=18;>> [A,B,C,D]=zp2ss(z,p,k)A =-0.4000 0 01.6000 -40.0000 -19.36490 19.3649 0B =11C =0 0 0.9295D =5. A=[-40.4 -138 -160;1 0 0;0 1 0];B=[1;0;0];C=[0 18 360];D=0; >> sys=ss(A,B,C,D)a =x1 x2 x3 x1 -40.4 -138 -160x2 1 0 0x3 0 1 0b =u1x1 1x2 0x3 0c =x1 x2 x3y1 0 18 360d =u1y1 0Continuous-time model.6. z=[1;-2];p=[-1;2;-3];k=1;>> [A,B,C,D]=zp2ss(z,p,k)A =2.0000 0 01.0000 -4.0000 -1.73210 1.7321 0B =1C =1.0000 -3.0000 -2.8868D =>> [num,den]=ss2tf(A,B,C,D)num =0 1.0000 1.0000 -2.0000 den =1 2 -5 -6 >> tf(num,den) Transfer function: s^2 + s - 2 --------------------- s^3 + 2 s^2 - 5 s - 6 四、实验总结本次实验主要是熟悉利用matlab 建立线性系统数学模型以及模型间的相应转换(如状态空间、传递函数模型等)、并了解matlab 中相应函数的使用,如tf 、ss 、zp2ss 、ss2tf 等。
北京交通大学MATLAB实验3实验内容在同一坐标系下绘制t2, - t2, t2sint在t [0,2 ]内的曲线图;选择合适的“曲线线型”,“曲线颜色”、“标记符号”选项,并在图形上加注坐标轴名和图名。
仿真程序:%实验三,题1 close all;clear all;clc;t=li nsp ace(0,2* pi,1024);y1=t.^2;y2=-t.^2;y3=(tA2).*si n(t);figure(2); plot(t,y1,':y',t,y2,'--g',t,y3,'-r');lege nd('y=tA2','y=-tA2','y=tA2*si n( t)');title('三个函数图形’);xlabel('t');ylabel('f(t)');仿真结果:三翊留F的范围,讲同一图形窗口分割成 2行2列绘制下列4幅极坐标图(1) 1.0013 2⑵ cos(3.5 ) ⑶ sin⑷1 cos 3(7 )仿真结果:用鼠标左键在图形窗口上取 5个点,在每个点的位置处写出一个字符串来显式鼠标 点的横坐标值,然后将这些点连成折线。
仿真程序:%实验三,题3close all;clc;clear all;选择合适的 仿真程序:%实验三,题2theta=li nsp ace(0,16* pi ,2048);sub plot(2,2,1); polar(theta,1.0013*thetaA2); sub plot(2,2,2); polar(theta,cos(3.5*theta)); sub plot(2,2,3) ;p olar(theta,s in (theta)./theta);sub plot(2,2,4); polar(theta,1-(cos(7*theta))A3);2ID丈19C :21%axis([0,10,0,10]);hold on;box on;x=[];y=[];while(1)[x1,y1,butto n]=gi np ut(1);if(butto n~=1)break;endendplot(x1,y1,'ro');x=[x,x1];y=[y,y1];text((x1+0.1),y1,mat2str(x1)); lin e(x,y);hold off; 仿真结果:仿真程序:%实验三,题 close all;clear all;clc; syms y1 y2 x;y1= in t(log(x^2),x,0,2);y2=in t(log(16)/(2+si n((x+1)* pi)),x,2,4); y=y1+y2; dis p( double(y));仿真结果:Command Window19741A >>求解方程x 5+6x 4-3x 2=10的5个根,并将其位置用五角星符号标记在复平面上,要仿真程序:%实验三,题5 clc;close all;clear all;factor=[1 6 0 -3 0 -10];ro=roots(factor);dis p(ro);scatter(real(ro),imag(ro),' p');axis equal;title('x^5+6x^4-3x^2=10');xlabel('real axis');ylabel('imagi ne axis(j)');四、 求积分af(x)dx ,其中 f(x) ln x 2,ln16 if x2 sin(x 1),if x 1.97412五、求横纵坐标轴刻度等长,注明虚轴和实轴,在 title 位置上写出方程。
实验报告课程名称:控制理论(乙)指导老师:林峰成绩:__________________实验名称:MATLAB 仿真实验实验类型:________________同组学生姓名:__________一、实验目的和要求(必填)二、实验内容和原理(必填)三、主要仪器设备(必填)四、操作方法和实验步骤五、实验数据记录和处理六、实验结果与分析(必填)七、讨论、心得实验九控制系统的时域分析一、实验目的:1.用计算机辅助分析的办法,掌握系统的时域分析方法。
2.熟悉Simulink 仿真环境。
二、实验原理及方法:系统仿真实质上就是对系统模型的求解,对控制系统来说,一般模型可转化成某个微分方程或差分方程表示,因此在仿真过程中,一般以某种数值算法从初态出发,逐步计算系统的响应,最后绘制出系统的响应曲线,进而可分析系统的性能。
控制系统最常用的时域分析方法是,当输入信号为单位阶跃和单位冲激函数时,求出系统的输出响应,分别称为单位阶跃响应和单位冲激响应。
在MATLAB 中,提供了求取连续系统的单位阶跃响应函数step ,单位冲激响应函数impulse ,零输入响应函数initial 等等。
二、实验内容:二阶系统,其状态方程模型为∙1x -0.5572-0.78141x 1=+u ∙2x 0.781402x 01x y =[1.9691 6.4493]+[0]u2x 四、实验要求:1.编制MATLAB 程序,画出单位阶跃响应曲线、冲击响应曲线、系统的零输入响应、斜坡输入响应;(1)画出系统的单位阶跃响应曲线;A=[-0.5572-0.7814;0.78140];B=[1;0];C=[1.96916.4493];D=[0];G=ss(A,B,C,D);step(G)title('单位阶跃响应')(2)画出系统的冲激响应曲线;A=[-0.5572-0.7814;0.78140];B=[1;0];C=[1.96916.4493];D=[0];G=ss(A,B,C,D);impulse(G)title('单位脉冲响应')(3)当系统的初始状态为x0=[1,0]时,画出系统的零输入响应;A=[-0.5572-0.7814;0.78140];B=[1;0];C=[1.96916.4493];D=[0];x0=[1,0];initial(A,B,C,D,x0)title('零输入响应')(4)当系统的初始状态为零时,画出系统斜坡输入响应;A=[-0.5572-0.7814;0.78140];B=[1;0];C=[1.96916.4493];D=[0];[num,den]=ss2tf(A,B,C,D);t=0:0.01:7;u=t;num1(1)=0;num1(2)=0;num1(3)=num(1);num1(4)=num(2);num1(5)=num(3);den1(1)=den(1);den1(2)=den(2);den1(3)=den(3);den1(4)=0;den1(5)=0;c=step(num1,den1,t);plot(t,c,'o',t,u,'-');2.在Simulink仿真环境中,组成系统的仿真框图,观察单位阶跃响应曲线并记录之。
实验一利用MATLAB进行线性系统的模型转换及联结课程:现代控制理论姓名:王柬文学号:11212070班级:自动化1103指导教师:张勇标题 (1)目录 (2)一实验目的: (3)二实验原理: (3)三实验步骤: (6)四实验要求: (7)五实验内容: (8)1 (8)2 (18)3 (29)4 (36)5 (37)六实验感想: (40)一 实验目的:1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。
3、通过编程、上机调试,掌握系统模型的联结方法。
二 实验原理:一、连续系统(1)状态空间模型x Ax Bu y Cx Du=+=+& (1.1) 其中:n x R ∈是系统的状态向量,m u R ∈是控制输入,py R ∈是测量输出,A 是n n ⨯维状态矩阵、B 是n m ⨯维输入矩阵、C 是p n ⨯维输出矩阵、D 是直接转移矩阵。
在MATLAB 中,用(A,B,C,D )矩阵组表示。
系统传递函数和状态空间模型之间的关系如式(1.2)所示。
1()()G s C sI A B D -=-+ (1.2)(2)传递函数模型11101110()(),()m m m m n n n n b s b s b s b num s H s m n den s a s a s a s a ----++++==≤++++L L 在MATLAB 中,直接用分子/分母的系数表示1010[,,,][,,,]m m n n num b b b den a a a --==L L(3)零极点增益模型 1212()()()()()()()m n s z s z s z H s k s p s p s p ---=---L L 在MATLAB 中,用[z, p, k]矢量组表示,即1212[,,,];[,,,];[];m n z z z z p p p p k k ===L L二、离散系统(1)传递函数模型11101110()m m m m n n n n b z b z b z b H z a z a z a z a ----++++=++++L L (2)零极点增益模型1212()()()()()()()m n z z z z z z H z kz p z p z p ---=---L L (3)状态空间模型 (1)()()()()()x k Ax k Bu k y k Cx k Du k +=+=+三、三种模型间的转换表示状态空间模型和传递函数的MATLAB 函数。
函数ss (state space 的首字母)给出了状态空间模型,其一般形式是SYS = ss(A,B,C,D)函数tf (transfer function 的首字母)给出了传递函数,其一般形式是G=tf(num,den)其中的num 表示传递函数中分子多项式的系数向量(单输入单输出系统),den 表示传递函数中分母多项式的系数向量。
(1)传递函数模型与状态空间模型间的转换:函数tf2ss 给出了传递函数的一个状态空间实现,其一般形式是[A,B,C,D]=tf2ss(num,den)函数ss2tf 给出了状态空间模型所描述系统的传递函数,其一般形式是[num,den]=ss2tf(A,B,C,D,iu)其中对多输入系统,必须确定iu 的值。
例如,若系统有三个输入和,则iu 必须是1、2或3,其中1表示1u ,2表示2u ,3表示3u 。
该函数的结果是第iu 个输入到所有输出的传递函数。
(2)传递函数模型与零极点模型间的转换:函数tf2zp 将传递函数模型转换为零极点模型,其一般形式是[z, p, k]=tf2zp(num,den)函数zp2tf 将零极点模型转换为传递函数模型,其一般形式是[num,den]=zp2tf(z, p, k)(3)零极点模型与状态空间模型间的转换:函数tf2zp 将零极点模型转换为状态空间模型,其一般形式是[A,B,C,D]=zp2ss(z, p, k)函数zp2tf 将状态空间模型转换为零极点模型,其一般形式是[z, p, k]=ss2zp(A,B,C,D,iu)四、系统建模与模型联结(1)并联将两个系统按并联方式连接,用parallel 函数实现格式:[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)[a,b,c,d]=parallel(a1,b1,c1,d1,inp1,inp2,out1,out2)[a,b,c,d]=parallel(num1,den1,num2,den2)(2)串联将两个系统按串联方式连接,用series函数实现(3)闭环将系统通过正负反馈连接成闭环系统,用cloop函数实现(4)反馈将两个系统按反馈方式连接成闭环系统,用feedback函数实现(5)利用函数sppend构造增广系统;(6)函数blkbuild和connect得到多个子系统任意联结构成的系统。
五、模型转换传递函数可以转换为约旦标准型(包括对角标准型)、能控标准型和能观测标准型。
(1)约旦标准型函数jordants( ) 可用部分分式展开将传递函数转换为对角标准型或约当标准型。
该函数的调用格式为:jordants)numGJ(den,其中num和den分别为传递函数分子和分母多项式系数的行向量,GJ为转换得到对角标准型或约当标准型。
该函数的程序如下:function Gj=jordants(num,den) %用部分分式展开将传递函数转换为约当标准型[R,P,K]=residue(num,den);j=1;q=P(1);m(1)=0;for i=1:length(P)if P(i)==qm(j)=m(j)+1;else q=P(i);j=j+1;m(j)=1;endend %计算各极点的重数Aj=diag(P);for i=1:length(P)-1if Aj(i,i)==Aj(i+1,i+1)Aj(i,i+1)=1;else Aj(i,i+1)=0;endend %构造系统矩阵AjB1=0;l=0;for j=1:length(m)l=l+m(j);B1(l)=1;endBj=B1'; %构造输入矩阵Bjn=1;l=m(1);Cj(:,1:m(1))=rot90(R(1:m(1),:),3);for k=2:length(m)n=l+1;l=l+m(k);Cj(:,n:l)=rot90(R(n:l,:),3);end %构造输出矩阵Cjif K==[ ]Dj=0;elseDj=K;end %构造直联矩阵DjGj=ss(Aj,Bj,Cj,Dj);(2)能控标准型函数ctrlts( )可将传递函数转换为能控标准型。
该函数的调用格式为:ctrltsGcnum(den),其中num和den分别为传递函数的分子和分母多项式系数的行向量,Gc为转换得到的能控标准型。
该函数的程序如下:function Gc=ctrlts(num,den) %将传递函数转换为能控标准型m=length(num)-1;n=length(den)-1;if m==n[R,P,K]=residue(num,den);num1=num-K*den;A(n,:)=-1*rot90(den(:,2:n+1),2);A(1:n-1,2:n)=eye(n-1);A(1:n-1,1)=zeros(n-1,1);B=[zeros(n-1,1);1];C=rot90(num1(:,2:n+1),2);D=K;else A(n,:)=-1*rot90(den(:,2:n+1),2);A(1:n-1,2:n)=eye(n-1);A(1:n-1,1)=zeros(n-1,1);B=[zeros(n-1,1);1];C(:,1:m+1)=rot90(num,2);C(:,m+2:n)=zeros(1,n-m-1);D=0;endGc=ss(A,B,C,D);三实验步骤:1、根据所给系统的已知条件,如传递函数、零极点模型或(A、B、C、D),实现状态空间模型、传递函数模型、零极点增益模型之间的转换,采用MATLAB的相关函数编写m-文件。
2、应用系统建模工具,并联、串联、闭环、反馈等函数解决实际问题。
3、在MATLAB 界面下调试程序。
四 实验要求:1. 已知系统的传递函数 (a) )3()1(4)(2++=s s s s G (b) 3486)(22++++=s s s s s G (c) 61161)(232+++++=z z z z z z G (1)建立系统的TF 或ZPK 模型。
(2)将给定传递函数用函数ss( )转换为状态空间表达式。
再将得到的状态空间表达式用函数tf( )转换为传递函数,并与原传递函数进行比较。
(3)将给定传递函数用函数jordants( )转换为对角标准型或约当标准型。
再将得到的对角标准型或约当标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。
(4)将给定传递函数用函数ctrlts( )转换为能控标准型和能观测标准型。
再将得到的能控标准型和能观测标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。
2. 已知系统的状态空间表达式(a) u x x⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡--=106510& []x y 11= (b) u x x ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡+⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---=7126712203010& []111=y(1)建立给定系统的状态空间模型。
用函数eig( ) 求出系统特征值。
用函数tf( ) 和zpk( )将这些状态空间表达式转换为传递函数,记录得到的传递函数和它的零极点。
比较系统的特征值和极点是否一致,为什么?(2)用函数canon( )将给定状态空间表达式转换为对角标准型。
用函数eig( )求出系统特征值。
比较这些特征值和(1)中的特征值是否一致,为什么? 再用函数tf( )和zpk( )将对角标准型或约当标准型转换为传递函数。
比较这些传递函数和(1)中的传递函数是否一致,为什么?(3)用函数ctrlss( )将给定的状态空间表达式转换为能控标准型和能观测标准型。
用函数eig( )求系统的特征值。
比较这些特征值和(1)中的特征值是否一致,为什么?再用函数tf( )将它们转换为传递函数。
比较这些传递函数和(1)中的传递函数是否一致,为什么?3. 已知两个子系统441)(21+++=s s s s G 611653)(232++++=s s s s s G (1)建立两个子系统的传递函数模型。