Matlab语言及应用12_控制系统仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
系统的闭环离散化状态方程为:
0.9952 x(k 1) 0.0952
0.0952 0.0048 x(k ) u (k ) 0.9048 0.0952
12.4 典型环节的SIMULINK仿真
在MATLAB环境下,可以直接使用sim()函数实现Simulink仿真。
第十二章 控制系统仿真
主要内容
12.1 12.2 12.3 12.4 状态空间法仿真 非线性环节的仿真 离散系统的仿真 典型环节的SIMULINK仿真
控 制 系 统 仿 真
信号流图
状态空间
单输入单输出系统 (SISO) 多输入多输出系统 (MIMO)
主要研究内容
通过系统的数学模型和计算方法,编写程序运算语句,使之能自动求 解各环节变量的动态变化情况,从而得到关于系统输出和所需要的中间各 变量的有关数据、曲线等,以实现对控制系统性能指标的分析与设计。
,试求解 x ( k ) ,并绘制其仿真曲线。
MATLAB仿真程序l12
12.3 离散系统的仿真
•Z变换法
例1232 已知系统如图所示,试求零初始条件下系统的开环和闭环离散 化状态方程,并绘制闭环阶跃响应曲线。
MATLAB仿真程序l1232 系统的开环离散化状态方程为:
1 x( k 1) 0 0.0952 0.0048 x(k ) u (k ) 0.9048 0 . 0952
习题
12 . 1 系统的状态方程和输出方程分别为
1 0 0 0 0 1 x x 0 0 u 800 80 24 1 y 800 0 0 x
若系统初始条件为零,试用状态空间法对系统进行仿真。 12 . 2 单位负反馈系统,其开环传递函数为
•差分方程法
差分方程描述法系统仿真的步骤如下: 根据系统的结构图,在适当位置加设虚拟采样开关和保持器; 将原系统转换成状态空间形式,并按指定的采样周期,依照离散化 方法,将系统离散化,并得到离散化的状态方程,即系统的差分方程
x(k 1 ) Gx(k) Hu(k) y(k) Cx(k) Du(k)
12.4 典型环节的SIMULINK仿真
•离散系统的仿真
例 12.4.4 系统的 Simulink 结构图如图所示,文件名为 t12413.mdl ,试 对离散线性系统进行仿真并求取其频域指标。
1 In1 0.7z+0.08 z2 -1.2z+0.37 1 Out1
解:运行MATLAB仿真程序l1244 ,得到离散系统的仿真曲线
9. 9 G01 e 80 s 120 s 1 ,
SIMULINK系统结构图t1243
12.4 典型环节的SIMULINK仿真
•含非线性环节系统的仿真
例12.4.2 已知含有饱和非线性环节的系统如图所示,初始状态为零,饱 和非线性环节的饱和值c=0.5,试对系统含有饱和非线性环节前后进行仿真, 并绘制其单位阶跃响应曲线。
x n x n 1
计算 x n 1 x n
h ( k 1 2 k 2 2 k 3 k 4 ), y n 1 Cx n 1 6
N
t=tf?
Y 结束
12.1 状态空间法仿真
【调用格式】
[t,y]=ode4(A,B,C,D,x0,h,r,v,t0,tf)
【说明】{A,B,C,D}为系统的系数矩阵,x0为状态向量初值,h为仿真步
长,r为输入信号的幅值,v为反馈系数,t0为仿真的起始时间,tf终止时间, y为输出量。 ode4( )函数 MATLAB中的ode45()函数可实现四阶/五阶龙格-库塔算法。
【调用格式】
[t,y]=ode45('f',tspa,x0)
【说明】 f为定义的常微分方程函数名,tspa为起止时间向量,x0为初
u r s1 u r s1 uc ucs ucs
r 0 且u c 0 u r 0 且u c 0 u r 0 且u c 0 u r 0 且u c 0 u
backlash( )函数实现间隙非线性。
【调用格式】
[uc,uss]=backlash(urs,ur,ucsLeabharlann Baidus1)
习题
12 . 4 离散系统的状态空间方程为:
0 0 2.8 1.4 1 1.4 0 0 0 0 x(k 1) x( k ) u ( k ) 1.8 0.3 1.4 0.6 1 0 0 0.6 0 0 y (k ) 0 0 0 1x(k )
Saturation( )函数
12.2 非线性环节的仿真
Saturation( )函数算法程序框图
12.2 非线性环节的仿真
•死区非线性
死区非线性环节的数学表达式:
u r s1 uc 0 u s 1 r
u r s1 s1 u r s1 u r s1
MATLAB仿真程序l1241 例12.4.2 已知钢铁厂车间加热炉传递函数与温度传感器及其变送器的 传递函数模型分别为:
0.107 G02 10 s 1 2 9286 s 240s 1.5 设定控制所用的PID调节器传递函数为 G c 2 521 s 145s 试对系统的PID控制进行分析、设计与仿真。
k 0,1,2,
输入系统初始化参数,并根据差分方程编写仿真程序。
12.3 离散系统的仿真
diffstate( )函数算法程序框图
12.3 离散系统的仿真
【调用格式】
[t,xx]=diffstate(G,H,x0,u0,N,T)
【说明】{G,H}为差分方程的系统矩阵, x0为初始状态值,u0输入向量,
饱和非线性环节的数学表达式:
uc
s1 uc ur s 1
ur s1 s1 ur s1 ur s1
-s1
o s1 ur
Saturation( )函数实现饱和非线性。
【调用格式】
uc=Saturation(ur,s1)
【说明】 ur为输入向量, s1为非线性环节的饱和值,uc为输出向量。
解:1、绘制系统含有饱和非线性环节前后的Simulink结构图
1 In1 1 s2+s Transfer Fcn 1 Out1
原系统的Simulink结构图(t1246.mdl)
12.4 典型环节的SIMULINK仿真
1 In1 2 Out2 1 s2+s Saturation Transfer Fcn 1 Out1
Ax B(r vy) x
又由
y Cx ( A BvC) x Br Ab x Br x 可得到系统的闭环状态方程:
12.1 状态空间法仿真
ode4( )函数实现上述算法,其程序框图如下:
开始
计算闭环状态空间系数矩阵 Ab=A-BvC
求四阶 Rung-Kutta 法各次斜率 kj
始状态向量。 ode45( )函数
12.1 状态空间法仿真
例12.1.1 已知系统的开环传递函数为:
G( s)
k (2s 1) s 2 (0.25s 1) 2
在零初始条件下,当输入信号的幅值为1时,试绘制单位负反馈系统的仿真曲线。 MATLAB仿真程序l1211 令K=0.1,1,10,绘制单位负反馈系统的仿真曲线。 当K=0.1时,令v=0.1,1,10,绘制反馈系统的仿真曲线。 例12.1.2 已知系统的状态方程为:
12.4 典型环节的SIMULINK仿真
•带延迟环节系统的仿真
例12.4.1 已知系统的Simulink结构图如图所示,其中:延迟环节的延 迟时间为1秒,文件名为exp1.mdl,试绘制系统的仿真曲线。
1 In1 1 s+1 » ¿ ± Ø ¶ Ô Ï ó Ó ³ Ñ Ù » ·½ Ú 1 Out1
DeadZone( )实现死区非线性。
【调用格式】
uc=DeadZone(ur,s1)
【说明】 ur为输入向量,s1为死区非线性环节的死区值 ,uc为输出向量。
DeadZone( )函数
12.2 非线性环节的仿真
DeadZone( )函数算法程序框图
12.2 非线性环节的仿真
•间隙非线性
间隙非线性环节的数学表达式:
已知开环系统的状态方程为
Ax Bu x y Cx
采用四阶龙格-库塔法进行求解和仿真,其求解步骤和方法如下::
Ax Bu,可知 f (t , x) Ax Bu; 1、由 x
k1 f (tn , xn ) 2、根据四阶龙格-库塔法的递推公式: k2 f (tn h , xn h k1 ) 2 2 h h k f ( t , x k2 ) 3 n n 2 2 k4 f (tn h, xn hk3 ) xn 1 xn h (k1 2k2 2k3 k4 ) 6
9 10 14 3 x 4 u 12 x 9 10 24 24 18 12
在零初始条件下阶跃信号的输入幅值为100,试应用状态空间法对系统仿真。 MATLAB仿真程序l1212
12.2 非线性环节的仿真
•饱和非线性
【说明】 ur为输入向量, uc为输出向量, urs,ucs为ur,uc前一时刻的
值 ,uss为下次运算保留的输入值, s1为环节的间隙宽度值。 backlash( )函数
12.2 非线性环节的仿真
backlash( )函数算法程序框图
12.3 离散系统的仿真
离散系统的数学模型一般用差分方程和离散状态方程来描述。
【调用格式】
[t,x,y]=sim(‘model’,timespan,option,ut)
【说明】‘model’为Simulink生成的模型文件名;timespan为仿真时间
设置,可指定终止时间和起止时间;其余参数为可选,option是用于设 置初始条件、步长与容许误差等值,ut为外部输入信号。 系统默认仿真算法为变步长的四阶/五阶龙格-库塔积分算法即ode45 ()函数
实现步骤
根据数学模型、要求 的精度和时间,确定 数值计算方法 按算法要求通过分解、 综合、等效变换等方 法转换成适于在计算 机上运行的公式 上机调试并不断改进, 满足系统各项动态性能 指标,并得到理想的仿 真结果 用合适的开发语 言进行算法编程 和实现
12.1 状态空间法仿真
•四阶龙格-库塔(Runge-Kutta)法
含饱和非线性环节系统的Simulink结构图(t1247.mdl)
2、运行MATLAB仿真程序l1243 ,得到系统含有饱和非线性环节前后的单 位阶跃响应曲线 例12.4.4 系统的结构如下图所示,设输入幅值为10,间隙非线性的宽度为 1,试对包含非线性环节前后的系统进行仿真。
解:绘制 SIMULINK系统结构图t12411
G( s) 10 s( s 2)(s 3)
输入为单位阶跃信号,试应用状态空间法对系统进行仿真。 12 . 3 系统结构图如题图 12.1 所示:
题图 12.1 系统的结构图 系统输入为单位阶跃,非线性环节参数 c=5 ,取步长 h=0.1 ,仿真时间为 2 秒, 用 Simulink 法对系统进行仿真,并分析饱和非线性对系统的影响。
12.1 状态空间法仿真
3、由 t n 1 时刻的状态为
x n1 ,得到
yn1 Cxn1
取 n 0,1,2,, N 不断递推,便可得到所需时刻各点的状态变量x(t n ) 和输 出量 y (t n ) 。
•闭环系统的模型建立
对SISO系统r、u、y、v均为标量,由图可知 u r vy ,得
N为仿真点数,T为采样周期,t采样时间序列, xx为状态向量。 diffstate( )函数 例12.3.1 已知定常离散系统的状态方程为:
1 0 1 x(k 1) x(k ) u (k ) 0.16 1 1
给定初始状态为
1 u (k ) 1, x(0) 1