当前位置:文档之家› 连续传递函数离散化的方法与原理

连续传递函数离散化的方法与原理

连续传递函数离散化的方法与原理
连续传递函数离散化的方法与原理

目录

第一章模拟化设计基础1第一节步骤1第二节在MATLAB中离散化3第三节延时e-Ts环节的处理5第四节控制函数分类6第二章离散化算法10摘要10比较11第一节冲击响应不变法(imp,无保持器直接z变换法) 11第二节阶跃响应不变法(zoh,零阶保持器z变换法) 11第三节斜坡响应不变法(foh,一阶保持器z变换法) 11第四节后向差分近似法12第五节前向差分近似法14第六节双线性近似法(tustin) 15第七节预畸双线性法(prevarp) 17

第八节零极点匹配法(matched) 18第三章时域化算法19第一节直接算法1—双中间变量向后递推19第二节直接算法2—双中间变量向前递推20第三节直接算法3—单中间变量向后递推21第四节直接算法4—单中间变量向前递推(简约快速算法) 21第五节串联算法22第六节并联算法23第四章数字PID控制算法24第一节微分方程和差分方程25第二节不完全微分25第三节参数选择26第四节 c51框架27第五章保持器33第一节零阶保持器33第二节一阶保持器30附录两种一阶离散化方法的结果的比较31

第一章模拟化设计基础

数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。

将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB的SIMULINK 工具箱,进行模拟仿真。

第一节步骤

步骤1 模拟控制器的处理

在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC),因此,如果模拟控制器尚未设计,则应以下图的方式设计模拟控制器,即在对象前面加上一个零阶保持器,

形成一个新对象

Ts

1e

G s

s

()

-

-,然后针对这个新对象求模拟控制器D(s)。事实上,模拟控制器

一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。

然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?还没有这方面的实际经验。

以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。

步骤2 离散化模拟控制器

离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,

计算机的性能,以及干扰信号的影响等,初步可按采样时间T<0.1Tp ,Tp 为被控对象时间常数,或T=(0.125~0.25)τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取0.05秒。

假设模拟控制器为s 2

D s 8s 15+=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为:

转换结果为:

步骤3 检验数字控制器的性能

数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。

直流增益 dcgain(dz) 返回直流增益1.0667

频率特性 bode(ds,'r',dz,'g') 伯德图,见下页左图

零极点分布 pzmap(dz) 零极点分布图,见下页右图

步骤4 离散化控制对象

为了进行模拟仿真,需要对控制对象进行离散化,由于步骤1所说的原因,应把被控对

象视为零阶保持器与原对象的串连,即应对Ts

1e G s s

()--进行离散化,这时可在

c2d 函数中使用

零阶保持器(zoh)方法,如果认为不需要添加零阶保持器,即直接对G(s)离散化,则应在c2d 函数中使用冲击响应不变法(imp )。

借用零阶保持器(zoh)方法,将对象20

G s s s 2()()=+带一阶保持器离散化的过程如下:

ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函

...... %模拟控制器D(s)转换为D(z)的过程见前

转换结果为:

步骤5 模拟仿真

求离散系统的闭环传递函数和连续系统的闭环传递函数。

离散系统的闭环传递函数为:CZ

D z G 1z TR 1D z G 1z ()()

()()

=

+

连续系统的闭环传递函数为:CS D s G s TR 1D s G s =+()()

()() 用MATLAB 算TR CZ 与TR CS :

结果为:

用MATLAB 函数STEP 画阶跃响应图形:

响应图形为:

步骤6 求数字控制器的时域表达式

上面已经求出, 连续传递函数s 2

D s 8s 15+=+?()的tustin 离散式为

1

1

U z 61091z 09048 6.1091-5.527z D z E z z 0454*******z ---===

--().(.)()()..,或 1

1

U z 61091E

z 5527E z z 04545U z z

().().().()--=-+。

对上式取z 反变换,得时域表达式u k 61

091e k 5527e k 104545u k 1=--+-().().().(),根据此式就可以写出计算u k ()的程序代码来了。

除上述步骤之外,在编写程序代码时,还需要考虑几个问题:

trcz=dz*g1z/(1+dz*g1z)

hold on %图形保持

step(trcs,'r',2) %画连续系统的阶跃响应图,红色,终

① ADC位数

ADC位数是一个硬件问题,在系统设计时,就应该结合控制算法,仔细分析ADC位数对控制精度的影响。

②数据类型

在控制算法中有3种数据类型可以采用:无符号整数,定点数,浮点数。我们知道,无符号整数运算既是最简单和速度最快的运算,又是定点数运算和浮点数运算的基础。在数据动态范围比较小的情况下,应尽可能用无符号整数运算代替定点数运算和浮点数运算。

浮点数运算是一整套运算,包括加,减,乘,除,对阶,规格化,溢出处理等一系列子程序,使用浮点数的程序,将占用比较多的代码空间和比较长的运行时间。不论使用汇编语言还是c语言,对于是否使用浮点数运算,都应进行比较仔细的酌斟。

③数值计算误差

数值计算引入的误差有3个方面,一是定点数字长不够或者浮点数有效数字过少,一是两个相近的数相减,一是加减乘除次数过多。在程序设计中,应优化算法以避免计算误差的引入。

第二节 在MATLAB 中离散化

1. 建立s 降幂传递函数

① 建立多项式型s 降幂传递函数

方法1. sys = tf(num,den)

方法2. s = tf('s'),再令sys = f(s) 例: 已知03215s 3G 025s 125s s

...+=

++,用tf 函数建立多项式型s 降幂传递函数,

0G tf 153********([.],[..])=,若

G 0以零极点形式给出,即已知0305s 1G s s 1025s 1(.)

()(.)

+=++,仍可用tf 函数建立多项式型s 降幂传递函数,但需用多项式乘法函数conv 配合,G0=tf(conv([3],[0.5 1]),conv(conv([1 0],[1 1]),[0.25 1]))

② 建立零极点型s 传递函数

方法1. sys = zpk(z,p,k)

方法2. s = zpk('s'),再令sys = f(s)。

2. 传递函数的转换

① 将任意形式的s 传递函数转换为s 降幂传递函数 sys = tf(sys)

② 将任意形式的s 传递函数转换为s 零极点传递函数 sys = zpk(sys)

3. 建立z 传递函数

① 将连续传递函数转换为离散传递函数

sysd = c2d(sysc,t,method)

② 建立多项式形式的z传递函数

方法1. sys = tf(num,den,?t)

方法2. z = tf('z',?t),再令sys = f(z)

③ 建立零极点z传递函数

方法1. sys = zpk(z,p,k,?t)

方法2. z = zpk('z',?t),再令sys = f(z)

4. 建立z-1格式的传递函数

直接根据分子和分母建立z-1格式的传递函数sys_z = filt(num,den,?t)

当已有多项式形式的z降幂传递函数时,按以下步骤:

①取z降幂传递函数a的分子多项式系数[num,den] = tfdata(sys_s,'v')

②建立z-1格式的传递函数sys_z = filt(num,den,?t)

5. 将多项式形式的高阶z-1降幂传递函数转换为并联传递函数,按以下步骤:

① “手工”将z-1降幂传递函数a改写成多项式形式的z降幂传递函数b。

② 取z降幂传递函数b的分子多项式系数num和分母多项式系数den。

