控制系统仿真及MATLAB语言--第四章 连续系统的离散化方法

合集下载

连续系统离散化方法

连续系统离散化方法

其中 y ( kT ) 为到 kT 时刻的阴影总面积。对式(5.15)进行 Z 变换,并整理得到
Y ( z ) T 1 + z −1 = X ( z ) 2 1 − z −1
(5.16)
图 5-5 梯形面积近似积分
D( z ) = D( s )
由式 (5.16) , 也可得双线性变换:
s=
2 1− z −1 T 1+ z −1
3、双线性变换法
双线性变换法又称突斯汀(Tustin)法,是一种基于梯形积分规则的数字积分变换方法。 由 Z 变换定义 z = e ,将 e 改写为如下形式:
Ts Ts
第 2 章 计算机控制系统的信号转换
Ts
21
eTs =
e2 e
− Ts 2
(5.12)
然后将分子和分母同时展成泰勒级数,取前两项,得:
Ts 2 z= Ts 1− 2 1+
由上式计算出 s ,得双线性变换公式。
(5.13)
s=
2 1 − z −1 T 1 + z −1
T [ x[(k − 1)T ] + x( kT )] 2
(5.14)
另外,由图 5-5 所示的梯形面积近似积分可得
y (kT ) = y[(k − 1)T ] +
(5.15)
s=Biblioteka z −1 T(5.11)
另外还可将 z 级数展开 :
z = eTs = 1 + Ts +
T 2s2 + ... 2
20
第 2 章 计算机控制系统的信号转换
取一阶近似 z ≈ 1 + Ts ,也可得到:
s=
z −1 T

控制系统仿真及MATLAB语言--第四章 连续系统的离散化方法

控制系统仿真及MATLAB语言--第四章 连续系统的离散化方法

t2 0.2, y2 y1 1 0.1y1 0.9 0.91 0.819 t10 1.0, y10 y9 1 0.1y9 0.4628
t3 0.3, y3 y2 1 0.1y2 0.8191 0.1 0.819 0.7519
状态方程的四阶龙格-库塔公式如下:
h xk +1 xk (K 1 2K 2 2K 3 K 4 ) 6 K 1 Axk Bu (tk ) K 2 A(xk h K 1 ) Bu (tk h ) 2 2 K A (x h K ) Bu (t h ) k 2 k 3 2 2 K A(x hK ) Bu (t h) k 3 k 4 y k +1 Cxk +1
41常微分方程的数值解法数值求解的基本概念设微分方程为则求解方程中函数xt问题的常微分方程初值问题所谓数值求解就是要在时间区间ab中取若干离散点求出微分方程在这些时刻的近似值这种方法的几何意义就是把ftx在区间tk1内的曲边面积用矩形面积近似代替
第四章 连续系统的离散化方法
4.1
常微分方程的数值解法
h xk 1 xk h f k ( ftk ' f xk ' f k ) 2!
f 'tk f 'xk 等各阶导数不易计算,用下式中 ki的线性组合代替
xk 1 xk h ai ki
i 1
r
线性组合
r为精度阶次,ai为待定系数,由精度确定;ki用下 式表示 i 1
ki f (tk b1h, xk hb2 k j ) , i 2,3
将 f tk b1h,xk hb2k1 在点 tk , xk 展成Taylor级数

连续系统的离散化方法课件

连续系统的离散化方法课件

离散化方法的意义
精确性
离散化方法可以提供对连续系统的精 确近似,特别是在计算机仿真和数字 控制系统中。
可计算性
离散化方法可以将不可计算的分析转 化为可计算的形式,便于进行数值计 算和控制器设计。
离散化方法的应用场景
01
02
03
数字控制
在数字控制系统中,连续 系统的离散化是必要的步 骤,以便在数字计算机上 进行数值计算和控制。
小波基选择
常用的小波基包括Haar小波、Daubechies小波、Morlet 小波等。
误差分析
小波变换法的误差主要来自于变换误差和离散化误差。
05
离散化方法的评估与优化
评估离散化方法优劣的标准
01
02
03
04
精度
离散化方法是否能准确代表原 连续系统。
稳定性
离散化方法在一定参数变化范 围内是否能保持稳定。
状态空间模型
用状态变量和输入、输出变量描述连续系统的动态特性。
状态空间模型通常形式为:`x'(t) = Ax(t) + Bu(t)` 和 `y(t) = Cx(t) + Du(t)`,其中 `x(t)` 表 示系统状态,`u(t)` 表示系统输入,`y(t)` 表示系统输出,`A`, `B`, `C`, `D` 是系数矩阵。
化率。
通过求解 ODE,可以得到系统 在任意时刻的状态。
传递函数
表示连续系统在输入和输出之间的传递 特性。
传递函数通常形式为:`G(s) = Y(s) / U(s)`,其中 `Y(s)` 和 `U(s)` 分别是输 出和输入的拉普拉斯变换,`s` 是复变
量。
通过分析传递函数的零点、极点和增益 ,可以得到系统的稳定性和性能特性。

