现代控制理论Matlab实验报告

合集下载

现代控制理论-基于MATLAB的实验指导书课程设计指导书

现代控制理论-基于MATLAB的实验指导书课程设计指导书

现代控制理论基于MATLAB的实验指导书第一部分实验要求1.实验前做好预习。

2.严格按照要求操作实验仪器,用毕恢复原状。

3.实验完成后,由指导教师检查实验记录、验收仪器后,方可离开。

4.实验报告应包括以下内容:1)实验目的;2)实验原理图;3)实验内容、步骤;4)仿真实验结果(保留仿真实验波形,读取关键参数);5)仿真实验结果分析。

第二部分MATLAB平台介绍实际生产过程中,大部分的系统是比较复杂的,并且要考虑安全性、经济性以及进行实验研究的可能性等,这在现场实验中往往不易做到,甚至根本不允许这样做。

这时,就需要把实际系统建立成物理模型或数学模型进行研究,然后把对模型实验研究的结果应用到实际系统中去,这种方法就叫做模拟仿真研究,简称仿真。

到目前为止,已形成了许多各具特色的仿真语言。

其中美国Mathworks软件公司的动态仿真集成软件Simulink与该公司著名的MATLAB软件集成在一起,成为当今最具影响力的控制系统应用软件。

国内MA TLAB软件的著名论坛为“MATLAB中文论坛”,网址为:https:///forum.php,建议同学们注册并参与论坛相关内容的讨论。

图1 MA TLAB仿真环境第三部分 实验实验一线性系统的时域分析实验目的熟悉MATLAB 环境,掌握用MATLAB 控制系统工具箱进行线性定常系统的时域分析、能控性与能观性分析、稳定性分析的方法。

实验要求完成指导书规定的实验内容,记录并分析实验结果,写出实验报告。

实验内容1.已知系统的状态模型,求系统在单位阶跃输入下的各状态变量、输出响应曲线。

例:[]⎥⎦⎤⎢⎣⎡=⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡⎥⎦⎤⎢⎣⎡--=⎥⎦⎤⎢⎣⎡2121214493.69691.1,0107814.07814.05572.0x x y u x x x x 。

