连续传递函数离散化的方法与原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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)。事实上,模拟控制器一般是已经设计好的,无法或不方便更改了,离散化后的系统只好作为近似设计了。 然而,按照上述思路,可否将已有的控制器除以一个零阶保持器再离散化呢还没有这方面的实际经验。
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 传递函数的数字控
直流增益 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 s2
()
()
=
+
带一阶保持器离散化的过程如下:
转换结果为:
D(z)
x u
e
-
D(z)=
6.1091(z-0.9048)
z-0.4545
G1(z)=Z(
1-e-Ts
s G(s))
G1(z)=
0.024187(z-0.9672)
(z-1)(z-0.9048)
步骤5 模拟仿真
求离散系统的闭环传递函数和连续系统的闭环传递函数。
离散系统的闭环传递函数为:
CZ
D z G1z
TR
1D z G1z
()()
()()
=
+
连续系统的闭环传递函数为:
CS
D s G s
TR
1D s G s
=
+
()()
()()
用MATLAB算TR CZ与TR CS:
结果为:
trcz=dz*g1z/(1+dz*g1z)
trcs=ds*gs/(1+ds*gs)
...... %模拟控制器D(s)转换为D(z)的过程见前
gs=zpk([ ],[0,-2],20) %建立对象的s传递函数
g1z=c2d(gs,,'zoh') %借用c2d函数进行带零阶保持器的对象的离散化