连续系统离散化分析

连续系统离散化分析

1实验一 离散系统的分析一 实验目的1.学习利用采样控制理论;2.使用MATLAB 理论进行分析;3. 学习利用z 变换与反变换分析离散控制系统;二、实验步骤1.开机执行程序C :\matlab \bin \matlab.exe (或用鼠标双击图标)进人MATLAB 命令窗口;2.运用所学自动控制理论z 变换与反变换,使用MATLAB 的基本知识分析离散控制系统的基本性质及进行控制系统的设计。

3. MATLAB 离散系统基本命令模型转换1)连续系统离散化sysd=c2d(sys,T) T 为采样时间sysd=c2d(sys,T,method)method 有四种模式:a. ‘zoh’---采用零阶保持器,b. ‘foh’---采用一阶保持器,c. ‘tustin’---采用双线性逼近(tustin )方法,d. ‘preqarp’---采用改进的(tustin )方法,2)离散系统连续化sys=d2c(sysd,T,method) T 为采样时间例 设)1(1)(+=s s s g , T=0.1s , 求G(z) 键入命令:sys=tf([1],[1 1 0]);c2d(sys,0.1) %采样时间0.1s得到离散传递函数:当采样时间取T=1s 时:0.004837 z + 0.004679 G (z )= ---------------------------- z^2 - 1.905 z + 0.9048 0.3679 z + 0.2642 G (z )= ---------------------------- z^2 - 1.368 z + 0.36792例 系统脉冲传递函数为6322.02644.03678.0)()(2+−+=z z z z R z C ,求离散单位阶跃响应。

解. 在MATLAB 窗口键入以下程序num=[0.3678 0.2644];den=[1 -1 0.6322];dstep(num,den)结果件下图:三、实验内容有系统1)其中K =10,T =0.25s,求单位阶跃函数r(t)=1 (t)作用下的响应。

连续系统离散化方法

连续系统离散化方法
Z 变换法的特点是: ① D ( z ) 和 D ( s ) 有相同的单位脉冲响应序列; ②若 D ( s ) 稳定,则 D ( z ) 也稳定; ③ D ( z ) 存在着频率失真; ④该法特别适用于频率特性为锐截止型的连续滤波器的离散化。 它主要应用于连续控制器 D ( s ) 具有部分分式结构或能较容易地分解为并联结构,以及
5.2.1
连续系统离散化方法
1、反向差分变换法
对于给定的
D( s) =
U ( s) 1 = E (s) s
(5.1)
du (t ) = e(t ) ,用反向差分代替微分,得 其微分方程为 dt du (t ) u (k ) − u (k − 1) ≈ = e( k ) dt T
对(5.2)式两边取 Z 变换得: (1 − z )U ( z ) = TE ( z ) ,即
上式可以写成
1⎞ ⎛ ⎛1⎞ 2 ⎜σ − ⎟ + ω < ⎜ ⎟ 2⎠ ⎝ ⎝ 2⎠
2
2
由上式可以看出, s 平面的稳定域映射到 z 平面上以 σ = 1 / 2 , ω = 0 为圆心, 1 / 2 为半 径的圆内,如图 5-3 所示。

Im
ω =0
σ
Re
z =1
图 5-3 反向差分变换 s 平面与 z 平面的对应关系 反向差分变换方法的主要特点如下: ①变换计算简单; ②由图 5-3 看出, s 平面的左半平面映射到 z 平面的单位圆内部一个小圆内,因而,如果
⎛ z −1⎞ Re ⎜ ⎟<0 ⎝ T ⎠
令 z = σ + jω ,则上式可以写成
⎛ σ + jω − 1 ⎞ Re⎜ ⎟<0 T ⎝ ⎠
因为 T > 0 ,则有 σ − 1 < 0 即 σ < 1 ,如图 5-4 所示。