键入:a = [-0.5572, -0.7814; 0.7814,0]; b = [1; 0]; c = [1.9691,6.4493]; d = 0;[y, x, t]=step(a, b, c, d); plot(t, y); grid (回车,显示输出响应曲线。

matlab实验报告

matlab实验报告

目录一、基础题 (2)二、绘图题 (3)三、句柄图形和图形用户界面制作 (9)四、Simulink仿真题 (13)五、专题实验总结 (17)六、参考文献 (17)一.基础题实验目的:1、掌握数组的创建和寻访;2、掌握MA TLAB 数组的运算;3、熟悉MA TLAB 关系操作和逻辑操作;4、掌握函数的调用。

实验要求:1、熟练掌握数组运算;2、熟悉MA TLAB 的各种数据类型及函数调用;3、初步了解M 文件及其编写、调试与运行。

实验内容:某公司投资2000万元建成一条生产线。

投产后,在时刻t 的追加成本和追加收益分别为G(t)= (百万元/年), H(t)= (百万元/年)。

试确定该生产线在合适何时停产可获最大利润?最大利润是多少?解:构造函数f(t)=H(t)-G(t)=13-t-3t 2/3=0 ;令t 1/3=x,则f(t)=-t 3-3t 2+13 可得矩阵P=[-1,-3,0,13]求最佳生产时间的源程序如下:p=[-1,-3,0,13]; x=roots(p); t=x.^3运行结果如下: t =3.6768 +21.4316i 3.6768 -21.4316i4.6465考虑到实际情况,显然两个虚数根应该舍掉。

所以将t=4.6425带入,求积分。

代码:t=4.6465; x=0:0.01:t;y=13-x-3*x.^(2/3); trapz(x,y)运行结果: ans =26.32083/225tt ++3/218t-结论:比较以上三组数据,可知最佳生产时间t=4.6465年,可获得的最大收益为 26.3208(百万元/年)。

减去20(百万元)投资,可得最终利润为6.3208(百万元)。

二.作图题实验目的:1、进一步熟悉M 文件调试过程;2、熟练掌握MA TLAB 二维、三维图形的绘制;3、掌握图形的修饰; 实验要求:1、进一步熟悉和掌握MA TLAB 的编程及调试;2、掌握二维、三维图形的绘制;3、掌握图形交互指令的使用;实验内容:1、二维绘图: (1)函数)sin(2x ey x-=,求:a. 绘制[0 ,8]区间内的图形,加注x,y 轴及图形名称;b. 最大值和最小值;c. 零值;求解:a、命令:ezplot('2*exp(-x)*sin(x)',[0,8]) %绘图title(f) , xlabel('x') ,ylabel('y') %加轴名及图名图像:b、先求最小值:从图像上可以看出,在[3,4]之间有最小值,所以命令:[xmin,fmin]=fminbnd(f,3,4)Hold onPlot(xmin,fmin)运行结果:xmin =3.9270 fmin =-0.0279增加一句标注: text(xmin,fmin,'(3.9270,-0.0279)')求最小值求最大值分析:要求最大值,即为求y=-f(x)的最小值,从图像上可以看出,在[0,2]之间有最大值命令:f=inline('-2*exp(-x)*sin(x)') ezplot(f,[0,8][xmin,fmin]=fminbnd(f,0,2) hold onplot(xmin,fmin,'*') Hold onPlot(xmin,fmin)运行结果: xmin = 0.7854 fmin = -0.6448增加标注:text(xmin,fmin,'(0.7854,-0.6448)')(如上图)综上可知:fmax= 0.6448 fmin= -0.0279c 、为了便于观察,首先增加一条直线y=0 命令:hold onezplot('0',[0,8])图像:0123456780.10.20.30.40.50.60.7x2 exp(-x) sin(x)由图像可以看出,在x=0,x=3,x=6附近有零点,所以命令及运行结果如下:fzero(f,0) %求在x=0附近的零点 ans = 0fzero(f,3) %求在x=3附近的零点 ans =3.1416fzero(f,6) %求在x=6附近的零点 ans =6.2832所以零点有三个分别为:x 1=0 x 2=3.1416 x 3=6.2832(2)在同一个画面上建立几个坐标系, 用subplot(m,n,p)命令;把一个画面分成m×n 个图形区域, p 代表当前的区域号,在每个区域中分别画一个图(函数为:;cos sin 2;cos ;sin x x u x z x y ===xxv cos sin =); 命令:>> subplot(2,2,1)>> ezplot('sin(x)',[-2*pi,2*pi]) >> subplot(2,2,2)>> ezplot('cos(x)',[-2*pi,2*pi]) >> subplot(2,2,3)>> ezplot('2*sin(x)*cos(x)',[-2*pi,2*pi]) >> subplot(2,2,4)>> ezplot('sin(x)/cos(x)',[-2*pi,2*pi])图像:2、三维绘图:(1)绘制[-8 8]区间内函数2222)sin(),(yx y x y x f ++=的三维网格曲面图,给该图加上标题;(2)绘制[-8 8]区间内单叶双曲面 125169222=-+z y x 的三维网格曲面图,给该图加上标题;(3) 求函数 f(x,y) = 3x 2+10y 2+3xy-3x +2y 在原点附近的一个极小值点和极小值;作函数 f(x,y)在|x|<2, |y|<1内的图;解:(1)命令:ezsurf('sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)',[-8,8])title('f=sin(sqrt(x^2+y^2))/sqrt(x^2+y^2)')图像:(2)命令:xa=-8:0.2:8; ya=xa;[x,y]=meshgrid(xa,ya); a=3;b=4;c=5;z1=sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)-1)); z2=-sqrt(c.^2*(x.^2/(a.^2)+y.^2/(b.^2)-1)); surf(x,y,real(z1)) hold on ;surf(x,y,real(z2)) shading interp图像:(3)求极值点命令:>> f=inline('3*x(1)^2+10*x(2)^2+3*x(1)*x(2)-3*x(1)+2*x(2)')f =Inline function:f(x) = 3*x(1)^2+10*x(2)^2+3*x(1)*x(2)-3*x(1)+2*x(2)>> [x,fval]=fminsearch(f,[0,0])运行结果:x = 0.5946 -0.1892fval = -1.0811所以原点附近的极小值点为(0.5946,-0.1892),极小值为:-1.0811 绘图命令:>> x=-2:0.1:2;>> y=-1:0.1:1;>> [xx,yy]=meshgrid(x,y);>> zz=3.*xx.^2+10.*yy.^2+3.*xx.*yy-3.*xx+2.*yy>> surf(xx,yy,zz)图像:三、句柄图形和图形用户界面制作实验目的:1、熟悉句柄图形体系的对象树结构;2、熟练掌握句柄图形体系的对象属性的创建、设置、查询;3、熟练掌握句柄的获取;4、熟练掌握图形用户界面(GUI)的制作;实验要求:1、会获取和显示图形对象的句柄;2、会设置菜单和子菜单;3、会设置用户控件;实验内容:利用底层绘图指令绘制一条余弦曲线。