③ 利用residue函数取z降幂传递函数b的分项分式,[an ad ak]=residue(num,den)。

分项结果可能出现共轭复数,在这种情况下应将含有共轭复数的分式合并成二次有理质分式。

④ 根据分项结果手工写出z 降幂多项式形式的并联表达式。

⑤ “手工”将z 降幂多项式形式的并联表达式改写成z -1降幂多项式形式的并联表达式。

⑥ “手工”对z -1降幂多项式形式的并联表达式中的每一个分式项降阶,即将每一个分式项变形,使得分式项的分子的阶次比分母的阶次低1阶,变形完毕再将全部常数项合并。

举例

设有z -1降幂传递函数 12

12

010186z 00864z tz 01127z 027z

----++=-+..._..

改写成z 降幂传递函数 2

2

01z 0186z 00864tz 01z 127z 027

..._..++=-+, 取分项矢量 [an ad ak]=residue(nz,dz)

得 an=[0.5101 -0.1971]

ad=[1.0000 0.2700]

ak=0.1

手工写分项分式

111

0510105101z 05101

05101z 11z 1z ....---==-+---, 令

1

05101t z p 11z ._-=

-

111

0197101971z 073

073z 0271027z 1027z .......------==+---, 令

1

073t z p21027z ._.--=

-

又令 t z p 3010510107303199_.

...=-+= 故 1

1

05101073t z 0t z p3t z p 1t z p2031991z 1z ..____.--=++=+

-

--

验证 12

1

1

12

05101073010186z 008637z 031991z 1z 1127z 027z ........------+++

-=

---+

实际上,大多数数字控制器的传递函数都是一阶或者二阶的,所以需要分解的并不是很多。

6. 将高阶z -1降幂传递函数生成串联传递函数

使用zpk 函数 sys_zpk= zpk(sys_pl)

零极点的概念是相对于z 而不是相对于z -1说的,但对于以z -1为变量的降幂传递函数

sys_pl 来说,仍然可以用zpk(sys_pl)生成以z -1为变量的因式积形式传递函数,权且也称为零极点形式。zpk 函数对于z 降幂传递函和z -1降幂传都能得到合理的结果,原因是zpk 函数的作用就是把分子多项式和分母多项式分别进行因式分解。

第三节 延时环节e -Ts 的处理

在建立s 传递函数的LTI 模型时,对于延时环节e -T s ,可按如下方法处理:

1. 在tf 函数中使用属性’inputdely’或者’iodely’ ,例如:

>> tf([1 -1],[1 3 5],'inputdelay',0.35)

将返回以下形式的传递函数

s – 1

exp(-0.35*s) * --------------

s^2 + 3 s + 5

使用这个方法不能建立形如

Ts

1e s

--的传递函数,因为带延时的传递函数不能与不带延时

的传递函数相加,但可以使用c2d进行离散化,但要求延时时间t必须是采样时间?t的整数倍,若不是整数倍,则在转换时不理会延时环节,例如:

用tf函数建立2个传递函数,主体部分相同,但一个无输入延时,一个有输入延时0.35s, >> a=tf([1 -1],[1 4 5]) s - 1

----------------

s^2 + 4 s + 5

>> a1=tf([1 -1],[1 4 5],'iodelay',0.35) s - 1

exp(-0.35*s) * ---------------

s^2 + 4 s + 5若采样时间为0.05,因为延时时间是采样时间的整数倍,转换结果的主体部分完全一样: >> c2d(a,0.05,'imp') z^2 - 1.039 z + 9.146e-018

------------------------------ sampling time: 0.05

z^2 - 1.807 z + 0.8187

>> c2d(a1,0.05,'imp') z^2 - 1.039 z + 9.146e-018

z^(-7) * ----------------------------- sampling time: 0.05

z^2 - 1.807 z + 0.8187

若采样时间为0.1,因为延时时间不是采样时间的整数倍,结果的主体部分不一样:

>> c2d(a,0.1,'imp') z^2 - 1.06 z + 4.349e-018

----------------------------- sampling time : 0.1

z^2 - 1.629 z + 0.6703

>> c2d(a1,0.1,'imp') 0.768 z - 0.851

z^(-3) * -------------------- sampling time : 0.1

z^2 - 1.629 z + 0.6703 2. 将e -Ts 有理化

()Ts

ts G s e

-=?,因e -Ts 的一阶有理表达式是

Ts

121Ts s 2T e

121Ts s 2T

---+

≈=++

,故

Ts

2

s n s T ts G s e

G s 2d s s T

()()()

()--+

=≈=+。 为了对ts 进行离散化,首先使用tf 函数建立lti 模型的ts 。若t s t f n d (,)=,则

t z c2d t s t i m p (,,'')=?。

3. 在离散化时使用恒等式T s n

t

z

e

-

-?=

设Ts

ts G s e

()-=,因T

s n

t

z

e

--?=,采样时间为Δt ,若T=m Δt ,则m

ts G s z ()-=,因为离散化时

总是认为T 1t =??,故取1

ts G s z ()-=。

根据以上假设,用MATLAB的c2d函数对g(s)进行离散化,则_02(,,'')

=?,进而

G z c d G s t i m p

1

=。

_-

Gz Gz0z

则__n

=?。

sys z sys za z-

第四节控制函数分类

以下函数在control toolbox中,这里所述仅限于siso模型

1 创建多项式形式的传递函数

sys = tf(num,den) 创建一个s降幂多项式连续传递函数sys,分子多项式系数和分母多项式系数分别为num和den。

sys = tf(num,den,?t) 创建一个z降幂离散传递函数sys,?t是采样时间,行矢量num和den同上。

sys = tf(sys) 把一个任意的lti模型sys转换成多项式传递函数,例如把零极点模型转换成多项式传递函数。

sys = tf 创建一个空的tf对象。

sys = tf(m) 指定静态增益m。

2 创建零极点形式的传递函数

sys = zpk(z,p,k) 创建一个零极点模型的连续传递函数sys,零极点矢量分别是z和p,增益是k。

sys = zpk(z,p,k,?t) 创建一个零极点模型的离散传递函数sys,零极点矢量分别是z和p,增益是k,采样时间是?t。在零极点对象中,如果没有零点,则z=[]。

sys = zpk 创建一个空的零极点对象。

sys = zpk(d) 指定静态增益d 。

3 创建任意形式的传递函数

s = tf('s') 指定多项式传递函数变量为s 变量

z = tf('z',?t) 指定多项式传递函数变量为z 变量,?t 为采样时间

形如10

s 025s 1005s 1(.)(.)++的传递函数,既不能直接用tf 函数建立,也不能直接用zpk 函数建立。

定义了s=tf('s')后,写出赋值式f=10/(s*(0.25*s+1)*(0.05*s+1)),回车后即可得到多项式型传递函数10

f 00125s 303s 2s .^.^=++,再令f1=zpk(f),可得1800

f s s 20s 4()()=++。 s = zpk('s') 指定零极点传递函数变量为s 变量

z = zpk('z',??t) 指定零极点传递函数变量为z 变量,?t 为采样时间

定义了s = zpk('s'),写出赋值式f=10/(s*(0.25*s+1)*(0.05*s+1)),回车后即可得到零极点型传递函数1800

f s s 20s 4()()=++。 4 建立z -1降幂离散传递函数