连续函数离散化matlab程序

连续函数离散化matlab程序

连续函数离散化matlab程序连续函数离散化是在数值分析和科学计算中常常用到的一种技术。

离散化的目的是为了将连续函数转化为离散点的数据,以便在计算机程序中进行计算和处理。

在 MATLAB 中,我们可以使用一些内置函数来实现连续函数的离散化。

1. 离散化的概念离散化是将连续函数转化成离散点的数据。

我们可以将其想象成将一条曲线在数轴上映射成若干个点,每个点代表函数在该点处的函数值。

在实际的计算中,离散化不仅可以提高计算效率,还可以让我们将连续函数以表格的形式展示出来,使得我们更容易进行分析和处理。

2. 样条插值样条插值是一种常用的连续函数离散化方法,在 MATLAB 中可以使用spline 函数实现。

该函数可以根据一组已知的数据点(也就是离散的点),生成一个插值函数。

之后,我们就可以使用该插值函数来计算任意点处的函数值,并对其进行分析和处理。

3. 离散变量的生成离散化的第一步是生成函数在某一区间内的离散变量。

MATLAB 中的linspace 函数可以帮助我们生成等间距的离散点。

例如,下面的代码可以生成一个包含 100 个离散点的行向量 x:```matlabx = linspace(0, 1, 100);```这个代码使用了 linspace 函数,第一个参数是区间的起点,第二个参数是区间的终点,第三个参数是离散点的个数。

在这个例子中,代码生成了一个从 0 到 1 的区间,并且将该区间等分成了 100 个离散点。

4. 进行样条插值一旦我们生成了离散变量,我们就可以使用 MATLAB 中的 spline 函数来进行样条插值。

下面的代码演示了如何生成一个样条插值函数:```matlaby = sin(2 * pi * x);pp = spline(x, y);```这段代码中,我们使用了 spline 函数,它的第一个参数是离散点的横坐标 x,第二个参数是离散点的纵坐标 y。

函数返回一个插值函数pp,我们可以使用该插值函数对任意点进行估算。

应用MATLAB分析离散控制系统

应用MATLAB分析离散控制系统
图1-30 离散系统脉冲响应
3.dslim()函数的调用格式
dslim(num,den,u)
其中:num为脉冲传递函数分子多项式系数;den为脉冲传递函数分母多项式系数;u为输入 信号。
自动控制原理
自动控制原理
应用MATLAB分析离散控制系统
1.1 连续系统与离散系统模型之间的转换 在MATLAB中对连续系统的离散化是通过c2dm()函数实现的,c2dm()函数的调
用格式为 [numd,dend] = c2dm(num,den,T,’zoh’)
其中zoh表示零阶保持器;T为采样周期,num为传递函数分子多项式系数; den为传递函数分母多项式系数。
表1-5 连续系统模型与离散系统模型转换函数
MATLAB函数
调用格式
函数说明
c2d
sysd=c2d(sysc,Ts,’method’)
连续时间LTI系统模型转换成 离散时间系统模型
c2dm

[numz,denz]=c2dm(num,den,T,’method’)
连续时间LTI传递函数模型转 换成离散时间传递函数模型
d2c d2cm d2d
sysc=d2c(sys,’method’)
离散时间系统模型转换成连续 时间LTI系统模型
1. [A,B,C,D]=d2cm(Ad,Bd,Cd,Dd,T,’method’)
离散时间状态空间模型 转换成连续时间状态空 间模型
sys=d2d(sysd,T)
离散时间模型转换成新的离散 时间系统模型
利用MATLAB中的dstep()函数可得到输出响应,如图1-29所示。程序如下: num = [0.368 0.264]; den = [1 -1 0.632]; dstep(num,den)

计算机仿真教案04-2-第四章 离散相似法的连续系统仿真

计算机仿真教案04-2-第四章 离散相似法的连续系统仿真

G (Z ) Z { 1 e sT G (s) }(1 z 1 )Z { G (s)}
s
s
通过脉冲传递函数导出系统差分方程
脉冲传递函数在大多情况下是z的有理分 式,即可表示为
G (z) U Y ( (z z) )b 1 0 a b 1 1 z z 1 1 a b 2 2 z z 2 2 a b p m z z p m
对其进行拉氏变换:
L [f ( t) ] F (s ) L k 0f(k T )( t k T ) k 0f(k T )e k T s