实验报告基于Matlab的控制系统仿真1

实验报告基于Matlab的控制系统仿真1

实验一 基于Matlab 的控制系统模型姓名 学号 班级机械一、实验目的1) 熟悉Matlab 的使用环境,学习Matlab 软件的使用方法和简单编程方法。

2) 学习使用Matlab 软件进行拉氏变换和拉式反变换的方法。

3) 学习使用Matlab 软件建立、转换连续系统数学模型的方法。

4) 学习使用Matlab 软件分析控制系统稳定性的方法。

二、实验原理1. 拉氏变换和反拉氏变换(1) 拉氏变换syms a w tf1=exp(-a*t)laplace(f1)f2=2laplace(f2)f3=t*exp(-a*t)laplace(f3)f4=sin(w*t)laplace(f4)f5=exp(-a*t)*cos(w*t)laplace t-t (f5)(2) 拉氏反变换syms s a wf 1=1/silaplace(f 1)f 2=1/(s+a)ilaplace(f 2)f 3=1/s^2ilaplace(f 3)f 4=w/(s^2+w^2)ilaplace(f 4)f 5=1/(s*(s+2)^2*(s+3))ilaplace(f 5)…2. 控制系统模型的建立和转化传递函数模型:112m 112+()+m m n n nb s b s b num G s den a s a s b --++==++…… 零极点增益模型:1212()()()()()()()m n s z s z s z G s k s p s p s p ---=--- (1) 建立系统传递函数模型22(1)()(2)(3)56s s s s G s s s s s ++==++++ num=[1,1,0]den=[1,5,6]Gs1=tf(num,den)(2) 建立系统的零极点模型z=[0,-1]p=[-2,-3]k=[1]Gs1=zpk(z,p,k)(3) 传递函数模型转化为零极点模型num=[1,1,0]den=[1,5,6]Gs1=tf(num,den)[z,p,k]=tf2zp(num,den)Gs2=zpk(z,p,k)(4) 零极点模型转化为传递函数模型z=[0,-1]p=[-2,-3]k=[1]Gs1=zpk(z,p,k)[num,den]=zp2tf(z',p',k)Gs2=tf(num,den)3. 用Matlab 进行传递函数部分分式展开5434321139+52s+26()1035+50s+241 2.530.5 1s+4s+3s+2s+1num s s s G s den s s s ++==++-=++++num=[1 11 39 52 26]den=[1 10 35 50 24][r,p,k]=residue(num,den)4. 连续系统稳定性分析已知传递函数,试求该系统的闭环极点并判断系统的稳定性。

MATLAB实验报告(1-4)

MATLAB实验报告(1-4)

信号与系统MATLAB第一次实验报告一、实验目的1.熟悉MATLAB软件并会简单的使用运算和简单二维图的绘制。

2.学会运用MATLAB表示常用连续时间信号的方法3.观察并熟悉一些信号的波形和特性。

4.学会运用MATLAB进行连续信号时移、反折和尺度变换。

5.学会运用MATLAB进行连续时间微分、积分运算。

6.学会运用MATLAB进行连续信号相加、相乘运算。

7.学会运用MATLAB进行连续信号的奇偶分解。

二、实验任务将实验书中的例题和解析看懂,并在MATLAB软件中练习例题,最终将作业完成。

三、实验内容1.MATLAB软件基本运算入门。

1). MATLAB软件的数值计算:算数运算向量运算:1.向量元素要用”[ ]”括起来,元素之间可用空格、逗号分隔生成行向量,用分号分隔生成列向量。

2.x=x0:step:xn.其中x0位初始值,step表示步长或者增量,xn 为结束值。

矩阵运算:1.矩阵”[ ]”括起来;矩阵每一行的各个元素必须用”,”或者空格分开;矩阵的不同行之间必须用分号”;”或者ENTER分开。