sys = filt(num,den,?t) 返回z -1降幂离散传递函数,num 和den 分别是分子和分母多项式系数,?t 是采样时间。

sys = filt(m) 返回增益离散传递函数。

5 连续函数离散化

sysd = c2d(sysc,t,method)把连续传递函数sysc 转换成采样时间为?t 的离散传递函数,字符串method 为离散化方法: 'zoh'(零阶保持,即阶跃响应不变),'foh'(一阶保持),'imp'(冲击响应不变,v6以上版本),'tustin' (双线性近似),'prewarp'(带预畸变的双线性近似),'matched'(零极点匹配)。

注: ① 缺省的方法是'zoh'

② 'foh'的算法是12

21

D s 1z D z Z s Tz ()()

()[]

---=而不是12

2

Ts 1

1z D z Z D s T

s

()

()[()]

-+-=,这一点

可以通过验证证实,验证方法是,令2

2D s z

2z 1

D z c2d T i m p Tz

s

()()(,,'')

-+=,但此结果中,D z ()的分子和分母将含有公因式,所以应进一步用zpk 函数把D z ()表示成零极点形式,然后用“手工”的方法写出不含公因式的()D z 来,可以看到,最后的结果与用foh 方法得到的结果完全一致。

③ 当使用'prewarp'方法时,临界频率wc(in rad/sec)作为第四个输入来指定,如sysd =

c2d(sysc,t,'prewarp',wc)

1

opt

=

c2dOptions('Method','tustin','PrewarpFrequency',.5), c2d(ds,.05,opt)。

6 取多项式模型传递函数的分子和分母的系数矢量

[num,den] = tfdata(sys,'v') 对于siso 模型sys 返回作为分子和分母系数的单行矩阵num 和den 。

[num,den,t] = tfdata(sys,'v') 同上,同时返回采样时间?t 。

7 取零极点模型传递函数的零点和极点的单行矩阵

[z,p,k] = zpkdata(sys,'v') 返回lti 模型sys 的零极点矢量z 和p ,增益k 。 8 取e -T s 近似式

[num,den] = pade(t,n) 返回e -T ·s 的n 阶pade 近似式,行矢量num 和den 是s 的降幂

多项式系数。

e -Ts 的一阶有理表达式是 Ts

121Ts s 2T e 121Ts s 2T

---+

≈=++

e -T ·s 的高阶有理表达式是 23Ts

231Ts Ts 1Ts 2848e 1Ts Ts 1Ts 2848

()()...

()()...

--+-+≈++-+ 9 画阶跃响应图

step(sys) 画出由tf ,zpk ,or ss 等函数创建的lti 模型sys 的阶跃响应图。

step(sys,tfinal) 画出lti 模型sys 从t=0到t=tfinal 的阶跃响应图。对于未指定采样时间的离散模型,tfinal 被解释为采样的数目。

step(sys,t) 使用用户提供的矢量t 画阶跃响应图。对于离散时间模型,t 的形式应该是ti:??t:tf ,在这里,?t 是采样时间。对于连续时间模型,t 的形式应该是ti:dt:tf ,在这里,dt 变成对于连续系统的近似离散化的采样时间。Ti 是开始时间,tf 是终止时间。因为阶跃输入总是假定在t=0开始,所以通常不考虑ti 和tf ,即只使用一个终止时间t 。

step(sys1,sys2,...,t) 在一个单个的图上画出多个lti 模型sys1,sys2,... 的阶跃响应图,时间矢量t 是可选择,还可以以step(sys1,?r?,sys2,?y?,sys3,?gx?)的方式对每一个系统指定颜色,线型和标记。

[y,t] = step(sys) 返回用于仿真的时间t 的输出响应y ,但并没有图形画在屏幕上,如果sys 有ny 输出和nu 输入和lt = length(t),y 就是一个尺寸为[lt ny nu]的阵列,而y(:,:,j)给出第j 个输入通道的阶跃响应。

10 画脉冲响应图

impulse 脉冲响应函数,用法与step 相同

11 画频率响应图--伯德图(连续或离散)

bode(sys) 画伯德图

bode(sys,{wmin,wmax}) 在频率wmin ,wmax(in radians/second)之间画伯德图

bode(sys,w) 按指定的频率矢量w(in radians/second)画伯德图

bode(sys1,sys2,...) 画多个lti 模型sys1,sys2,...的伯德图

bode(sys1,sys2,...,w) 按指定的频率矢量w(in radians/second)画多个lti 模型sys1,sys2,...的伯德图

以下函数在符号工具箱symbolick 中,需注意,在使用这些函数前,要对所使用的变量进行符号说明,例如:

12 福里哀变换 fourier

反福里哀变换 ifourier

13 拉普拉斯变换 laplace

反拉普拉斯变换 ilaplace

14 z 变换 ztrans

反z 变换 iztrans

syms a t %是用空格分隔而不是用逗号分隔

a=sin(t)

注:以上3 种变换必须是符号表达式,例如:

syms t

laplace(sin(t))

15 改善公式的可读性pretty

16 多项式转换为符号表达式 poly2sym

17 化简符号表达式simplify

18 取符号表达式的分子和分母numden

以下函数在符号工具箱polyfun中,在公式变换中可能会用到

19 部分分式展开[an ad ak] = residue(n,d)

n和d分别为原分式的分子和分母矢量,an和ad分别为分项式的分子和分母矢量,ak 为整式部分。这是一个数学公式,在数字控制器程序设计中,利用部分分式展开的方法,把高于2阶的分式变换为不高于2阶的分式之和,从而把高阶传递函数算法变为低阶传递函数并联的算法。在使用这个方法时,不论在分子矢量中还是在分母矢量中,如果有共轭复数出现,则应将其整合为2阶质因式。

20 多项式乘法 c = conv(a,b) a×b=c

21 多项式除法[q,r] = deconv(b,a) b÷a=q...r,即b = conv(a,q) + r

第二章 离散化算法

连续传递函数离散化的核心环节,就是将控制器的s 传递函数转换为z 传递函数。离散化后,系统应该仍有好的稳定性,好的控制精度,而不是要求转换前后,两个数学公式等值。因此,离散化方法有多种。本章对这些方法的转换原理和由来进行了演绎。

离散化后得到的离散传递函数的稳定性,没有进行讨论,仅列了一张表进行比较。离散的结果,虽然可能会控制精度降低,应该认为,这不是主要问题。真正影响控制精度的因素,主要还是采样周期的长短。

一般情况下,由连续到离散的设计最好多实验几种方法(通过仿真,得出满意的结果)。因为匹配零、极点映射法、双线性变换法都能得出比较满意的结果,初步设计时,可以试用这些方法。

而其实,后向差分近似法也是合理的选择。但MATLAB 的c2d 函数中没有这一方法,在该方法的介绍之后,给出了一个可由MATLAB 引用的m 文件函数。

摘要

3种保持器法 保持器法即将s 函数串联上一个保持器后取z 变换,也可以从“对输入信号的响应不变”的角度导出。

无保持器法 D z Z D s ()[()]= (阶跃响应不变) imp

零阶保持器法

z 11

D z Z D s z s

()[()]-=

(阶跃响应不变) zoh

一阶保持器法

2

2z 11

D z Z D s Tz s

()()[()]

-= (斜坡输入不变) foh

2

2

2z 1Ts 1

