连续传递函数离散化的方法与原理Word文件下载.docx
- 文档编号:7804728
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:60
- 大小:207.94KB
连续传递函数离散化的方法与原理Word文件下载.docx
《连续传递函数离散化的方法与原理Word文件下载.docx》由会员分享,可在线阅读,更多相关《连续传递函数离散化的方法与原理Word文件下载.docx(60页珍藏版)》请在冰点文库上搜索。
数字控制系统的设讣有两条道路.一是模拟化设计,一是直接数字设汁。
如果已经有成熟的模拟控制器.可以节省很多时间和部分试验费用,只要将模拟控制器离散化即可投入应用。
如果模拟控制器还不存在,可以利用已有的模拟系统的设计经验,先设计出模拟控制器,再进行离散化。
将模拟控制器离散化,如果用手工进行,讣算虽比较大。
借助数学软件MATLAB制匸具箱,可以轻松地完成所需要的全部计算步骤。
如果需要的话,还可以使用MATLAB的SIMULINKI:
具箱,进行模拟仿真。
第一节步骤
步骤1模拟控制器的处理
在数字控制系统中•总是有传输特性为零阶保持器的数模转换器(DAC),因此.如果模拟控制器尚未设计.则应以下
2-尹
图的方式设汁模拟控制器,即在对◎前面加上一个零阶保持器,形成一个新对彖一G(s),然后针对这个新对象求模s
拟控制器D⑸。
爭实上.模拟控制器一般是已经设讣好的,无法或不方便更改了,离散化后的系统只好作为近似设II*fo
然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢?
还没有这方而的实际经验。
模拟控制器对象
以下假设选定的D⑸如下图,而且不对G⑸作添加保持器的预处理。
步腺2离散化模拟控制湍
离散化模拟控制器之前.先契确定离散化算法和采样时间。
离散化算法有好几种.第二萃中有详细的论述,现假定采用双线性变换法。
确定采样时间,需要考农被控对欽的特性.汁算机的性能•以及干扰信号的彩响等.初步可按采样时间T<
Tp为被控对象时间常数,或为被控对歛的纯滞后.初步确定后再综合平衡其它因素,、“I然这需要一定的经验,现在假定取秒。
假设模拟控制湍为D(s)=8•二在MATLAB中.用c2d函数进行离散化,过程为:
s+15
ds=zpk(・2,・15,8)%建立模拟控制器的s传递函数
转换结果为:
步骤3检验数字控制器的性能
数字控制器的性能项目比较女,我们仅以直流増益,频率特性,零极点分布说明。
直流増益dcgain(dz)返回直流増益
频率特性bode(ds;
r\dz;
g3伯德图.见下页左图
零极点分布pzmap(dz)零极点分布图,见下贞右图
步骤4离散化控制对飲
为了进行模拟仿真.需要对控制对歓进行离散化,由于步骤1所说的原伙I,应把被控对念视为零阶保持湍与原对象的串
连,即应对进行离散化,这时可在c2d函数中使用零阶保持器(zoh)方法,如果认为不需要添加零阶保持器,s
即直接对G⑸离散化.贝I]应在c2d函数中使用冲击响应不变法(imp)o
借用零阶保持器(ZOh)方法,将对象G(S)=…二“帶一阶保持器离散化的过程如下:
・・・・•・%模拟控制器D(s)转换为D⑵的过程见前
gs=zpk([]f[0r2]f20)%建立对象的s传递函数
、6.1091(z-0.9018)
D(z)=一F0-TTT3—
0.024187(z-0.9672)
G1(z)=(z-1)(z-0.9018)
BodeDiagram
10°
10*10210y
Freguencv(rad/sec)
68
2015105
(qp)apmcs旻
2
2山03-1DDDO
・•••
S晏£
£
0書一
82oD
Rwl&
阳
步腺5模拟仿真
求离散系统的闭环传递函数和连续系统的闭环传递函数。
离散系统的闭环传递函数为:
—D(z)Gl{z)
•CZ"
i+D(z)Gl(z)
连续系统的闭环传递函数为:
D⑸G⑸
』+D(s)G(s)
用MATLAB算TRcz与TRcs:
trcz=dz*glz/(l+dz*glz)
结果为:
014776(z-0.9048)(z-0.9048)(z-1)(z-0.4545)(z+0.9672)(z-0.4545)(z-0.9047)(z-0.9048)(z-1)(Z2-L307z+0.5975)
160s(s^2f(s^15)s(s^!
5)(s+2产(J+25s+260)
用MATLAB函数STEP画阶跃响应图形:
holdon%图形保持
stepltrcs/r1^)%®
i连续系统的阶跃响应图,红色,终止时间为2秒
响应图形为:
14
a)pn二IdEV
StepResponse
02
1.6182
002040608112
Time(sec)
步骤6求数字控制湍的时域表达式
s+2
上面已经求出•连续传递函数D(s)=8•二■丄的tustin离散式为s+丄。
隔=竺=和妙(“0.如8)=6逊十占7尹,或此)=6“如⑵_5Q7E⑵尸+0.45航⑵汀。
E(n)2-0.45452-0.4545z"
1
对上式取z反变换.得时域表达式u(k)=61091e(k)-5.527e{k-l)+0.4545u(k-l}•根据此式就可以写岀讣算u(k)的
程序代码來了。
除上述步骤之外,在编写程序代码时,还需要考虏几个问题:
1ADC位数
ADC位数是一个换件问题,在系统设计时.就应该结合控制算法.仔细分析ADC位数对控制精度的影响。
2数据类型
在控制算法中有3种数据类型可以采用:
无符号整数,定点数.浮点数。
我们知道•无符号整数运算既是最简讯和速
度最快的运算,又是定点数运算和浮点数运算的基础。
在数据动态范鬧比较小的情况下.应尽可能用无符号整数运算代替
定点数运算和浮点数运算。
浮点数运算是一整套运算,包括加•减•乘•除,对阶,规格化,溢出处理等一系列子程序.使用浮点数的程序.将占用
比较女的代码空间和比较长的运行时间。
不论使用汇编语言还是c语言.对干是否使用浮点数运算.都应进行比较仔細的酌
3数值il算误差
数值汁算引入的误差有3个方面,一是定点数字长不够或者浮点数有效数字过少.一是两个相近的数相减,一是加减
乘除次数过女。
在程序设汁中.应优化算法以避免计算误差的引入。
1.建立5降拆传递函数
1建立多项式型s降强传递函数
方法1.sys=tffnum.den)
方法2・s=tf(,s,),再令sys=f(s)
例:
已知fU
G。
以零极点形式给出,即已知陽=
第二节在MATLAB中离散化
•用tf函数建立多项式型S降珞传递函数.G0=tr([1.55],[0.251^510]).若
39"
*+耳,仍可用廿函数建立多项式型S降幕传递函数.但需用多项式乘法
s(s+Q(ONs+2)
函数conv配合,GO=tf(conv([3)4l]),conv(conv([l0]z[l!
]),[1]))
2建立零极点型s传递函数
方法1・sys=zpk(z,p,k)
方法2.s=zpk(,s'
)>
再令sys=f(s)o
2.传递函数的转换
1将任总形式的s传递函数转换为s降幕传递函数sys=tf(sys)
2将任懑形式的s传递函数转换为s零极点传递函数sys=zpk(sys)
3.建立z传递函数
①将连续传递函数转换为离散传递函数
sysd=c2d(sysc丄method)
2建立多项式形式的Z传递函数
方法1.sys=tffnum.den,t)
方法2・z=tf忆t),再令sys=f(z)
3建立零极点Z传递函数
方法1・sys二zpk(z,p,k,t)
方法2.z=zpk(,z,/t),再令sys=f(z)
4.建立z・l格式的传递函数
直接根据分子和分母建立Z1格式的传递函数sys_z=filt(num,den,t)
X已有女项式形式的Z降每传递函数时.按以下步骤:
1取Z降拣传递函数a的分子参项式系数[num.den]=tfdatafsys.s/v1)
2建立格式的传递函数sys-z=filt(num/den/t)
5.将女项式形式的商阶Z'
l降幕传递函数转换为并联传递函数,按以下步骤:
1〃于•工"
将Z'
1降幕传递函数a改写成多项式形式的Z降幕传递函数bo
2取Z降幕传递函数b的分子多项式系数num和分母多项式系数den.
3利用residue函数取Z降幕传递函数b的分项分式,[anadak]=residue(nun%den)。
分项结果可能出现共純复数,在这种情况下应将含有共牠复数的分式合并成二次有理质分式。
4根据分项结杲于•匸写出Z降幕多项式形式的并联表达式。
⑤“于•工"
将Z降探多项式形式的并联表达式改写成z"
降幕女项式形式的并联表达式。
©
〃于•丄"
对Z'
l降幕女项式形式的并联表达式中的每一个分式项降阶.即将每一个分式项变形•使得分式项的分子的
阶次比分母的阶次低1阶,
变形完毕再将全部常数项合并。
举例
设有庄降显传递函数
02+0186^^0.0864z^2
7「二7尹-心7尹
改写成z降探传递函数
—士也竺也竺1
収分项矢虽
[anadak]=residue(nz,dz)
an=(]
ad=[
ak=
于•I:
写分项分式
0.51010.5101Z
0.5101
z-1
令tzzpl=
1-z
验证
实际上.
-0.1971-0.1971^
=r=0.73+
z-0.272—0.27才・
-0.73
1-0.27ZT1
虫*2-—0.27尹
又令tzp3=0J-0.5101^0.73=0.3199
0.73
tz^O=tz』3+tz+tzjp2=0.3299+一;
j一尹1-£
0.730.1+0.186才'
+0.086372T2
。
.如-壬’一.—刀尹
大女数数字控制辭的传递函数都是一阶或者二阶的.所以需耍分解的并不是很笋。
6.将商阶Z'
1降探传递函数生成串联传递函数
使用zpk函数sys_zpk=zpk(sys_pl)
零极点的概念是相对干z而不是相对于Z1说的,但对于以z'
l为变虽的降幕传递函数sys_pl來说•仍然可以用zpk(sys_pl)生成以为变量的因式积形式传递函数.权且也称为零极点形式。
zpk函数对干z降紹传递函和z'
l降幕传都能得到合理的结果,原因是zpk函数的作用就是把分子女项式和分母女项式分别进行因式分解。
第三节延时环节e-Ts的处理
在建立s传递函数的lti模型时.对干延时环节eA可按如下方法处理:
1.在tf函数中使用屈性"
inputdeiy或者lodel/,例如:
»
tf([l-1],[135]/inputdelay1,
将返回以下形式的传递函数
s-1
exp*s)拿
sA2+3s+5
使用这个方法不能建立形如一的传递函数.因为带延时的传递函数不能与不带延时的传递函数相加.但可
S
以使用C2d进行离散化,但要求延时时间t必须是采样时间t的整数倍.若不是整数倍,则在转换时不理会延时环节•例如:
用tf函数建立2个传递函数.主体部分相同.但一个无输入延时.一个有输入延时.
a=tf([l-lL[145])s-1
sA2+4s+5
al=tf([l-l]4145]/iodelay\s-1
exp*s)*
若采样时间为•因为延时时间是采样时间的整数倍.转换结果的主体部分完全一样:
c2d(a//imp,)zH・z+
samplingtime:
zT・z+
c2d(alz/imp'
)
zA2
zA(-7)•samplingtime:
zA2-z+
若采样时间为•因为延时时间不是采样时间的整数倍.结果的主体部分不一样:
c2d(a//,imp,)22•z+
c2d(alz/imp'
)z-
samplingtime:
zA2・z+
2.
故ts=G(s)亍'
uG(s)
_七_r(s)丽
T
将e'
Ts有理化
设方=G(s)eTs,We'
Ts的一阶有理表达式是〜一二=——M
1+-Tss+二2T
为了对ts进行离散化•首先使用tf函数建立Iti模型的ts。
若ts=tf(nfd}•则tz=c2d{ts,At,'
jjrp1)□
3.在离散化时使用恒等式厂“=「立=
设ts=G(s)e'
7\Wz"
=e采样时间为ZU,若T=mAt.则ts=G(s)z^.因为离散化时总是认为T=l-At,故
取t;
s=G(s)z*o
根据以上假设•用MATLAB的C2d函数对g(S)进行离散化,则倉_0=o2&
去△匕‘咛‘),进而Gz^Gz_Oz\则sys_z=sys^zazn。
笫四节控制函数分类
以下函数在controltoolbox中.这里所述仅限于引so模型
1创建女项式形式的传递函数
sys=tf(num,den)创建一个S降幕多项式连续传递函数sys,分子女项式系数和分鯨藝项式系数分别为num和den。
sys=tffnum.den,t)创建一个Z降探离散传递函数sys.t是采样时间,行矢虽num和den同上。
sys=tf(sys)把一个任意的Iti模型sys转换成女项式传递函数,例如把零极点模型转换成筝项式传递函数。
sys=廿创建一个空的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,采样时间是仁
在零极点对象中,如果没有零点,PMz=(h
sys=zpk创建一个空的零极点对欧。
sys=zpk(d)抬定静态増益d«
3创建任总形式的传递函数
s=tf(,sl)抬定女项式传递函数变虽为s变虽
z=tfCz\t)抬定多项式传递函数变址为Z变虽.t为采样时间
形如
10
s(0.25s^1){0.05s^1)
的传递函数,既不能直接用tf函数建立.也不能直接用zpk函数建立。
定义/xtf(M)后,写出赋值式f=10/(sT+l)“s+l)),回午后即可得到女项式型传递函数f=
0.0125丹+0・3sP+s
再令fl=zpk(f),可得£
=
800
s20)(s+4)
s=zpk(<
)指定零极点传递函数变虽为S变量
s(s+20)(s+4)
z二zpk(匕t)指定零极点传递函数变虽为Z变址,t为采样时间
定义fs=zpkCs1)・写出賦值式f=10/(s“s+l)r+l))・回午后即可得到零极点型传递函数勺=4建Hz"
降探离散传递函数
SYS=filt(num,den,t)返回小降探离散传递函数.num和den分别是分子和分僚多项式系数,t是采样时间。
sys=filt(m)返回増益离散传递函数。
5连续函数离散化
sysd=c2d(sysc丄method)把连续传递函数sysc转换成采样时间为t的离散传递函数.字符串method为离散化方法:
'
zoF(零阶保持,即阶跃响应不变).,foh,(-阶保持),皿“冲击响应不变“6以上版木).'
tustin*(双线性近似),"
prewarp^Jr预崎变的双线性近似),matched^零极点匹配)。
注:
①缺省的方法是'
zoh,
②’foh,的算法是D(z)=Z【三2-]上二三二而不是62=Z[D(s)竺二1上二二1,这一点可以通过验证证实,验fTsT"
才=
证方法是,令以2)=°
勿(学,丁,,注,)三二^二,但此结果中,Q(z)的分子和分母将含有公因式,所以应进一步用
zpk函数把D(z)表示成寥极点形式,然后用〃手工"
的方法写出不含公因式的D(z)來.可以看到,最后的结果与用foh方法
得到的结果完全一致。
3十使用'
prewarp*方法时■临界频率wc(inrad/sec)作为第四个输入來抬定,如sysd=c2d(sysgprewarp;
wc)=>另有1种形式
是,opt=c2dOptions(,Methocl7tustin,;
PrewarpFrequency'
/.5)/c2d(dsz.05zopt)。
6取藝项式模型传递函数的分子和分母的系数矢虽
[num^en]=tfdatafsys/v*)对于siso模型sys返回作为分子和分俅系数的讯行矩阵num和denD
[num.den.t]=tfdatafsys/v'
)同上,同时返回采样时间t。
7取零极点模型传递函数的零点和极点的笊行矩阵
[z.p.k]=zpkdata(syszV)返回Iti模型sys的零极点矢量Z和p.增益k。
8取&
Ts近似式
[num.den]=pade(t#n)返回e•&
的n阶pade近似式,行矢虽num和den是s的降無多项式系数。
e・Ts的一阶有理表达式是
1--TS
1+尹
s+一T
e•&
的岛阶有理表达式是
-Ts
e
_仏+空一型+
2848
二{Ts)2(Ts)3
2+—Ts+—+
28
48
9画阶跃响应图
step(sys)ilfli出由tf,zpk.orss等函数创建的Iti模型sys的阶跃响应图。
step(sysztfinal)画出Iti模型sys从t=0到Utfinal的阶跃响应图。
对于未指定采样时间的离散模型.tfinal被解释为采样的
数目。
step(sys,t)使用州户提供的矢量t画阶跃响应图。
对于离散时间模型,t的形式应该是ti:
t:
tf,在这里,t是采样时
间。
对干连续时间模型.t的形式应该是ti:
dt:
tf・在这里.dt变成对干连续系统的近似离散化的采样时间。
「是开始时间,
tf是终止时间°
因为阶跃输入总是假定在t=0开始,所以通常不考虑ti和tf,即只使用一个终止时间仁
stepfsysl.sys^..,!
)在一个单个的图上Bi出多个Itl模型sysl,sys2....的阶跃响应图,时间矢量t是可选择.还可以以stepfsysl,rzsys2,y,sys3,gx)的方式对每一个系统指定颜色,线型和标记。
(y,tj=step(sys)返回用于仿真的时间t的输出响应y.但并没有图形画在屏幕上,如果sys有ny输出和nu输入和It=length(t),y就是一个尺寸为(Itnynu](l-J阵列.而y(,j)给出第j个输入通道的阶跃响应。
10画脉冲响应图
impulse脉冲响应函数,用法与step相同
11画频率响应图-伯徳图(连续或离散)
bode(sys)画伯徳图
bodefsysjwml^wmax})在频率wmin.wmaxfinradians/second)之间画伯徳图
bode(sys’w)按指定的频率矢:
S:
w(inradians/second)i«
ii(fl徳图
bode(sysl,sys2/...)i®
多个Iti模型sysl,sys2,…的伯德图
bode(sysl,sys2,.../w)按指定的频率矢虽w(inradians/second)画炙个Iti模型sysl.sys2....的伯徳图
以下函数在符号工具箱symbolick中,需注总:
.在使用这些函数前.要对所使用的变虽进行符号说明•例如:
symsat%是用空格分隔而不是用逗号分隔
a=sin(t)
12福里哀变换fourier
反福里哀变换ifourier
13拉普拉斯变换laplace
反拉普拉斯变换ilaplace
14z变换ztrans
反z变换iztrans
以上3种变换必须是符号表达式,例如:
symst
laplace(sin(t))
15改善公式的可读性pretty
16多项式转换为符号表达式poly2sym
17化简符号表达式simplify
18取符号表达式的分子和分母numden
以下函数在符号工具箱polyfun中.在公式变换中可能会用到
19部分分式展开[anadak]=residue(nzd)
n和d分别为原分式的分子和分母矢址.an和ad分别为分项式的分子和分母矢虽,ak为整式部分。
这是一个数学公式,在数字控制器程序设汁中,利用部分分式展开的方法,把商于2阶的分式变换为不商于2阶的分式之和.从而把商阶传递函数算法变为低阶传递函数并联的算法。
在使用这个方法时,不论在分子矢虽中还是在分母矢虽中.如果有共觇复数出现,则应将其整合为2阶质因式。
20多项式乘法c=convfa.b)axb=c
21多项式除法[q#r]=deconv(b#a)bva=q...r,即b=conv(a,q)+r
第二章离散化算法
连续传递函数离散化的核心环节.就是将控制器的S传递函数转换为Z传递函数。
离散化后•系统应该仍有好的稳定性,好的控制精度,而不是要求转换前后•两个数学公式等值。
伏I此,离散化方法有女种。
木疏对这些方法的转换原理和由來进行了演绎。
离散化后得到的离散传递函数的稳定性,没有进行讨论•仅列了一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 连续 传递函数 离散 方法 原理
![提示](https://static.bingdoc.com/images/bang_tan.gif)