2.矩阵的加法或者减法运算是将矩阵的对应元素分别进行加法或者减法的运算。

3.常用的点运算包括”.*”、”./”、”.\”、”.^”等等。

举例:计算一个函数并绘制出在对应区间上对应的值。

2).MATLAB软件的符号运算:定义符号变量的语句格式为”syms 变量名”2.MATLAB软件简单二维图形绘制1).函数y=f(x)关于变量x的曲线绘制用语:>>plot(x,y)2).输出多个图像表顺序:例如m和n表示在一个窗口中显示m行n列个图像,p表示第p个区域,表达为subplot(mnp)或者subplot(m,n,p)3).表示输出表格横轴纵轴表达范围:axis([xmax,xmin,ymax,ymin])4).标上横轴纵轴的字母:xlabel(‘x’),ylabel(‘y’)5).命名图像就在subplot写在同一行或者在下一个subplot前:title(‘……’)6).输出:grid on举例1:举例2:3.matlab程序流程控制1).for循环:for循环变量=初值:增量:终值循环体End2).while循环结构:while 逻辑表达式循环体End3).If分支:(单分支表达式)if 逻辑表达式程序模块End(多分支结构的语法格式)if 逻辑表达式1程序模块1Else if 逻辑表达式2程序模块2…else 程序模块nEnd4).switch分支结构Switch 表达式Case 常量1程序模块1Case 常量2程序模块2……Otherwise 程序模块nEnd4.典型信号的MATLAB表示1).实指数信号:y=k*exp(a*t)举例:2).正弦信号:y=k*sin(w*t+phi)3).复指数信号:举例:4).抽样信号5).矩形脉冲信号:y=square(t,DUTY) (width默认为1)6).三角波脉冲信号:y=tripuls(t,width,skew)(skew的取值在-1~+1之间,若skew取值为0则对称)周期三角波信号或锯齿波:Y=sawtooth(t,width)5.单位阶跃信号的MATLAB表示6.信号的时移、反折和尺度变换:Xl=fliplr(x)实现信号的反折7.连续时间信号的微分和积分运算1).连续时间信号的微分运算:语句格式:d iff(function,’variable’,n)Function:需要进行求导运算的函数,variable:求导运算的独立变量,n:求导阶数2).连续时间信号的积分运算:语句格式:int(function,’variable’,a,b)Function:被积函数variable:积分变量a:积分下限b:积分上限(a&b默认是不定积分)8.信号的相加与相乘运算9.信号的奇偶分解四、小结这一次实验让我能够教熟悉的使用这个软件,并且能够输入简单的语句并输出相应的结果和波形图,也在一定程度上巩固了c语言的一些语法。

matlab实验报告

matlab实验报告

2015秋2013级《MATLAB程序设计》实验报告实验一班级:软件131姓名:陈万全学号:132852一、实验目的1、了解MATLAB程序设计的开发环境,熟悉命令窗口、工作区窗口、历史命令等窗口的使用。

2、掌握MATLAB常用命令的使用。

3、掌握MATLAB帮助系统的使用。

4、熟悉利用MATLAB进行简单数学计算以及绘图的操作方法。

二、实验内容1、启动MATLAB软件,熟悉MATLAB的基本工作桌面,了解各个窗口的功能与使用。

图1 MATLAB工作桌面2、MATLAB的常用命令与系统帮助:(1)系统帮助help:用来查询已知命令的用法。

例如已知inv是用来计算逆矩阵,键入help inv即可得知有关inv命令的用法。

lookfor:用来寻找未知的命令。

例如要寻找计算反矩阵的命令,可键入lookfor inverse,MATLAB即会列出所有和关键字inverse相关的指令。

找到所需的命令後,即可用help进一步找出其用法。

(2)数据显示格式:常用命令:说明format short 显示小数点后4位(缺省值)format long 显示15位format bank 显示小数点后2位format + 显示+,-,0format short e 5位科学记数法format long e 15位科学记数法format rat 最接近的有理数显示(3)命令行编辑:键盘上的各种箭头和控制键提供了命令的重调、编辑功能。