D z Z D s Tz s

()

()[()]

-+=

(一阶保持器) MATLAB 中无此方法

4种近似法 近似法将s 与z 的无理关系z

s T

ln =近似地化为有理关系,主要应用于传递函数从连续到离散的变换。 后向差分近似法

z 1

s Tz

D z D s ()()|

-=

= MATLAB 的C2D 函数中没有这个方法

前向差分近似法

z 1s T

D z D s ()()|

-=

= MATLAB 的C2D 函数中没有这个方法

双线性近似法

2z 1s T z 1

D z D s ()()|

-=

+= tustin

预畸双线性近似法 1

1

z 1s T z 1tan 2D z D s ()()|

ω-=

+= ,?1为进行预畸变的频率 prevarp

增益匹配: s 0z 1D s D z |()||()|===或j 11D j D e |()||()|ω

ω= 1种匹配法 匹配法完全从控制学的角度看问题,也是应用于传递函数从连续到离散的变换。

零极点匹配法 若

s 12m 12n K s z s z s z D s s p s p s p ()()...()()()(

)...()---=

---, matched

12m 12n z t z t z t n m z p t p t p t K z e z e z e z 1D z z e z e z e ()()...()()

()()()...()

???-???---+=

---,

或者 12m 12n z t z t z t n m 1

z p t p t p t K z e z e z e z 1D z z e z e z e ()()...()()

()()()...()

???--???---+=

---,

确定增益k z : a 令s 0z 1D s D z |()||()|===,

b 若D(s)分子有s 因子,例如s

D s s 1()=+,

可以令 s z 1D s D z |()||()|=∞=-=,也可以令

1

j 1D j D e

|()||()|ωω=

比较

连续传递函数离散化的方法与原理

目录

第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB 控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB 的SIMULINK 工具箱,进行模拟仿真。 第一节 步骤 步骤1 模拟控制器的处理 在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC ),因此,如果模拟控制器尚未设计,则应以下 图的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts 1e G s s ()--,然后针对这个新对象求模拟 控制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?还没有这方面的实际经验。 以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。 步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<,Tp 为被控对象时间常数,或T=~τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取秒。 假设模拟控制器为s 2 D s 8s 15 +=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为: 转换结果为: 步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 直流增益 dcgain(dz) 返回直流增益 频率特性 bode(ds,'r',dz,'g') 伯德图,见下页左图 零极点分布 pzmap(dz) 零极点分布图,见下页右图 步骤4 离散化控制对象 为了进行模拟仿真,需要对控制对象进行离散化,由于步骤1所说的原因,应把被控对象视为零阶保持器与原对象的串连,即应对 Ts 1e G s s ()--进行离散化,这时可在c2d 函数中使用零阶保持器(zoh)方法,如果认为不需要添加零阶保持器,即直接对G(s)离散化,则应在c2d 函数中使用冲击响应不变法(imp )。 借用零阶保持器(zoh)方法,将对象20 G s s s 2()() =+带一阶保持器离散化的过程如下: 转换结果为: 步骤5 模拟仿真 求离散系统的闭环传递函数和连续系统的闭环传递函数。 ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函数 dz=c2d(ds,,'tustin') %将模拟控制器按tustin 方法转换为z 传递函数的数字控制器 ...... %模拟控制器D(s)转换为D(z)的过程见前 gs=zpk([ ],[0,-2],20) %建立对象的s 传递函数 g1z=c2d(gs,,'zoh') %借用c2d 函数进行带零阶保持器的对象的离散化

控制系统各种传递函数离散化后的递推公式推导及结果

一、凹口网络传递函数: 上式中参数: :凹口网络中心频率,; :二阶微分环节阻尼系数; :二阶振荡环节阻尼系数; 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式:; ; *************************************************************************************二、PI调节器 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式: *************************************************************************************三、滞后-超前调节器 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式:

*************************************************************************************四、PID 调节器(形式1) 参数::一阶微分环节时间常数(第二转折频率); :一阶微分环节时间常数; :一阶惯性环节时间常数; K:PID调节器放大系数。 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式:; ; *************************************************************************************五、PID 调节器(形式2) 采用双线性变换公式对上式离散化:

连续系统离散化处理基本方法

