实验二利用MATLAB求取线性系统的状态空间模型的解
- 格式:docx
- 大小:86.33 KB
- 文档页数:3
现代控制理论第一次上机实验报告 实验二 利用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状态空间表达式的解析一、概述MATLAB是一种非常常用的数学软件,用于分析、设计和模拟动态系统。
在控制系统理论中,状态空间表达式是描述线性系统动态行为的重要方法。
本文旨在介绍如何使用MATLAB对状态空间表达式进行解析和分析。
二、状态空间表达式简介状态空间表达式是一种描述线性时不变系统的数学模型。
通常由状态方程和输出方程组成。
状态方程描述了系统的演化规律,而输出方程则描述了系统状态和输出之间的关系。
三、MATLAB中的状态空间表示在MATLAB中,状态空间表示可以使用ss函数进行表达。
该函数的输入参数包括系统的状态方程系数矩阵A、输入矩阵B、输出矩阵C 和前馈矩阵D。
四、求解状态空间表达式1. 稳态响应分析在MATLAB中,可以使用sys = ss(A,B,C,D)定义一个状态空间模型,然后使用step(sys)绘制系统的阶跃响应曲线。
通过阶跃响应曲线可以分析系统的稳态性能。
2. 传递函数表示使用tf(sys)可以将状态空间表示转换为传递函数表示,这样可以更方便地分析系统的特性。
3. 稳定性分析使用eig(A)可以计算状态方程系数矩阵A的特征值,从而判断系统的稳定性。
如果系统的所有特征值都是负实数,那么系统是稳定的。
4. 频域特性分析使用bode(sys)可以绘制系统的频率响应曲线,这样可以分析系统在不同频率下的特性。
五、应用实例以电机控制系统为例,假设系统的状态空间表达式为:A = [-2 -1; 3 -4]B = [1; 0]C = [0 1]D = [0]可以使用以下代码在MATLAB中求解该系统:sys = ss(A,B,C,D)step(sys)tf_sys = tf(sys)eig(A)bode(sys)六、结语本文介绍了MATLAB中状态空间表达式的解析方法,并以电机控制系统为例进行了说明。
希望本文能够帮助读者更好地理解和应用状态空间表达式在MATLAB中的求解方法。
利用MATLAB对状态空间模型进行分析(一)状态空间模型的引入
状态空间模型是一种概率统计模型,它利用了状态变量和观测变量来描述系统的特性,可以用来模拟复杂的或不可观测的动态过程。
状态空间模型的核心思想是,将动态系统的状态变量和观测变量分别建模,并用一组数学方程表示整个系统。
这样,状态空间模型可以更好地揭示动态系统的特性,从而更好地进行控制和优化。
(二)状态空间模型的形式
状态空间模型由两部分组成:状态转移方程和观测方程。
状态转移方程用于描述系统的状态变量的动态变化,而观测方程则用于表示系统的观测变量的变化趋势。
状态转移方程可以表示为:
x_t = A_tx_{t-1} + B_tu_t + ν_t
其中,x_t表示状态变量的确定值,A_t表示状态转移矩阵,B_t表示输入矩阵,u_t表示输入信号,ν_t表示噪声。
观测方程可以表示为:
y_t = C_tx_t + D_tu_t + ε_t
其中,y_t表示观测变量的确定值,C_t表示观测矩阵,D_t表示输出矩阵,u_t表示输入信号,ε_t表示噪声。
(三)MATLAB绘制状态空间模型
1.为了完成状态空间模型的绘制,首先需要利用MATLAB来定义状态转移方程与观测方程的矩阵参数。
实验报告实验名称利用 MATLAB 求解系统的状态方程系统的能控性、能观测性分析系专业班学号授课老师预定时间2014-5-28 实验时间实验台号14一、目的要求掌握状态转移矩阵的概念。
学会用 MATLAB求解状态转移矩阵。
掌握求解系统状态方程的方法,学会绘制状态响应曲线;掌握线性系统状态方程解的结构。
学会用 MATLAB 求解线性定常系统的状态响应和输出响应,并绘制相应曲线。
掌握能控性和能观测性的概念。
学会用 MATLAB 判断能控性和能观测性。
掌握系统的结构分解。
学会用 MATLAB 进行结构分解。
掌握最小实现的概念。
学会用 MATLAB 求最小实现。
二、原理简述线性定常连续系统的状态转移矩阵为。
函数 step( ) 可直接求取线性连续系统的单位阶跃响应。
函数 impulse( ) 可直接求取线性系统的单位脉冲响应。
函数 lsim( ) 可直接求取线性系统在任意输入信号作用下的响应。
函数 initial( ) 可求解系统的零输入响应。
n 阶线性定常连续或离散系统状态完全能控的充分必要条件是:能控性矩阵的秩为 n。
线性定常连续或离散系统输出能控的充分必要条件是:矩阵的秩为m。
n 阶线性定常连续或离散系统状态完全能观测的充分必要条件是:能观测性矩阵的秩为 n。
三、仪器设备PC 计算机,MATLAB 软件四、容步骤题2.1A=[0 1;-2 -3];B=[3;0];C=[1 1];D=0;G=ss(A,B,C,D);t=0.5;p=expm(A*t)u1=0;x10=[1;-1];[y1o,t,x1o]=initial(G,x10,t)t2=0:0.5:10;x20=[0;0];u2=ones(size(t2));[y2,t2,x2]=lsim(G,u2,t2);plot(t2,x2,':',t2,y2,'-')t3=0:0.5:10;u3=1+exp(-t3).*cos(3*t3);x30=[0;0];题2.1题2.2G = 0.9709 0.0448 -1.1212 0.7915H = 0.00120.0448。
Matlab解状态方程详解
一、引言
状态方程是描述系统动态行为的重要工具,广泛应用于控制工程、电子工程、机械工程等领域。
在Matlab中,可以使用各种方法来解状态方程,包括直接法、迭代法和优化法等。
本文将详细介绍Matlab解状态方程的几种常用方法,并给出相应的示例代码。
二、直接法
直接法是解状态方程最简单的方法之一。
对于简单的一阶或二阶线性时不变系统,可以通过简单的代数运算得到状态变量的解。
对于更复杂的多阶非线性系统,可能需要使用数值方法进行求解。
在Matlab中,可以使用以下代码实现直接法:
三、迭代法
迭代法是一种通过不断迭代来逼近状态变量解的方法。
常用的迭代法包括欧拉法、龙格-库塔法和雅可比迭代法等。
在Matlab中,可以使用以下代码实现欧拉法:
四、优化法
优化法是一种通过最小化某个代价函数来求解状态方程的方法。
常用的优化法包括梯度下降法、牛顿法和拟牛顿法等。
在Matlab中,可以使用以下代码实现梯度下降法:。
现代控制理论第一次上机实验报告 实验二 利用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 At
A t At A t x t e x e e Bu d e x e Bu d ττττττ--=+=+⎰⎰ (2.2)
输出为
()0()(0)()()t
At 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,得证。
实验心得
通过本次实验,更清楚的了解了书上例2-1解题过程。