具体用法如下:↑----重调前一行(可重复使用调用更早的)↓----重调后一行→----前移一字符←----后移一字符home----前移到行首end----移动到行末esc----清除一行del----清除当前字符backspace----清除前一字符(4)MATLAB工作区常用命令:who--------显示当前工作区中所有用户变量名whos--------显示当前工作区中所有用户变量名及大小、字节数和类型disp(x) -----显示变量X的内容clear -----清除工作区中用户定义的所有变量save文件名-----保存工作区中用户定义的所有变量到指定文件中load文件名-----载入指定文件中的数据三、源程序和实验结果1、在命令窗口执行命令完成以下运算,观察workspace 的变化,记录运算结果。

Matlab课程论文(实验报告)

Matlab课程论文(实验报告)

1. 利用符号极限判定函数的连续性。

微积分是数学分析中的一个重要内容,是高等数学建立的基础和整个微分方程体系的基础内容。

Matlab 能够通过符号函数的计算实现微积分运算,如极限、微分、积分、级数等。

极限是当变量无限接近特定值时函数的值,例如,一元函数f(x)的导数f ’(x)的定义为下面的极限:f ’(x)=hx f h x f h )()(0lim -+→ Matlab 符号工具箱利用函数limit 计算符号的极限,其调用格式如下: ● l imit(expr, x , a):求x 趋近于a 的极限,但是当左、右极限不想同时,极限不存在。

● l imit(expr , a): 用 findsym(expr)作为独立变量。

● l imit(expr): 对x 求右趋于a=0的极限。

● l imit(expr, x , a , ‘left ’): 对x 求左趋于a 的极限。

● l imit(expr, x , a , ‘right ’): 对x 求左趋于a 的极限。

函数limit 要求第一个输入变量为符号函数,limit 不支持符号函数的句柄,但是对符号函数句柄f , 可以将f(x)作为输入变量。

例如:讨论函数f(x)= {0x x,0x ,2x 1)(cosx =≠= 的连续性。

求解过程:当x<0, x>0时,f(x)为初等函数,其连续性是显然的,只要考虑在x=0处的连续性。

根据需要,首先创建符号函数的M 文件,其源代码为:保存M 文件,名为ex0.m 。

调用limit 函数判定函数的连续性,代码为由结果可以看出,0lim →x f(x)=+→0lim x f(x)=-→0lim x f(x)=- 1/2 =0=f(0), 所以,在x=0时函数是不连续的。

2.在实际应用中,常常提出这样一种需求:把同一自变量的两个不用量纲、不同数量级的函数量的变化绘制在同一张图上。

例如希望在同一张图上表现出温度、湿度随时间的变化;人口数量、GDP 的变化曲线等。

自动控制原理MATLAB仿真实验(于海春)

自动控制原理MATLAB仿真实验(于海春)实验一典型环节的MATLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。

2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。

3.定性了解各参数变化对典型环节动态特性的影响。

二、SIMULINK 的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。

利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。

1.运行MATLAB软件,在命令窗口栏“>>”提示符下键入imulink命令,按Enter键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。

2.选择File菜单下New下的Model命令,新建一个imulink仿真环境常规模板。

图1-1SIMULINK仿真界面图1-2系统方框图3.在imulink仿真环境下,创建所需要的系统。

以图1-2所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。

点击imulink下的“Continuou”,再将右边窗口中“TranferFen”的图标用左键拖至新建的“untitled”窗口。

2)改变模块参数。

在imulink仿真环境“untitled”窗口中双击该图标,即可改变传递函数。

其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK,即完成该模块的设置。

3)建立其它传递函数模块。

按照上述方法,在不同的imulink的模块库中,建立系统所需的传递函数模块。

例:比例环节用“Math”右边窗口“Gain”的图标。

4)选取阶跃信号输入函数。

用鼠标点击imulink下的“Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。

5)选择输出方式。

现代控制理论实验报告—中国石油大学

现代控制理论姓名:滕翔学号:10051321班级:自动化10-3班一、实验内容:已知系统传递函数1. 用Simulink 对该系统进行实现●能控性实现●串联实现●能观性实现(选做)●并联实现(选做)2. 以上述系统的串联实现为基础,实验研究:●系统在初始条件作用下的状态响应和输出响应●系统在阶跃输入信号作用下的状态响应和输出响应●分析系统在状态空间坐标原点的稳定性3. 以上述系统的串联实现为基础,设计状态反馈控制器要求:系统输出的最大超调量,调节时间ts=1秒仿真分析系统的实际工作效果,由系统输出的实际阶跃响应曲线计算最大超调量、调节时间、稳态误差等系统的性能参数分析该系统在输出比例控制下是否会存在稳态误差?状态反馈控制下是否会存在稳态误差?分析出现这种差异的原因,讨论消除状态反馈稳态误差的方法。