在数字计算机上对连续系统进行仿真时,首先遇到的问题是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。 从根本意义上讲,数字计算机所进行的数值计算仅仅是“数字”计算,它表示数值的精度受限于字长,这将引入舍入误差;另一方面,这种计算是按指令一步一步进行的,因而,还必须将时间离散化,这样就只能得到离散时间点上系统性能。用数字仿真的方法对微分方程的数值积分是通过某种数值计算方法来实现的。任何一种计算方法都只能是原积分的一种近似。因此,连续系统仿真,从本质上是对原连续系统从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算方法来近似积分运算,由此得到的离散模型来近似原连续模型。如何保证离散模型的计算结果从原理上确能代表原系统的行为,这是连续系统数字仿真首先必须解决的问题。 设系统模型为:),,(t u y f y =&,其中u (t )为输入变量,y (t )为系统变量;令仿真时间间隔为h ,离散化后的输入变量为)(?k t u ,系统变量为)(?k t y ,其中k t 表示t=kh 。如果)()(?k k t u t u ≈,)()(?k k t y t y ≈,即0)()(?)(≈-=k k k u t u t u t e ,0)()(?)(≈-=k k k y t y t y t e (对所有k=0,1,2,…),则可认为两模型等价,这称为相似 原理(参见图)。 实际上,要完全保证0)(,0)(==k y k u t e t e 是很困难的。进一步分析离散化引的误差,随着计算机技术的发展,由计算机字长引入的舍入误差可以忽略,关键是数值积分算法,也称为仿真建模方法。相似原理用于仿真时,对仿真建模方法有三个基本要求: (1)稳定性:若原连续系统是稳定的,则离散化后得到的仿真模型也应是稳定的。关于稳定性的详细讨论将在节中进行。 (2)准确性:有不同的准确性评价准则,最基本的准则是: 绝对误差准则:δ≤-=)()(?)(k k k y t y t y t e 相对误差准则:δ≤-= )(?)()(?)(k k k k y t y t y t y t e 其中 规定精度的误差量。 原连续模型 仿真模型 )(≈k y t e 图 相

离散方法分类

离散方法分类 有限差分法 微分方程和积分微分方程数值解的方法。基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。 有限差分法求解偏微分方程的步骤如下: 1、区域离散化,即把所给偏微分方程的求解区域细分成由有限个格点组成的网格; 2、近似替代,即采用有限差分公式替代每一个格点的导数; 3、逼近求解。换而言之,这一过程可以看作是用一个插值多项式及其微分来代替偏微分方程的解的过程. 如何根据问题的特点将定解区域作网格剖分;如何把原微分方程离散化为差分方程组以及如何解此代数方程组。此外为了保证计算过程的可行和计算结果的正确,还需从理论上分析差分方程组的性态,包括解的唯一性、存在性和差分格式的相容性、收敛性和稳定性。对于一个微分方程建立的各种差分格式,为了有实用意义,一个基本要求是它们能够任意逼近微分方程,这就是相容性要求。另外,一个差分格式是否有用,最终要看差分方程的精确解能否任意逼近微分方程的解,这就是收敛性的概念。此外,还有一个重要的概念必须考虑,即差分格式的稳定性。因为差分格式的计算过程是逐层推进的,在计算第n+1层的近似值时要用到第n层的近似值,直到与初始值有关。前面各层若有舍入误差,必然影响到后面各层的值,如果误差的影响越来越大,以致差分格式的精确解的面貌完全被掩盖,这种格式是不稳定的,相反如果误差的传播是可以控制的,就认为格式是稳定的。只有在这种情形,差分格式在实际计算中的近似解才可能任意逼近差分方程的精确解。关于差分格式的构造一般有以下3种方法。最常用的方法是数值微分法,比如用差商代替微商等。另一方法叫积分插值法,因为在实际问题中得出的微分方程常常反映物理上的某种守恒原理,一般可以通过积分形式来表示。此外还可以用待定系数法构造一些精度较高的差分格式。 有限容积法 有限容积法(Finite V olume Method)又称为控制体积法。 其基本思路是:将计算区域划分为一系列不重复的控制体积,并使每个网格点周围有一个控制体积;将待解的微分方程对每一个控制体积积分,便得出一组离散方程。其中的未知数是网格点上的因变量的数值。为了求出控制体积的积分,必须假定值在网格点之间的变化规律,即假设值的分段的分布的分布剖面。从积分区域的选取方法看来,有限体积法属于加权剩余法中的子区域法;从未知解的近似方法看来,有限体积法属于采用局部近似的离散方法。简言之,子区域法属于有限体积法的基本方法。有限体积法的基本思路易于理解,并能得出直接的物理解释。离散方程的物理意义,就是因变量在有限大小的控制体积中的守恒原理,如同微分方程表示因变量在无限小的控制体积中的守恒原理一样。限体积法得出的离散方程,要求因变量的积分守恒对任意一组控制体积都得到满足,对整个计算区域,自然也得到满足。这是有限体积法吸引人的优点。有一些离散方法,例如有限差分法,仅当网格极其细密时,离散方程才满足积分守恒;而有限体积法即使在粗网格情况下,也显示出准确的积分守恒。就离散方法而言,有限体积法可视作有限单元法和有限差分法的中间物。有限单元法必须假定值在网格点之间的变化规律(既插值函数),并将其作为

离散化方法总结

离散化方法 1引言 2离散化方法 模拟调节器的离散化方法有许多种,下面介绍几种常用的离散化方法。 2.1差分变换法 当模拟调节器采用微分方程来表示时,其导数可以用差分方程近似。假设通过模拟化的设计方法得到了一个控制器的传递函数,首先将传递函数转化成相应的微分方程,然后通过常用的差分近似方法对导数进行离散化,常用的差分近似有前向差分和后向差分两种。为了便于编程,通常采用后向差分法。 (1) 一阶后向差分 一阶导数采用的近似算式如下 ()(1)du u k u k dt T --≈(1) (2) 二阶后向差分 二阶导数采用的近似算式如下 22 ()()2(1)(2)d u t u k u k u k dt T --+-≈(2) 其中 T 为采样周期。 2.2 零阶保持器法 零阶保持器法又称为阶跃响应不变法,其基本思想是:离散近似后的数字控制器的阶跃响应序列必须与模拟调节器的阶跃响应的采样值相等。其中采用的零阶保持器的传递函数为 1()Ts e H s s --=(3) 其中,T 为采样周期。 假设一个模拟控制器的传递函数为D (s),采用零阶保持器法对其进行离散化时,应将H(s)包含在内,即: ()[()()]D z Z H s D s = 2.3 双线性变换法(Tustin 变换法) 双线性变换法又称为Tustin 变换法,它是直接将s 域函数转化成z 域的一种近似方法。已知一个连续传递函数D (s),则D (z)为 211 ()()z s T z D z D s -=+= 其中,T 为采样周期。 3 计算机辅助设计 已知一个连续控制器的传递函数为2 0.5()(1)s D s s +=+,分别采用零阶保持器法和双线性变换

有限差分,有限元,有限体积等离散方法的区别介绍

有限差分,有限元,有限体积等等离散方法的区别介绍 一、区域离散化 所谓区域离散化,实质上就是用一组有限个离散的点来代替原来连续的空间。实施过程是;把所计算的区域划分成许多互不重迭的子区域,确定每个子区域的节点位置及该节点所代表的控制容积。节点:需要求解的未知物理量的几何位置;控制容积:应用控制方程或守恒定律的最小几何单位。一般把节点看成是控制容积的代表。控制容积和子区域并不总是重合的。在区域离散化过程开始时,由一系列与坐标轴相应的直线或曲线簇所划分出来的小区域称为子区域。网格是离散的基础,网格节点是离散化物理量的存储位置。 大家都知道,常用的离散化方法有:有限差分法,有限元法,有限体积法。 1. 有限差分法是数值解法中最经典的方法。它是将求解区域划分为差分网格,用有限个网格节点代替连续的求解域,然后将偏微分方程(控制方程)的导数用差商代替,推导出含有离散点上有限个未知数的差分方程组。这种方法发展比较早,比较成熟,较多用于求解双曲线和抛物线型问题。用它求解边界条件复杂、尤其是椭圆型问题不如有限元法或有限体积法方便。 2. 有限元法是将一个连续的求解域任意分成适当形状的许多微小单元,并于各小单元分片构造插值函数,然后根据极值原理(变分或加权余量法),将问题的控制方程转化为所有单元上的有限元方程,把总体的极值作为各单元极值之和,即将局部单元总体合成,形成嵌入了指定边界条件的代数方程组,求解该方程组就得到各节点上待求的函数值。对椭圆型问题有更好的适应性。有限元法求解的速度较有限差分法和有限体积法慢,在商用CFD软件中应用并不广泛。目前的商用CFD软件中,FIDAP采用的是有限元法。 3. 有限体积法又称为控制体积法,是将计算区域划分为网格,并使每个网格点周围有一个互不重复的控制体积,将待解的微分方程对每个控制体积积分,从而得到一组离散方程。其中的未知数十网格节点上的因变量。子域法加离散,就是有限体积法的基本方法。就离散方法而言,有限体积法可视作有限元法和有限差分法的中间产物。 4. 有限分析法:同有限差分法一样,用一系列网格线将区域离散,所不同的是每个节点与相邻8个邻点组成。在计算单元中把控制方程中的非线形项局部线形化,并对该单元上未知函数的变化型线作出假设,把所选定型线表达式中的系数和常数项用单元边界节点上未知的变量值来表示,这样该单元内的被求问题就转化为第一类边界条件下的一个定解问题,可以找出分析解;然后利用这一分析解,得出该单元中点及边界上8个邻点上未知值间的代数方程,此即为单元中点的离散方程。两种离散方法外节点法:节点在子域的四角,先定节点位置而计算相应的界面内节点法:节点在子域中心,子域与控制容积重合。计算时先定界面后算出节点位置。 5. 边界元法(Boundary Element Method,BEM)上面四种方法都必须对整个区域作离散化处理,用分布在整个区域上的有限个节点上函数的近似值来代替连续问题的解。在边界元方法中应用格林函数公式,并通过选择适当的权函数把空间求解域的偏微分方程转换成为其边界上的积分方程,它把求解区中任一点的求解变量(如温度)与边界条件联系了起来。通过离散化处理,由积分方程导出边界节点上未知值的代数方程。解出边界上的未知值后就可以利用边界积分方程来获得内部任一点的被求函数之值。边界元法的最大优点是,可以使求解问题的空间维数降低一阶,从而使计算工作量及所需计算机容量大大减小。边界元法推广应用的一个最大限制是,需要已知所求解偏微分方程的格林函数基本解。虽然对不少偏微分方程这种基本解业已找出,但对Navier-Stoles方程这样的非线性偏微分方程,至今尚未找到其基本解。目前的一种处理方式是,把Navier-Stokes方程中的非线性项看作是扩散方程的源项并通过迭代的方式来求解,但一般只能获得Re较低情形的解。最近文献中采用高阶涡量—流函数方程的边界元方法,已使获得顶盖驱动流稳定解的Re高达10000。 格子—Boltzmann方法(Lattice-Boltzmann method,LBM)格子—Boltzmann方法是基于分子运动论的一种模拟流体流动的数值方法。在上述各种数值方法中,把本质上是离散的介质先假定是连续的,在此基础上建立起了N-S方程,然后又再把它离散化。在LBM中不再基于连续介质的假设,而是把流体看成是许多只有质量没有体积的微粒所组成,这些微粒可以向空间若干个方向任意运动。通过其质量、动量守恒的

控制系统各种传递函数离散化后的递推公式推导及结果

控制系统各种传递函数离散化后的递推公式推导及结果一、凹口网络传递函数: 上式中参数: :凹口网络中心频率,; :二阶微分环节阻尼系数; :二阶振荡环节阻尼系数; 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式: ; ; ******************************************************************** ***************** 二、PI调节器 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式: ******************************************************************** ***************** 三、滞后,超前调节器 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式: ******************************************************************** ***************** 四、PID 调节器(形式1) 参数::一阶微分环节时间常数(第二转折频率); :一阶微分环节时间常数; :一阶惯性环节时间常数; K:PID调节器放大系数。 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

迭代公式: ; ; ******************************************************************** ***************** 五、PID 调节器(形式2) 采用双线性变换公式对上式离散化: 代入H(S)表达式得到:

连续传递函数离散化的方法与原理

目录 第一章模拟化设计基础1第一节步骤1第二节在MATLAB中离散化3第三节延时e-Ts环节的处理5第四节控制函数分类6第二章离散化算法10摘要10比较11第一节冲击响应不变法(imp,无保持器直接z变换法) 11第二节阶跃响应不变法(zoh,零阶保持器z变换法) 11第三节斜坡响应不变法(foh,一阶保持器z变换法) 11第四节后向差分近似法12第五节前向差分近似法14第六节双线性近似法(tustin) 15第七节预畸双线性法(prevarp) 17第八节零极点匹配法(matched) 18第三章时域化算法19第一节直接算法1—双中间变量向后递推19第二节直接算法2—双中间变量向前递推20第三节直接算法3—单中间变量向后递推21第四节直接算法4—单中间变量向前递推(简约快速算法) 21第五节串联算法22第六节并联算法23第四章数字PID控制算法24第一节微分方程和差分方程25第二节不完全微分25第三节参数选择26第四节 c51框架27第五章保持器33第一节零阶保持器33第二节一阶保持器30附录两种一阶离散化方法的结果的比较31

第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB 控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB 的SIMULINK 工具箱,进行模拟仿真。 第一节 步骤 步骤1 模拟控制器的处理 在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC ),因此,如果模拟控制器尚未设计,则应以下图 的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts 1e G s s ()--,然后针对这个新对象求模拟控 制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢还没有这方面的实际经验。 D(s)x u e -模拟控制器 1-e -Ts s G(s)对象 以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。 x u e -D(s)=8s+2 s+15 .G(s)=20 s(s+2) 步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<,Tp 为被控对象时间常数,或T=~τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取秒。 假设模拟控制器为s 2 D s 8s 15 +=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为: 转换结果为: x u e -D(z)= 6.1091(z-0.9048) z-0.4545 D(s)=8s+2 s+15. G(s)= 20s(s+2) 步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函数 dz=c2d(ds,,'tustin') %将模拟控制器按tustin 方法转换为z 传递函数的数字控