令 z e T s , 则 上 式 变 为 Z [f ( t) ] F (z )f( k T )z k k 0 此式称为采样函数 f ( t ) 的Z变换。
z1

1 2j
1
1 e jT
z1
z1 sinT
z1 sinT
1e jT z1 e jT z1 z2 1 2z1 cosT z2
Z变换的性质
线性性质 延迟定理 超前定理 复位移定理 初值定理 终值定理 卷积和定理
线性性质
若 : Z [f1 *(t)]F 1(z),Z [f2*(t)]F 2(z),
s s 1
1
解: L[sint] 2 j 2 2 2 j 2 j 2 j
s2 2
s2 2
s j s j
因为 所以
L1

s
1
j


e
j
(t
)
F(z)

z

s2
2


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

g
h x(t0 )

h2 2!
(
ftk

h2 2
x(2) (t0
' fxk ' fk )
)
f 'tk f 'xk 等各阶导数不易计算,用下式中 ki的线性组合代替
r
xk1 xk h aiki
线性组合
i 1
r为精度阶次,ai为待定系数,由精度确定;ki用下 式表示
i 1
ki f (tk b1h, xk hb2 k j ) , i 2, 3L , r
2

A(xk

h 2
K1) Bu(tk

h) 2

K
3

A(xk

h 2
K2)

Bu(tk

h) 2
K4 A(xk hK3) Bu(tk h)
yk+1 Cxk+1
RK法的特点:
1 需要存储的数据少,占用的存储空间少; 2 只需知道初值,即可启动递推公式进行计
算,可自启动; 3 容易实现变步长运算。 4 每积分一步需要计算多次右函数,计算量
求出微分方程在这些时刻的近似值 x0 x1 x2 L xN
x(t0

h)

x(t0
)

h
g
x(t0 )

h2 2!
x(2) (t0
)
L

hk k!
x(k)
(t0 )
1. 欧拉法
矩形面积
取前两项近似: xk1 hf (tk , xk ) xk
取k=0,1,2,…N,从t0开始,逐点递推求解t1时的y1, t2时的 y2…,直至tn时的yn,称之为欧拉递推公式。
(1) 自启动 r阶多步算式无法自启动,需要用单步法求出前r步值
(2) 预估迭代 迭代方法要求收敛性良好,否则在大步长时会造成数 值发散。
(3) 变步长 初始阶段采用小步长,随后可逐步放大步长。
对不同精度要求的系统仿真,要考虑变阶次问题, 即为减小每一步计算的截断误差,以提高精度,应选用 较高的阶次,而当精度较低时,为减少工作量,则应选 取较低的阶次。仿真时应根据估计误差 与给定的误差精 度相比较改变步长或阶次来重新计算。
2 病态系统中绝对值最小的特征值对应于系统动态性能 解中瞬态分量衰减最慢的部分,它决定了整个系统的动 态过渡过程时间的长短。一般与系统中具有最小时间常 数Tmax的环节有关,要求计算步长h取得很大。
3 对于病态问题的仿真需要寻求更加合理的算法,以解 决病态系统带来的选取计算步长与计算精度,计算时间 之间的矛盾。
第四章 连续系统的离散化方法
4.1 常微分方程的数值解法
一. 数值求解的基本概念
设微分方程为
dx

dt

f
(t,
x)
x(t0 ) x0
则求解方程中函数x(t)问题的常微分方程初值问题
所谓数值求解就是要在时间区间[a, b]中取若干离散点
a t0 t1 L tN b hn tn1 tn