4. 以上述系统的串联实现为基础,设计系统的全维状态观测器,观测器极点全为-4,仿真分析在原系统和观测器系统初始条件相同和不同时,观测状态与原状态变量的差值随时间变化的情况,例如改变观测器极点配置到-9,结果有何不同?5. 结合以上3、4 的结果,应用观测状态实现状态反馈控制对比分析实际状态反馈与观测状态反馈系统控制效果的异同。

6. 选做降维观测器设计及状态反馈实验平台采用MATLAB 及Simulink 工具,注意:实验过程中要善于应用MATLAB 控制系统工具箱的工具。

二、实验过程,结果及分析:1.用Simulink 对该系统进行实现能控性实现(1)(2)很容易就可以得到能控Ⅰ型实现,状态空间表达式如下:(3)由上述表达式可得结构模拟图如下:(4)根据结构模拟图在simulink中仿真子系统如下图:● 串联实现(1)(2) 由上式很容易得到结构模拟图如下:(3) 根据结构模拟图在simulink 中仿真子系统如下图:● 能观性实现(选做)(1)(2) 可以写出能观Ⅱ型实现,状态空间表达式如下:(3) 结构模拟图如下:(4) 根据结构模拟图在simulink 中仿真子系统如下图:并联实现(选做)(1)(2) 由上式可写出约当标准型实现,状态空间表达式如下:(3)由状态空间表达式可以得到结构模拟图如下:(4)根据结构模拟图在simulink中仿真子系统如下图:综上,将所有子系统一起进行仿真,仿真模型如下图:仿真结果如下图:分析:上图曲线由上及下分别是能控实现,串联实现,能观实现,并联实现以及各种实现混合,可见各种实现仿真曲线一致,证明同一系统各种实现效果唯一,只是形式方式不一样而已,在表观性质上有区别但本质是相同的。

利用matlab 实现极点配置、设计状态观测器现代控制)

程序:
>> A=[0 1 0;0 0 1;-4 -3 -2];
B=[1;3;-6];
C=[1 0 0];
D=0;
p=[-1 -2 -3];
k=acker(A,B,p)
结果:k =1.4809 0.7481 -0.0458
验证:
>> A=[0 1 0;0 0 1;-4 -3 -2];
B=[1;3;6];
MATLAB 提供的函数acker( )是用Ackermann 公式求解状态反馈阵K。该函数的调用格
式为
K=acker(A,B,P)
其中A 和B 分别为系统矩阵和输入矩阵。P 是期望极点构成的向量。
MATLAB提供的函数place( )也可求出状态反馈阵K。该函数的调用格式为
K=place(A,B,P)
C=[1 0 0];
D=0;
k=[0.5053 0.7052 0.2299];
A1=A-B*k;
sys=ss(A1,B,C,D);
G1=zpk(sys)
结果:Zero/pole/gain:
(s^2 + 5s + 15)
-------------------------
(s+1) (s+1.999) (s+3.001)
函数place( )还适用于多变量系统极点配置,但不适用含有多重期望极点的问题。函数acker( )不适用于多变量系统极点配置问题,但适用于含有多重期望极点问题。
三、仪器设备
PC计算机,MATLAB软件
四、内容步骤、数据处理
题5-1 某系统状态方程如下
理想闭环系统的极点为 ,试
(1)采用直接计算法进行闭环系统极点配置;

MATLAB实验报告

实验二MATLAB语言基础一、实验目的基本掌握MA TLAB向量矩阵数组的生成及基本运算(区分数组运算和矩阵预算)、常用的数学函数。

了解字符串的操作。

二、实验内容(1)向量的生成和运算。

(2)矩阵的创建、引用和运算。

(3)多维数组的创建和运算。

(4)字符创的操作。

三、实验步骤1.向量的生成和运算1)向量的生成<1>、直接输入法<2> 冒号表达式法<3> 函数法:Linspace()是线性等分函数,logspace()是对数等分函数。

2)向量的运算1>维数相同的行、列向量之间可以相加减,标量可以与向量直接相乘除。

