实验二 用MATLAB分析组合系统模型
- 格式:doc
- 大小:828.00 KB
- 文档页数:5
现代控制理论第一次上机实验报告 实验二 利用MATLAB 求取线性系统的状态空间模型的解实验目的:1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应;2、通过编程、上机调试,掌握系统运动的分析方法。
实验原理:一、系统时域响应的求解方法给定系统的状态空间模型:()()()()()()x t Ax t Bu t y t Cx t Du t =+=+ (2.1) 设系统的初始时刻00t =,初始状态为(0)x ,则系统状态方程的解为0()0()(0)()(0)()t At AtA t At A t x t e x e e Bu d e x e Bu d ττττττ--=+=+⎰⎰ (2.2)输出为()0()(0)()()tAt A t y t Ce x C e Bu d Du t τττ-=++⎰ (2.3) 包括两部分,第一部分是由系统自由运动引起的,是初始状态对系统运动的影响;第二部分是由控制输入引起的,反映了输入对系统状态的影响。
输出()y t 由三部分组成。
第一部分是当外部输入等于零时,由初始状态0()x t 引起的,故为系统的零输入响应;第二部分是当初始状态0()x t 为零时,由外部输入引起的,故为系统的外部输入响应;第三部分是系统输入的直接传输部分。
实验步骤1、构建系统的状态空间模型,采用MA TLAB 的m-文件编程;2、求取系统的状态和输出响应;3、在MA TLAB 界面下调试程序,并检查是否运行正确。
实验要求1、在运行以上程序的基础上,应用MA TLAB 验证一个振动现象可以由以下系统产生:01()10x t x ⎡⎤=⎢⎥-⎣⎦证明该系统的解是cos sin ()(0)sin cos t t x t x t t ⎡⎤=⎢⎥-⎣⎦假设初始条件0(0)1x ⎡⎤=⎢⎥⎣⎦,用Matlab 观察该系统解的形状。
m-程序如下:A=[0 1;-1 0];B=[0;0]; D=B;C=[1 0;0 1];sys=ss(A,B,C,D);x0=[0;1];t=[0:0.01:20];[y,T,x]=lsim(sys,u,t,x0)subplot(2,1,1),plot(T,x(:,1))xlabel('Time(sec)'),ylabel('X_1')subplot(2,1,2),plot(T,x(:,2))xlabel('Time(sec)'),ylabel('X_2')仿真结果如下:仿真分析:由仿真图可知,X1和X2周期相同约为6.2,相位差90度,故X1=sint;X2=cost,得证。
实验二: 微分方程模型Matlab 求解与分析一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进行解的定性分析; [2] 熟悉MATLAB 软件关于微分方程求解的各种命令;[3] 通过范例学习建立微分方程方面的数学模型以及求解全过程; [4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程(组)的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
(1) 微分方程 例1 求解一阶微分方程 21y dxdy+= (1) 求通解 输入:dsolve('Dy=1+y^2')输出:ans =tan(t+C1)(2)求特解 输入:dsolve('Dy=1+y^2','y(0)=1','x')指定初值为1,自变量为x 输出:ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x'''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x')ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简 输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) (2)微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
实验三 用MATLAB 进行系统分析1、求系统的零极点 >> b=[2 3];>> a=[1 0.4 1];>> [b,a]=eqtflength(b,a); >> [z,p,k]=tf2zp(b,a) z =0 -1.5000 p =-0.2000 + 0.9798i -0.2000 - 0.9798i k =2写成零极点形式: ))9798.02.0())(9798.02.0(()5.1(2)(j z j z zz z H ++-++=2、系统零极点图的绘制 >> b=[2 3];>> a=[1 0.4 1];>> [b,a]=eqtflength(b,a); >> [z,p,k]=tf2zp(b,a) z =0 -1.5000 p =-0.2000 + 0.9798i -0.2000 - 0.9798i k =2>> zplane(z,p);Real PartI m a g i n a r y P a r t3、有理传输函数的部分分式展开residuez 例1>> b=[0 -3]; >> a=[2 -5 2];>> [r,p,k]=residuez(b,a) r =-1 1 p =2.0000 0.5000 k =[]部分分式展开为:115.011211)(---+--=zzz H例2>> b=[18];>> a=[18 3 -4 -1];>> [r,p,k]=residuez(b,a) r =0.3600 0.2400 0.4000 p =0.5000 -0.3333 -0.3333 k =[]部分分式展开为:2111)3333.01(4.03333.0124.05.0136.0)(---++++-=zzzz H4、数字滤波器的单位脉冲响应impz >> b=[0.2 0.1 0.3 0.1 0.2]; >> a=[1 -1.1 1.5 -0.7 0.3]; >> impz(b,a,50)51015202530354045n (samples)A m p l i t u d eImpulse Response5、求解差分方程 >> N=41;>> b=[0.8 -0.44 0.36 0.22]; >> a=[1 0.7 -0.45 -0.6]; >> x=[1 zeros(1,N-1)]; >> k=0:1:N-1;>> y=filter(b,a,x); >> stem(k,y) >> xlabel('n'); >> ylabel('幅度');n幅度练习题:1、用MATLAB 将函数展开成零点极点乘积的形式。
实验二.二、三阶系统动态分析一.实验目的:1.学习二、三阶系统的电模拟方法及参数测试方法;2.观察二、三阶系统的阶跃响应曲线,了解参数变化对动态特性的影响; 3.学习虚拟仪器(超抵频示波器)的使用方法; 4.使用MATLAB 仿真软件进行时域法分析; 5.了解虚拟实验的使用方法。
二.实验设备及仪器1.模拟实验箱; 2.低频信号发生器;3.虚拟仪器(低频示波器); 4.计算机;5.MATLABL 仿真软件。
三.实验原理及内容实验原理:1、二阶系统的数学模型系统开环传递函数为系统闭环传递函数为2、 二阶系统暂态性能(a) 延迟时间t d : 系统响应从 0 上升到稳态值的 50% 所需的时间。
)2s (s n 2nςω+ω为阻尼比(,为无阻尼自然振荡频率其中:ςωω+ςω+ω==n 2nn 22ns 2s )s (G )s (R )s (C(b) 上升时间t r : 对于欠阻尼系统是指 , 系统响应从 0 上升到稳态值所需的时间 ; 对于过阻尼系统则指 , 响应从稳态值的 10% 上升到 90% 所需的时间。
(c) 峰值时间t p : 系统响应到达第一个峰值所需的时间。
(d) 最大超调量σp ( 简称超调量 ) : 系统在暂态过程中输出响应超过稳态值的最大偏离量。
通常以单位阶跃响应稳态值的百分数来表示 , 即%100e e esin 1e)t sin(1e1)y(t )y()y()y(t σ22pn pn pn 11t 2t p d 2t p p p ⨯===-=+--=-=∞∞-=-------ζπζζπζζωζωζωϕζϕωζ超调量)t sin(1e 1)t (y d 2tn ϕωζζω+--=- 2n d p d 1ωπωπt 0)t sin()t (y ζω-==∴= 峰值时间求导可得对dr t t ωπt 1y(t)rϕ-=== 可令2n21n πϕωξ-=-t ≈n2d n d 2.06.01t 7.01ως+ς+ως+≈或n2d n d2.06.01t 7.01t ως+ς+≈ως+≈或(e) 调节时间t s : 系统响应到达并不再越出稳态值的容许误差带±Δ所需的最短时间 , 即通常取Δ为稳态值的 5% 或 2% 。
本科实验报告课程名称:自动控制原理实验项目:控制系统的稳定性和稳态误差实验地点:多学科楼机房专业班级:学号:学生姓名:指导教师:2012 年5 月15 日一、实验目的和要求:1.学会利用MATLAB 对控制系统的稳定性进行分析; 2.学会利用MATLAB 计算系统的稳态误差。
二、实验内容和原理:1.利用MATLAB 描述系统数学模型如果系统的的数学模型可用如下的传递函数表示nn n m m m a s a s b s b s b s U s Y s G ++++++==-- 11110)()()( 则在MATLAB 下,传递函数可以方便的由其分子和分母多项式系数所构成的两个向量惟一确定出来。
即num=[b 0,b 1 ,…, b m ]; den=[1,a 1,a 2 ,…,a n ]例2-1 若系统的传递函数为5234)(23+++=s s s s G 试利用MA TLAB 表示。
当传递函数的分子或分母由若干个多项式乘积表示时,它可由MA TLAB 提供的多项式乘法运算函数conv( )来处理,以获得分子和分母多项式向量,此函数的调用格式为 p=conv(p1,p2)其中,p1和p2分别为由两个多项式系数构成的向量,而p 为p1和p2多项式的乘积多项式系数向量。
conv( )函数的调用是允许多级嵌套的。
例2-2 若系统的传递函数为)523)(1()66(4)(232++++++=s s s s s s s s G试利用MA TLAB 求出其用分子和分母多项式表示的传递函数。
2.利用MATLAB 分析系统的稳定性在分析控制系统时,首先遇到的问题就是系统的稳定性。
判断一个线性系统稳定性的一种最有效的方法是直接求出系统所有的极点,然后根据极点的分布情况来确定系统的稳定性。
对线性系统来说,如果一个连续系统的所有极点都位于左半s 平面,则该系统是稳定的。
MATLAB 中根据特征多项式求特征根的函数为roots( ),其调用格式为r=roots(p) 其中,p 为特征多项式的系数向量;r 为特征多项式的根。
利用Matlab进行复杂系统建模与仿真的技巧与方法随着科技的发展和应用领域的扩展,越来越多的复杂系统需要进行建模与仿真。
Matlab作为一种功能强大的科学计算软件,被广泛应用于各个领域。
本文将重点介绍利用Matlab进行复杂系统建模与仿真的技巧与方法,帮助读者更好地掌握这一工具。
一、系统建模的基本原理与架构在开始讨论具体的技巧与方法之前,我们先来了解一下系统建模的基本原理与架构。
系统建模是指将一个复杂的系统抽象为数学模型,以便进行仿真和分析。
在进行系统建模时,需要明确系统的输入、输出和内部结构,以及系统中不同组件之间的相互关系。
基于这些信息,可以选择合适的数学工具和方法进行建模。
在Matlab中进行系统建模时,一般采用基于方程的方法。
即根据系统的物理特性和数学模型,列出系统的状态方程、输入方程和输出方程。
状态方程描述系统的状态随时间的变化规律,输入方程描述系统的输入与时间的关系,输出方程描述系统的输出与时间的关系。
通过求解这些方程,可以得到系统的动态特性及其响应。
系统建模的架构可以分为层次化和模块化两种方式。
层次化架构将系统分为多个层次,每个层次由具有一定功能的子系统组成。
模块化架构将系统分为多个模块,每个模块由不同的组件或子系统组成。
选择哪种架构取决于系统的复杂性和功能需求。
二、系统建模的准备工作在进行系统建模前,需要进行一些准备工作。
首先,需要对系统进行全面的了解,明确系统的边界、输入和输出,以及系统内部的各个组件之间的关系。
了解这些信息有助于确定系统建模的范围和目标,并帮助选择合适的模型和方法。
其次,需要收集系统相关的数据和参数。
这些数据和参数可以来自实验、文献、专家意见等多个渠道。
对于一些无法直接测量的参数,可以通过拟合或估计的方式得到。
收集完数据和参数后,需要进行数据的预处理和清洗,以消除异常数据和噪声对模型建立的影响。
最后,需要选择合适的数学工具和方法进行系统建模。
在Matlab中,可以使用多种工具和函数库,如Simulink、Stateflow等。
利用Matlab进行系统辨识与模型建立的基础知识一、引言在现代科学和工程领域中,系统辨识和模型建立是一项重要且广泛应用的技术。
通过对实际系统的数据进行分析和处理,我们可以获取系统的动力学特性,并且建立相应的数学模型进行预测和控制。
本文将介绍利用Matlab进行系统辨识和模型建立的基础知识,帮助读者初步了解这一领域的方法和应用。
二、系统辨识的概念系统辨识是指通过对实际系统的输入和输出数据进行分析,推断系统的结构和参数。
它可以帮助我们理解和模拟各种动态系统,包括机械系统、电气系统、生物系统等。
有了准确的模型,我们可以更好地预测系统的行为,并进行相应的控制。
三、Matlab在系统辨识中的应用Matlab是一种功能强大的数学软件,提供了丰富的工具箱和函数,方便进行系统辨识和模型建立。
首先,我们需要导入实验数据到Matlab环境中,可以使用函数"importdata"或者"load"。
然后,我们可以使用不同的方法对数据进行分析和处理,例如最小二乘法、极大似然法、频域分析等。
Matlab提供了相应的函数和工具箱,例如"lsqcurvefit"、"arx"等,可以方便地应用这些方法。
最后,我们可以使用Matlab进行系统模型的评估和验证,通过与实际数据的对比,来检验模型的准确性和可靠性。
四、系统辨识的常见方法在系统辨识中,常用的方法包括参数辨识、非参数辨识和结构辨识。
参数辨识方法通过对系统参数的估计,来推断系统的结构和动力学特性。
最小二乘法是一种常见的参数辨识方法,通过最小化实际输出和模型输出之间的误差,来确定最优模型参数。
非参数辨识方法不对系统进行特定的假设,而是通过分析输入和输出之间的关系,来推断系统的频率响应和传递函数。
广义谱估计是一种常见的非参数辨识方法,可以用来估计系统的功率谱密度和相关函数。
结构辨识方法则通过对系统结构和特性的推断,来建立模型。
实验二 MATLAB 系统模型建立和动态特性分析实验一、实验目的1.掌握如何使用MALAB 进行系统模型的建立;2.学习利用MALAB 命令得阶跃响应曲线,分析系统动态特性;3.利用MALAB 求阶跃响应的性能指标。
二、实验仪器计算机三、实验内容2.1 控制系统的模型控制系统的表示可用三种模型:传递函数、零极点增益、状态空间。
每一种模型又有连续与离散之分。
为分析系统方便有时需要在三种模型间转换。
MA TLAB 提供了各种命令,使我们可以很方便的完成这些工作,下面以连续系统为例简要说明有关命令。
2.1.1 模型与表示式1、传递函数模型11101110...()...m m m m n n n n b s b s b s b G s a s a s a s a ----++++=++++ 在MA TLAB 中直接用矢量组表示传递函数的分子、分母多项式系数,即:num = [b m b m-1…b 0]; 表示传递函数的分子多项式系数den = [a n a n-1…a 0]; 表示传递函数的分母多项式系数sys = tf (num,den) tf 命令将sys 变量表示成传递函数模型。
2、零极点增益模型 1212()()...()()()()...()m n s z s z s z G s k s p s p s p ---=--- 在MA TLAB 中用z 、p 、k 矢量组分别表示系统的零点、极点和增益,即:z = [ z 1 z 2…… z m ];p = [ p 1 p 2…… p n ];k =[ k ];sys = zpk (z,p,k) zpk 命令将sys 变量表示成零极点增益模型。
3、状态空间模型x = ax + buy = cx + du在MA TLAB 中用(a 、b 、c 、d )矩阵组表示,然后sys = ss (a,b,c,d) ss 命令将sys 变量表示成状态空间模型。
实验二 用MATLAB 分析组合系统模型
1、实验设备
MATLAB 软件
2、实验目的
① 学习组合系统的模型计算方法、了解组合系统状态空间表达式与组合系统传递函数的计算方法;
② 通过编程、上机调试,掌握组合系统状态空间表达式与组合传递函数计算方法。
3、实验原理说明
用MATLAB 分析组合系统模型:
Matlab 提供了可直接计算组合系统传递函数模型和状态空间模型的函数,分别是:并联联结系统函数parallel()、串联联结系统函数series()和反馈联结系统函数feedback()。
采用这些函数可以直接计算SISO 和MIMO 系统的传递函数阵和状态空间模型的3种联结组合系统的传递函数阵或状态空间模型。
4、实验步骤
① 根据所给组合系统的传递函数或A 、B 、C 、D 矩阵,依据组合系统的串联、并联、反馈间的关系式,采用MATLAB 编程。
② 在MATLAB 界面下调试程序,并检查是否运行正确。
习题1:试在Matlab 中计算如下2个系统的并联组合系统。
(1) 将其输入到MATLAB 工作空间;
(2) 获得组合系统的传递函数。
Matlab 源程序:
num_1=[3 1];den_1=[1 3 2];
num_2=[1 4];den_2=[1 2];
sys_1=tf(num_1, den_1);
sys_2=tf(num_2, den_2); 122314(),()322
s s G s G s s s s ++==+++
G1=ss(sys_1)
G2=ss(sys_2)
G3=ss(sys_3)
num_1=[3 1];den_1=[1 3 2];
num_2=[1 4];den_2=[1 2];
sys_1=tf(num_1, den_1);
sys_2=tf(num_2, den_2);
sys_3=parallel(sys_1,sys_2) %并联系统sys_4=series(sys_1,sys_2) %串联系统
sys_5=feedback(sys_1,sys_2) %组合系统
习题2:试在Matlab 中计算如下2个系统的反馈组合系统模型。
前向系统G0(s):
反馈环节F(s):
(1) 将其输入到MATLAB 工作空间;
(2) 求反馈组合系统的状态空间描述。
A_1=[0 1 0; 0 0 1; -4 -8 -5];
B_1=[0;0;1];
C_1=[1 0 0];
D_1=0;
A_2=[0 1; -2 -3];
B_2=[0; 1]; 1111
1010000104851[100]⎧⎡⎤⎡⎤⎪⎢⎥⎢⎥=+⎪⎢⎥⎢⎥⎨⎢⎥⎢⎥---⎣⎦⎣⎦⎪⎪=⎩x x u y x 2222
2010231[10]⎧⎡⎤⎡⎤=+⎪⎢⎥⎢⎥--⎨⎣⎦⎣⎦⎪=⎩x x u y x
C_2=[1 0];
D_2=0;
sys_1=ss(A_1,B_1,C_1,D_1); sys_2=ss(A_2,B_2,C_2,D_2); sys_3=feedback(sys_1,sys_2)。