y1
y1( 0 ) 2, y2( 0 ) 0
1、建立M-文件vdp.m如下:
function dy=vdp(t,y) dy=zeros(2,1); dy(1)=y(2);
dy(2)=2*(1-y(1)^2)*y(2)-y(1);
2、取t0=0,tf=20,输入命令:
[T,Y]=ode45(‘vdp’,[0 10],[1;1]); plot(T,Y(:,1),'-‘, T,Y(:,2))
例 设系统方程为
g
x x2, x0 1
用Euler法求其数值解(取步长 h0.1, 0 t 1 )
递推公式为
xn1 xn hf tn , xn xn 1 0.1xn

t0 0, y0 1
t1 0.1, y1 y010.1y0 0.9 t2 0.2, y2 y110.1y1 0.90.91 0.819 t3 0.3, y3 y210.1y2 0.81910.10.819 0.7519
3、结果
练习 解微分方程组.

y1' y2 y3

y2 ' y1 y3 y3' 0.51y1 y2
y1(0) 0, y2 (0) 1, y3(0) 1
解 1、建立m-文件rigid.m如下:
function dy=rigid(t,y) dy=zeros(3,1); dy(1)=y(2)*y(3); dy(2)=-y(1)*y(3); dy(3)=-0.51*y(1)*y(2);

t10 1.0, y10 y910.1y9 0.4628
已知方程的解析解为
y 1 1 t
精确解和解析解作比较:
t
0
精确解 1
数值解 1
0.1 0.2 0.3 0.4 0.5 …… 1.0
0.909 0.833 0.769 0.666 0.625 …… 0.5
0.9 0.819 0.752 0.659 0.647
大。
3.常微分方程Matlab求解
基于龙格-库塔法,MATLAB提供了求常微分方程数值解 的函数,一般调用格式为:
2/3阶龙格-库塔算法
[t, x]=ode23(‘xfun’, [t0, tf] ,x0)
4/5阶龙格-库塔算法 [t, x]=ode45(‘xfun’, [t0, tf] ,x0)
输入 输出
将 f tk b1h,xk hb2k1 在点 tk ,xk 展成Taylor级数
k2 fk b1hftk b2hk1 fxk
与台劳公式的二阶展开近似公式相比,可得以下关系:
ba12
a2
a2
1 12
a2b1 1 2
三个方程,四个未知数,解不唯一
0.463
误差在 10 2 数量级, 精度较差。
2. 龙格库塔法※
基本思想:取Taylor级数展开式前三项
近似求解,并利用线性组合代替导数的 求解。
既可避免计算高阶导数,又可提高
数值积分的精度,这就是Runge-Kutta
法的基本思想。
2.
龙格库塔法※
x(t0 h) x(t0 )
xk1 xk h fk
X&(t) AX (t) BU (t), X (t0) X 0
的系数矩阵A的特征值具有如下特征:
Re(i ) 0
m1iaxn Re(i ) ?
min
1i n
Re(i )
则称为“病态”方程。
2 控制系统仿真中的“病态”问题
1 病态系统中绝对值最大的特征值对应于系统动态性能 解中瞬态分量衰减最快的部分,它反映了系统的动态响 应和系统的反应灵敏度。一般与系统中具有最小时间常 数Tmin的环节有关,要求计算步长h取得很小。
j 1
1)当r=1时:
xk1 xk ha1k1,
k1 f (tk , xk ),
与Taloy展开式相比较,可得a1=1,则上式成为
xk1 xk hk1 xk hf (tk , xk ),
欧拉递推公式
2)当r=2时:
k2

k1 f tk ,xk f tk b1h, xk hb2k1
4.4 连续系统状态方程的离散化
上章所述的连续系统数学模型的离散化, 是通过数值积分法实现的,尽管面向结 构图的仿真方法是按环节给定参数,但 是在计算时还是按整个系统进行离散化, 这就不便于引进非线性环节以进行非线 性系统的仿真。在本节,将介绍连续系 统离散模型的建立和仿真。
常微分方 程函数名
起始 时间
终止 时间
初始状 态向量
例 1 经典的微分方程
解: 令 y1=x,y2=x’

d2x dt 2

2(1 x2 ) dx dt
x( 0 ) 1; x'( 0 ) 1

x

0
则微分方程变为一阶微分方程组:

y2
'

y1' y2 2(1 y12 )y2
(i 1, 2,L , n)
ki1 ki 2
ai1x1k ai2 x2k L ain xnk biu(tk )

ai1 ( x1k

h 2
ki1 )
L

ain (xnk

h 2
ki1 )
biu(tk

h) 2
ki3

ai1 ( x1k

h 2
ki2 )
L
仿真中遇到的大多数工程实际问题,四阶龙格库塔法以能 满足精度要求,其截断误差o(h5) 与h5同数量级。该法可以 自启动。
4)、状态空间四阶龙格-库塔递推式 若单输入单输出系统的状态空间表达式为:
X& AX BU Y CX DU
在仿真中,对于n阶系统,状态方程可以写成一阶微分方程
各个系数的几种取法——见书上。
3) r=4时,四阶龙格库塔公式-最常用:
h
xk 1

xk

( 6
K1

2K2

2K3

ቤተ መጻሕፍቲ ባይዱK4
)

K1 f tk ,xk

K2

K3

f f

tk

tk

h 2
,
xk
h 2 , xk
相关文档
最新文档