2>向量的点积与叉积运算E1和E2虽然表达式相同,但E1是标量,E2是矩阵。

2.矩阵的创建、引用和运算1)矩阵的创建和引用矩阵是由m*n元素构成的矩形结构,行向量和列向量是矩阵的特殊形式。

1>直接输入法:2>抽取法:包括单下标抽取和全下表抽取两种方式,且两种方式抽取的元素都必须以小括号括起来。

3>函数法:利用ones(m;n)创建全1矩阵,zeros()创建全0矩阵,eyes()创建单位矩阵等等。

4>拼接法:纵向拼接横向拼接5>利用拼接函数cat()repmat()和变形函数reshape()>> A1=[1 2 3;9 8 7 ;4 5 6];A2=A1.';>> cat(1,A1,A2) 沿行向拼接ans =1 2 39 8 74 5 61 9 42 8 53 7 6>> cat(2,A1,A2) 沿列向拼接ans =1 2 3 1 9 49 8 7 2 8 54 5 6 3 7 6>> repmat(A1,2,2)ans =1 2 3 1 2 39 8 7 9 8 74 5 6 4 5 61 2 3 1 2 39 8 7 9 8 74 5 6 4 5 6> A=linspace(2,18,9)A =2 4 6 8 10 12 14 16 18 >> reshape(A,3,3)ans =2 8 144 10 166 12 182)矩阵的运算练习(1)用矩阵除法求下列方程组的解x=[x1;x2;x3]>> A=[6 3 4;-2 5 7;8 -1 -3];B=[3;-4;-7];X=A\BX =1.0200-14.00009.7200(2)求矩阵的秩A=[6 3 4;-2 5 7;8 -1 -3];>> rank(A)ans =3[X,lamda]=eig(A)X =0.8013 -0.1094 -0.16060.3638 -0.6564 0.86690.4749 0.7464 -0.4719lamda =9.7326 0 00 -3.2928 00 0 1.5602(3)矩阵的开方>> B=sqrtm(A)B =2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 +2.3845i (4)矩阵的指数与对数:> C=expm(A)C =1.0e+004 *1.0653 0.5415 0.63230.4830 0.2465 0.28760.6316 0.3206 0.3745>> logm(C)ans =6.0000 3.0000 4.0000-2.0000 5.0000 7.00008.0000 -1.0000 -3.0000(6)矩阵的转置D=A'D =6 -2 83 5 -14 7 -3(7)矩阵的提取与翻转:通过各种特定函数如triu(A)、tril(A),diag(A)、flipud (A)、fliplr(A)等等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(1)
现代控制理论第一次Matlab实验报告
一、实验目的:
1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相
互转换的方法;
2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。
3、通过编程、上机调试,掌握系统模型的联结方法。

二、实验过程

实验题目1:
(1)在运行以上例程序的基础上,应用MATLAB求下面传递函数阵的状态空间实现

2
32

252()234sssGssss








提示: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 0
0 1 0

B =
1
0
0

C =
0 1 2
1 5 3

D =
0
(2)

0
实验题目2:
(1)一个双输入双输出系统

11
22
33

412311022711353xxxxuxx












1
1
2
2
3

120
011

x
y
xyx











求出此模型的能控标准型和能观标准型。
提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型
实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标
准型。
(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.0000
0 7.0000 -20.0000 -23.0000

den1 =
1.0000 -7.0000 15.0000 -9.0000

num2 =
0 15.0000 -86.0000 135.0000
0 10.0000 -60.0000 98.0000

den2 =
(3)

1.0000 -7.0000 15.0000 -9.0000
由此,可写出系统的传递函数为

W(s)=9823135366020861910715791571223sssss
由P144页公式3.127可得各系数和系数矩阵如下:






1071576020
8619

9823
13536
7
15
9

2
1
0
2
1
0




a
a

a

由课本上P144页公式3.128、3.129、3.130 可以得到传递函数阵的能控标准型各系数阵为:








7015090
0701509
100000
010000
001000
000100

C
A











10
01
00

00

00
00
C
B



10760209823
157861913536

C
C

由课本上P145页公式3.131、3.132、3.133 可以得到传递函数阵的能观标准型各系数阵为:
(4)










7010000701001500010
0150001
900000
090000

0
A










1071576020
8619
9823
13536

0
B




100000

010000

0
C

相关文档
最新文档