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

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

目录

第一章模拟化设计基础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 2D 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)方法,将对象20G 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 2D s 8s 15+=+⋅()的tustin 离散式为

1

1U z 61091z 09048 6.1091-5.527z D z E z z 0454*******z ---===--().(.)()()..,或 11U 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) %画连续系统的阶跃响应图,红色,终

相关文档
最新文档