离散的有限K-L展开式的形式

离散的有限K-L 展开式的形式设一连续的随机实函数x(t), 21T t T ≤≤,则x(t)可用已知的正交函数集{φj (t), j=1,2,…}的线性 组合来展开,即: 2 11j j j j j 2211T t T ,)t (a )t (a )t (a )t (a )t (x ≤≤=++++=∑∞ =φφφφΛ Λ (1) 式中,a j 为展开式的随机系数,φj (t)为一连续的正交函数,它应满足: ? ? ? ?≠==2 1 T T m )t (n n m if 0n m if ,1dt )t (~ φφ 其中)t (~ m φ为φm (t)的共轭复数式。 将上式写成离散的正交函数形式,使连续随机函数x(t)和连续正交函数φj (t)在区间21T t T ≤≤内被等间隔采样为n 个离散点,即: )}n (x ,),2(x ),1(x {)t (x Λ→ )}n (,),2(),1({)t (j j j j φφφφΛ→ 写成向量形式: T ))n (x ,),2(x ),1(x (x Λ= n ,,2,1j ,))n (,),2(),1((T j j j j ΛΛ=→φφφφ 将式(1)取n 项近似,并写成离散展开式: 21n 1j j j T t T ,a a x ≤≤Φ==∑=φ (2) 其中,a 为展开式中随机系数的向量形式,即: a = (a 1, a 2, …, a j , …, a n )T Φ为n x n 维矩阵,即:

??? ?? ?? ?????==Φ)n () n ()n ()2() 2()2()1()1()1(),,,(n 21n 2 1 n 21n 21φφφφφφφφφφφφΛ ΛΛΛΛΛΛΛ 其中,每一列为正交函数集中的一个函数,小括号内的序号为正交函数的采样点次序。因此,Φ实质上是由φj 向量组成的正交变换矩阵,它将x 变换成a 。

连续传递函数离散化的方法与原理分析

目录 第一章模拟化设计基础 1 第一节步骤 1 第二节在MATLAB中离散化 3 第三节延时e-Ts环节的处理 5 第四节控制函数分类 6 第二章离散化算法10 摘要10 比较11 第一节冲击响应不变法(imp,无保持器直接z变换法) 11 第二节阶跃响应不变法(zoh,零阶保持器z变换法) 11 第三节斜坡响应不变法(foh,一阶保持器z变换法) 11 第四节后向差分近似法12 第五节前向差分近似法14 第六节双线性近似法(tustin) 15 第七节预畸双线性法(prevarp) 17 第八节零极点匹配法(matched) 18 第三章时域化算法19 第一节直接算法1—双中间变量向后递推19 第二节直接算法2—双中间变量向前递推20 第三节直接算法3—单中间变量向后递推21 第四节直接算法4—单中间变量向前递推(简约快速算法) 21 第五节串联算法22 第六节并联算法23 第四章数字PID控制算法24 第一节微分方程和差分方程25 第二节不完全微分25 第三节参数选择26 第四节 c51框架27 第五章保持器33 第一节零阶保持器33 第二节一阶保持器30 附录两种一阶离散化方法的结果的比较31

第一章 模拟化设计基础 数字控制系统的设计有两条道路,一是模拟化设计,一是直接数字设计。如果已经有成熟的模拟控制器,可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。 将模拟控制器离散化,如果用手工进行,计算量比较大。借助数学软件MATLAB 控制工具箱,可以轻松地完成所需要的全部计算步骤。如果需要的话,还可以使用MATLAB 的SIMULINK 工具箱,进行模拟仿真。 第一节 步骤 步骤1 模拟控制器的处理 在数字控制系统中,总是有传输特性为零阶保持器的数模转换器(DAC ),因此,如果模拟控制器尚未设计,则应以下图 的方式设计模拟控制器,即在对象前面加上一个零阶保持器,形成一个新对象Ts 1e G s s ()--,然后针对这个新对象求模拟控 制器D(s)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?还没有这方面的实际经验。 D(s)x u e -模拟控制器 1-e -Ts s G(s)对象 以下假设选定的G(s),D(s)如下图,而且不对G(s)作添加保持器的预处理。 x u e -D(s)=8s+2 s+15 .G(s)=20 s(s+2) 步骤2 离散化模拟控制器 离散化模拟控制器之前,先要确定离散化算法和采样时间。离散化算法有好几种,第二章中有详细的论述,现假定采用双线性变换法。确定采样时间,需要考虑被控对象的特性,计算机的性能,以及干扰信号的影响等,初步可按采样时间T<0.1Tp ,Tp 为被控对象时间常数,或T=(0.125~0.25)τ,为被控对象的纯滞后,初步确定后再综合平衡其它因素,当然这需要一定的经验,现在假定取0.05秒。 假设模拟控制器为s 2D s 8s 15 +=?+(),在MATLAB 中,用c2d 函数进行离散化,过程为: 转换结果为: x u e -D(z)= 6.1091(z-0.9048) z-0.4545 D(s)=8s+2 s+15. G(s)= 20s(s+2) 步骤3 检验数字控制器的性能 数字控制器的性能项目比较多,我们仅以直流增益,频率特性,零极点分布说明。 直流增益 dcgain(dz) 返回直流增益1.0667 ds=zpk(-2,-15,8) %建立模拟控制器的s 传递函数 dz=c2d(ds,0.05,'tustin') %将模拟控制器按tustin 方法转换为z 传递函数的数

连续函数离散化

连续函数离散化 Prepared on 22 November 2020

连续函数离散化 替换法 传递函数是控制系统应用最广泛的模型描述形式,连续系统为S域的传递函数G(S),离散系统为Z域的脉冲传递函数G(Z)。 替换法的基本思想: 对给定的连续系统模型G(S),设法找到S域到Z域的某种映射关系,将S域的变量映射到Z平面上,由此得到与连续系统G(S)相对应的离散系统的脉冲传递函数G(Z)。然后,再由G(Z)通过Z反变换得到系统的时域离散模型——差分方程,从而快速求解。 根据Z变换理论,S域到Z域的最基本的映射关系是: Ts e Z =或Z T s ln 1= 其中T是采样周期 若直接将这个映射关系代入G(S)得到G(Z)将会很复杂,不便于计算,实际应用中是利用Z变换理论的基本映射关系进行简化处理,得到近似的离散模型。 简单替换法 由幂级数展开式: +++++=!!212n x x x e n x 取近似式:Ts e Z Ts +≈=1 或:T Z s 1-= 用此式代入G(S)就得到G(Z),这就是简单替换法,又称Euler 法。

例:二阶连续系统s s s U s Y s G 50400)()()(2+== ,001.0=T 解:简单替换法T Z s 1-=代入G(s) 001.0=T 代入 双线性替换法 取近似式:2121Ts Ts e Z Ts -+ ==或)1()1(2+-=Z T Z s 用此式代入G(S)就得到G(Z),这就是双线性替换法,又称Tustin 变换。相当于数值积分法中的梯形法,有较好的性能。 例:二阶连续系统s s s U s Y s G 50400)()()(2+==,001.0=T 用双线性替换法建立差分方程。 解:双线性替换:) 1()1(2+-=z T z s 代入G(s) 001.0=T 代入 域离散相似法 离散相似法将连续系统模型处理成与之等效的离散模型的一种方法。设计一个离散系统模型,使其中的信息流与给定的连续系统中的信息流相似。或者是根据给定的连续系统数学模型,通过具体的离散化方法,构造一个离散化模型,使之与连续系统等效。 连续系统模型 离散化模型 )(t u 经采样后是离散信号)(t u *,加保持器)(s Gh 后,将离散信号)(t u *转 化成连续信号)(~t u ,并作用于连续系统G(S)上输出)(~t y 。 离散模型:[])()() ()()(S G S Gh Z U Z Y Z G Z ==

计算机控制实验报告-离散化方法研究

东南大学自动化学院 实验报告 课程名称:计算机控制技术 第 2 次实验 实验名称:实验三离散化方法研究 院(系):自动化学院专业:自动化 姓名:学号: 实验室:416 实验组别: 同组人员:实验时间:2014年4月10日评定成绩:审阅教师:

一、实验目的 1.学习并掌握数字控制器的设计方法(按模拟系统设计方法与按离散设计方法); 2.熟悉将模拟控制器D(S)离散为数字控制器的原理与方法(按模拟系统设计方法); 3.通过数模混合实验,对D(S)的多种离散化方法作比较研究,并对D(S)离散化前后闭环系统的性能进行比较,以加深对计算机控制系统的理解。 二、实验设备 1.THBDC-1型控制理论·计算机控制技术实验平台 2.PCI-1711数据采集卡一块 3.PC机1台(安装软件“VC++”及“THJK_Server”) 三、实验原理 由于计算机的发展,计算机及其相应的信号变换装置(A/D和D/A)取代了常规的模拟控制。在对原有的连续控制系统进行改造时,最方便的办法是将原来的模拟控制器离散化。在介绍设计方法之前,首先应该分析计算机控制系统的特点。图3-1为计算机控制系统的原理框图。 图3-1 计算机控制系统原理框图 由图3-1可见,从虚线I向左看,数字计算机的作用是一个数字控制器,其输入量和输出量都是离散的数字量,所以,这一系统具有离散系统的特性,分析的工具是z变换。由虚线II向右看,被控对象的输入和输出都是模拟量,所以该系统是连续变化的模拟系统,可以用拉氏变换进行分析。通过上面的分析可知,计算机控制系统实际上是一个混合系统,既可以在一定条件下近似地把它看成模拟系统,用连续变化的模拟系统的分析工具进行动态分析和设计,再将设计结果转变成数字计算机的控制算法。也可以把计算机控制系统经过适当变换,变成纯粹的离散系统,用z变化等工具进行分析设计,直接设计出控制算法。 按模拟系统设计方法进行设计的基本思想是,当采样系统的采样频率足够高时,采样系统的特性接近于连续变化的模拟系统,此时忽略采样开关和保持器,将整个系统看成是连续变化的模拟系统,用s域的方法设计校正装置D(s),再用s域到z域的离散化方法求得离散传递函数D(z)。为了校验计算结果是否满足系统要求,求得D(z)后可把整个系统闭合而成离散的闭环系统。用z域分析法对系统的动态特性进行最终的检验,离散后的D(z)对D(s)的逼真度既取决于采样频率,也取决于所用的离散化方法。离散化方法虽然有许多,但各种离散化方法有一共同的特点:采样速率低,D(z)的精度和逼真度越低,系统的动态特性与预

连续系统离散化处理基本方法

连续系统离散化处理的基本方法 在数字计算机上对连续系统进行仿真时,首先遇到的问题就是如何解决数字计算机在数值及时间上的离散性与被仿真系统数值及时间上的连续性这一基本问题。 从根本意义上讲,数字计算机所进行的数值计算仅仅就是“数字”计算,它表示数值的精度受限于字长,这将引入舍入误差;另一方面,这种计算就是按指令一步一步进行的,因而,还必须将时间离散化,这样就只能得到离散时间点上系统性能。用数字仿真的方法对微分方程的数值积分就是通过某种数值计算方法来实现的。任何一种计算方法都只能就是原积分的一种近似。因此,连续系统仿真,从本质上就是对原连续系统从时间、数值两个方面对原系统进行离散化,并选择合适的数值计算方法来近似积分运算,由此得到的离散模型来近似原连续模型。如何保证离散模型的计算结果从原理上确能代表原系统的行为,这就是连续系统数字仿真首先必须解决的问题。 设系统模型为:),,(t u y f y =&,其中u (t )为输入变量,y (t )为系统变量;令仿真时间间隔为h ,离散化后的输入变量为)(?k t u ,系统变量为)(?k t y ,其中k t 表示t=kh 。如果)()(?k k t u t u ≈,)()(?k k t y t y ≈,即0)()(?)(≈-=k k k u t u t u t e ,0)()(?)(≈-=k k k y t y t y t e (对所有k=0,1,2,…),则可认为两模型等价,这称为相似原理(参见图2、1)。 ,随着计,也称为仿真建模关于稳定性的详细讨论将在2、4节中进行。 (2)准确性:有不同的准确性评价准则,最基本的准则就是: 绝对误差准则:δ≤-=)()(?)(k k k y t y t y t e 相对误差准则:δ≤-= )(?)()(?)(k k k k y t y t y t y t e 其中δ 规定精度的误差量。 (3)快速性:如前所述,数字仿真就是一步一步推进的,即由某一初始值)(0t y 出发,逐步计算,得到)(,),(),(21k t y t y t y Λ,每一步计算所需时间决定了仿真速度。若第k 步计算对应的系统时间间隔为,1k k k t t h -=+计算机由)(k t y 计算)(1+k t y 需要的时间为T k ,则,若T k =h k 称为实时仿真,T k h k ,对应于离线仿真。 &,已知系统变量y 的初始条件y t y ()00=,现 在要求y 随时间变化的过程y t ()。计算过 程可以这样考虑(参见图2、2):首先求出初始 点y t y ()00=的f t y ()00,,微分方程可以 )(≈k y t e 图2、1

连续离散化的方法的研究

连续离散化的方法的研究 0 引言 机械系统中的柔性部件对系统的动态特性有很大的影响,过去分

析时建立的模型,其构件都是属于刚体,在作运动分析时不会发生 弹性变形. 而实际上,机构受力后会有较大的形.ADAMS 软件是 著名的机械系统动力学仿真分析软件,分析对象主要多是刚体,但ADAMS 提供了柔性体模块,运用该模块可以实现柔性体运动仿 真分析,以弹性体代换刚体,可以更真实地模拟物体的运动. 1 ADAMS P Flex 柔性模块[1 ] ADAMS P Flex 是ADAMS 软件包中的一个集成可选模块,它提 供ADAMS 与有限元分析软件AN2SYS ,NASTRAN ,ABAQUS 之间的接口. 利用此模块可以考虑物体的弹性,在模型中引入柔 性体,从而提高系统仿真的精度. ADAMS P Flex 是采用模态柔性 来表示弹性的. 其基本思想是赋予柔性体一个模态集,采用模态 展开法,用模态向量和模态坐标的线性组合来表示弹性位移,通过 计算每一时刻物体的弹性位移来描述其变形运动.ADAMS P Flex 中的柔性体可采用(MNF) 来描述,该文件是一个独立于操作平台 的二进制文件,它包含以下信息:几何信息、结点质量和惯量、模 态、模态质量和模态刚度. 如果是有限元专家,可以自己将有限元 结果写成模态中性文件,但更可行的方法是利用 ANSYS ,NASTRAN ,ABAQUS 等商品化有限元软件包进行分析 后将结果转换成模态中性文件[2 ] . 一旦创建了模态中性文件,就 可以将它输入到ADAMS P View 或ADAMS P Solver 中,建立相应 零件的柔性体. 具体的操作流程如下: 导出导入 有限元素模中性文件MNF ADAMS柔性

连续函数离散化

连续函数离散化 1.1替换法 传递函数是控制系统应用最广泛的模型描述形式,连续系统为S域的传递函数G(S),离散系统为Z域的脉冲传递函数G(Z)。 替换法的基本思想: 对给定的连续系统模型G(S) ,设法找到S域到Z域的某种映射关系,将S域的变量映射到Z平面上,由此得到与连续系统G(S)相对应的离散系统的脉冲传递函数G(Z)。然后,再由G(Z)通过Z反变换得到系统的时域离散模型——差分方程,从而快速求解。 G(S) G(Z) 差分方程 根据Z变换理论,S域到Z域的最基本的映射关系是: Ts e Z =或Z T s ln 1 = 其中T是采样周期 若直接将这个映射关系代入G(S)得到G(Z)将会很复杂,不便于计算,实际应用中是利用Z变换理论的基本映射关系进行简化处理,得到近似的离散模型。 1.1.1 简单替换法 由幂级数展开式: +++++=! !212n x x x e n x +++++==!)(!2)(12n Ts Ts Ts e Z n Ts 取近似式:Ts e Z Ts +≈=1 或:T Z s 1-= 用此式代入G(S)就得到G(Z),这就是简单替换法,又称Euler 法。

例:二阶连续系统s s s U s Y s G 50400 )()()(2 +== ,001.0=T 解:简单替换法T Z s 1 -= 代入G(s) ) () (501)250(400)1(50)1(400 )(2 222 z U z Y T z T z T T z T z z G =-+-+=-+-= )(400)()501()()250()(22z U T z Y T z zY T z Y z =-+-+? )(400)()501()()250()(2221z U z T z Y z T z Y z T z Y ---=-+-+? )2(400)2()501()1()250()(2-+------=?k u T k y T k y T k y 001.0=T 代入 )2(104.0)2(95.0)1(95.1)(3--?+---=k u k y k y k y 1.1.2 双线性替换法 +-++-+-+++++===---!)2/(!2)2/(21!)2/(!2)2/(212 22/2 /)2(2k Ts Ts Ts k Ts Ts Ts e e e e k k Ts Ts Ts Ts Ts 取近似式:2 121Ts Ts e Z Ts -+ = =或)1()1(2+-=Z T Z s 用此式代入G(S)就得到G(Z),这就是双线性替换法,又称Tustin 变换。相当于数值积分法中的梯形法,有较好的性能。 例:二阶连续系统s s s U s Y s G 50400 )()()(2+== ,001.0=T 用双线性替换法建立差分方程。 解:双线性替换:) 1() 1(2+-= z T z s 代入G(s) ) 1)(1(100)1(4)1(400) 1()1(250 )1()1(2400 )(22 22222+-+-+= +-++-=z z T z z T z T z z T z z G

相关主题
文本预览
相关文档 最新文档