实验四用MATLAB求解状态空间模型
状态空间模型分析实验报告

den = 1 0 -3 2
z =3.0000
2.0000
p = -2.0001
1.3397
0.999999984416603
k = 5
ssG =
a =
x1 x2 x3
x1 0 1.5 -1
x2 2 0 0
x3 0 1 0
b =
u1
x1 8
x2 0
x3 0
c =
x1 x2 x3
den=conv(conv([1,-1],[1 -1]),[1 2])%传递函数分母多项式
tfG=tf(num,den);%传函的分式形式
zpG=zpk(tfG);%转换成零极点模型
[z,p,k]=zpkdata(zpG,'v')%列出零极点及比例系数
ssG=ss(tfG)%转换成状态空间形式
结果:
代码:
A=[0 1;-3 -4];
B=[0;1];
co=ctrb(A,B);
det(ob)
结果:
det(ob)=-1;所以系统是能控的
代码:
A=[0 1;-3 -4];
B=[0;1];
C=[3 2];
D=[0];
P=[-4 -5]
K=place(A,B,P)
t=0:0.01:5;
U=0.025*ones(size(t));%幅值为0.025输入阶跃信号
按能控性分解后的系统状态空间表达式为:
故此二维子系统是能控的。
能观性分解
代码:
[a2,b2,c2,t,k]=obsvf(A,B,C)%能观性分解
结果:
a2 = -1.0000 1.3416 3.8341
matlab状态空间表达式的解

标题: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对状态空间模型进行分析

利用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进行传递函数和状态空间模型间的转换

求其传递函数矩阵。 解 个传递函数: ⎡Y1 ( s ) U 1 ( s ) Y1 ( s ) U 2 ( s ) ⎤ ⎢Y ( s ) U ( s ) Y ( s ) U ( s )⎥ 1 2 2 ⎣ 2 ⎦ 当考虑输入 u1 时,可设 u 2 为零,反之亦然。执行以下的 m-文件:
A=[0 1;-25 –4]; B=[1 1;0 1]; C=[1 0;0 1]; D=[0 0;0 0]; [num1,den1]=ss2tf(A,B,C,D,1) [num2,den2]=ss2tf(A,B,C,D,2) 得到:
G (s) =
Y2 ( s ) − 25 = 2 U 1 (s) s + 4s + 25 Y2 ( s ) s − 25 = U 2 (s) s 2 + 4s + 25
10 s + 10 s + 6 s 2 + 5s + 10
3
解
执行以下的 m-文件:
num=[0 0 10 10]; den=[1 6 5 10]; [A,B,C,D]=tf2ss(num,den) 得到
《现代控制理论》
实验指导书
俞立
徐建明 编
浙江工业大学信息工程学院
2007 年 4 月
1
实验 1
利用 MATLAB 进行传递函数和状态空间模型间的转换
1.1 实验设备 PC 计算机 1 台(要求 P4-1.8G 以上) ,MATLAB6.X 或 MATLAB7.X 软件 1 套。 1.2 实验目的 1、 学习系统状态空间模型的建立方法、 了解状态空间模型与传递函数相互转换的方法; 2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。 1.3 实验原理说明 设系统的状态空间模型是
基于MATLAB控制系统仿真实验报告

tf 4
y0
0 1
6、求出 G1(s)
2 (s2 2s 1) 与 G2 (s)
1 (2s3
3s2
1)
的单位阶跃响应,并分别
求出状态空间模型。
解:(1) G1(s) 2 (s2 2s 1) 的状态空间模型求解如下:
function shiyan2 b1=[2];
D(z)
0.62(1 0.136z 1)(1 0.183z (1 0.045z 1)(1 0.53z 1)
1 )
分别用仿真算法得到系统在单位阶跃输入作用下的响应,系统在单位速度输
入是的输出响应。
解:(1)首先将 W1(s)转换为 W1(z),采样周期 T=0.2s,程序清单如下: function shiyan42 num=[10];den=[0.005 0.15 1 0]; ts=0.2;[nc,dc]=c2dm(num,den,ts)
INTRO(注意:intro 为一个用 MATLAB 语言编写的幻灯片程序,主要演示
常用的 MATLAB 语句运行结果。)
然后,根据现实出来的幻灯片右面按钮进行操作,可按 START——NEXT—
—NEXT 按钮一步步运行,观察。
3、自编程序并完成上机编辑,调试,运行,存盘:
(1)用 MATLAB 命令完成矩阵的各种运算,例如:
5、利用 ode23 或 ode45 求解线性时不变系统微分方程 y(t) Ay(t) ,并绘制出 y(t)
曲线,式中
A
0.5
1
1 0.5
t t0 t 如下: function xdot=fun21(t,x) A=[-0.5 1;-1 -0.5]; xdot=A*x; function fzsy22 t0=0;tf=4;tol=1e-6; x0=[0;1];trace=1; [t,x]=ode23('fun21',t0,tf,x0,tol,trace); plot(t,x) 得到的实验结果如下图所示:
实验四 用MATLAB求解状态空间模型

实验四 用MATLAB 求解状态空间模型1、实验设备MATLAB 软件2、实验目的① 学习线性定常连续系统的状态空间模型求解、掌握MATLAB 中关于求解该模型的主要函数;② 通过编程、上机调试,进行求解。
3、实验原理说明Matlab 提供了非常丰富的线性定常连续系统的状态空间模型求解(即系统运动轨迹的计算)的功能,主要的函数有:初始状态响应函数initial()、阶跃响应函数step()以及可计算任意输入的系统响应数值计算函数lsim()和符号计算函数sym_lsim()。
数值计算问题可由基本的Matlab 函数完成,符号计算问题则需要用到Matlab 的符号工具箱。
4、实验步骤① 根据所给状态空间模型,依据线性定常连续系统状态方程的解理论,采用MATLAB 编程。
② 在MATLAB 界面下调试程序,并检查是否运行正确。
习题1:试在Matlab 中计算如下系统在[0,5s]的初始状态响应,并求解初始状态响应表达式。
Matlab 程序如下:A=[0 1; -2 -3];B=[]; C=[]; D=[];x0=[1; 2];sys=ss(A,B,C,D);[y,t,x]=initial(sys,x0,0:5);plot(t,x)0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦x x x习题2:试在Matlab 中计算如下系统在[0,10s]内周期为3s 的单位方波输入下的状态响应。
并计算该系统的单位阶跃状态响应表达式。
Matlab 程序如下:A=[0 1; -2 -3];B=[0; 1]; C=[]; D=[];x0=[1; 2];sys=ss(A,B,C,D);[u t]=gensig('square',3,10,0.1)0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦x x x[y,t,x] = lsim(sys,u,t,x0)plot(t,u,t,x);(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。
matlab离散化状态空间模型 -回复

matlab离散化状态空间模型-回复如何使用MATLAB 进行离散化状态空间模型的建模和分析离散化状态空间模型是一类广泛应用于系统建模和分析的数学工具。
它在控制论和动态系统理论中有着重要的作用。
MATLAB 是一个功能强大的数学软件,可以方便地进行离散化状态空间模型的建模和分析。
本文将介绍如何使用MATLAB 进行离散化状态空间模型的建模和分析。
一、离散化状态空间模型的概念和原理离散化状态空间模型是描述离散时间系统动态特性的一种数学模型。
它由状态方程和输出方程组成。
状态方程描述了系统状态的演化规律,输出方程描述了系统输出与状态的关系。
离散时间系统的状态方程和输出方程可以用矩阵形式表示如下:x(k+1) = Ax(k) + Bu(k)y(k) = Cx(k) + Du(k)其中,x(k) 表示系统在时刻k 的状态向量,u(k) 表示系统在时刻k 的输入向量,y(k) 表示系统在时刻k 的输出向量,A、B、C、D 分别为系统的状态矩阵、输入矩阵、输出矩阵和直接传递矩阵。
离散化状态空间模型的建模需要将连续时间系统的状态空间模型进行离散化处理。
离散化的基本原理是将连续时间系统的状态方程和输出方程在一段时间内进行离散化处理,使得系统的状态和输出在该离散时间内近似地描述系统的动态特性。
二、使用MATLAB 进行离散化状态空间模型的建模和分析的步骤1. 定义系统的连续时间状态空间模型首先,需要定义连续时间状态空间模型的状态矩阵A、输入矩阵B、输出矩阵C 和直接传递矩阵D。
这些矩阵的维度和元素值反映了系统的动态特性。
例如,假设我们有一个连续时间状态空间模型:dx(t)/dt = Ax(t) + Bu(t)y(t) = Cx(t) + Du(t)其中,状态向量x(t) 的维度为n,输入向量u(t) 的维度为m,输出向量y(t) 的维度为p。
那么,我们可以用MATLAB 编写如下代码定义连续时间状态空间模型:A = [a11, a12, ..., a1n; a21, a22, ..., a2n; ..., an1, an2, ..., ann];B = [b11, b12, ..., b1m; b21, b22, ..., b2m; ..., bn1, bn2, ..., bnm];C = [c11, c12, ..., c1n; c21, c22, ..., c2n; ..., cp1, cp2, ..., cpn];D = [d11, d12, ..., d1m; d21, d22, ..., d2m; ..., dp1, dp2, ..., dpm];2. 将连续时间状态空间模型离散化在MATLAB 中,可以使用c2d 函数将连续时间状态空间模型离散化为离散时间状态空间模型。
用MATLAB分析状态状态空间模型

a =
x1 x2 x3
x1 -6 -1.375 -0.09375
x2 8 0 0
x3 0 8 0
b =
u1
x1 0.25
x2 0
x3 0
c =
x1 x2 x3
y1 0 0 0.375
d =
u1
y1 0
(3)将给定传递函数转换为对角标准型或约当标准型。再将得到的对角标准型或约当
标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。
(3)A=[0 1 0 0;0 -1 1 0;0 0 -1 1;0 0 0 -3];B=[0 0 0 2]';C=[2 0 0 0];D=0;
sys=ss(A,B,C,D);[V,J]=jordan(A);sys1=ss2ss(sys,inv(V))
x2 0 -1 10
x3 0 0 -1 1
x4 0 0 0 -3
b =
u1
x1 0
x2 0
x3 0
x4 2
c =
x1 x2 x3 x4
y1 2 0 0 0
d =
u1
y1 0
Gtf=tf(Gss)
Transfer function:
4
-------------------------
s^4 + 5 s^3 + 7 s^2 + 3 s
(2)用ss2ss函数进行相似变换将其转换为对角标准型。
>> A=[-6 -1.375 -0.09375;8 0 0;0 8 0];B=[0.25 0 0]';C=[0 0 0.375];D=0;
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四 用MATLAB 求解状态空间模型
1、实验设备
MATLAB 软件
2、实验目的
① 学习线性定常连续系统的状态空间模型求解、掌握MATLAB 中关于求解该模型的主要函数;
② 通过编程、上机调试,进行求解。
3、实验原理说明
Matlab 提供了非常丰富的线性定常连续系统的状态空间模型求解(即系统运动轨迹的计算)的功能,主要的函数有:
初始状态响应函数initial()、阶跃响应函数step()以及可计算任意输入的系统响应数值计算函数lsim()和符号计算函数sym_lsim()。
数值计算问题可由基本的Matlab 函数完成,符号计算问题则需要用到Matlab 的符号工具箱。
4、实验步骤
① 根据所给状态空间模型,依据线性定常连续系统状态方程的解理论,采用MATLAB 编程。
② 在MATLAB 界面下调试程序,并检查是否运行正确。
习题1:试在Matlab 中计算如下系统在[0,5s]的初始状态响应,并求解初始状态响应表达式。
Matlab 程序如下:
A=[0 1; -2 -3];
B=[]; C=[]; D=[];
x0=[1; 2];
sys=ss(A,B,C,D);
[y,t,x]=initial(sys,x0,0:5);
plot(t,x)
0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦
x x x
习题2:试在Matlab 中计算如下系统在[0,10s]内周期为3s 的单位方波输入下的状态响应。
并计算该系统的单位阶跃状态响应表达式。
Matlab 程序如下:
A=[0 1; -2 -3];
B=[0; 1]; C=[]; D=[];
x0=[1; 2];
sys=ss(A,B,C,D);
[u t]=gensig('square',3,10,0.1)
0011232⎡⎤⎡⎤==⎢⎥⎢⎥--⎣⎦⎣⎦
x x x
[y,t,x] = lsim(sys,u,t,x0)
plot(t,u,t,x);
(注:文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注)。