如何理解对连续系统传递函数Z变换

连续传递函数Z变换

我们知道对于连续传递函数,如果外部激励为脉冲信号 δ ( t ) \delta(t) δ(t) ,那么输出信号的拉式变化就是系统传递函数。那么如果对系统做Z变换也就等同于对冲激信号下的系统输出做Z变换,而将系统Z变换后给予离散下的冲激响应由Z变换两个相乘知其等于连续系统冲激输出下信号的Z变换。因此有如下结论:对连续系统Z变换保持了冲激响应在采样时刻的相同值。

  • 代码:
s = tf('s');
z = tf('z',0.5);
w = 1/(s+1);
ww = 1/(1-z^(-1)*exp(-0.5));
impulse(w,0.5*ww)

这里要注意impulse函数的用法,在帮助文档里写到:对于连续系统它给定就是冲激无穷大,对于离散系统它给定的是一个宽度为Ts,高度为1/Ts的脉冲,也就是说我这里给的Ts=0.5s,高度就为2,但是我们实际需要的是高度为1的冲激,因此最后需要乘0.5绘制图像。
在这里插入图片描述
我们清楚看到它们在采样时刻的响应值是相同的。
下面绘制连续系统和和其Z变换后系统的阶跃响应:

step(w,ww)

在这里插入图片描述
这个时候可能会有这么一个疑问:既然Z变换后的系统能保持冲激响应采样时刻不变,那么阶跃响应为无数冲激的累和,为什么上面两条曲线差别这么大?答案是step函数对于连续系统给的给定也是连续的1(t),而对离散系统给的是1(kT),如果想让连续系统的输出仍然保持采样时刻不变,那么输入就也一定要是1(KT),这个1(KT)理论上也是有s域象函数的,将其乘上系统连续传递函数后拉式反变换就能得到采样时刻相同的连续曲线了。 而在实际中,离散的信号的s域函数几乎是得不到的,如果我们还是想得到同样的效果,就只能先将连续传递函数乘上保持器的s域象函数后再Z变换,这样得到的离散传递函数无论输入是什么都能保证在采样时刻值相同。在matlab中可以使用c2d默认方法(零阶保持器)即可,其等效于:
D ( z ) = Z [ 1 − e − T s s × W ( s ) ] D(z) = Z[\frac{1-e^{-Ts}}{s}\times W(s)] D(z)=Z[s1eTs×W(s)]

猜你喜欢

转载自blog.csdn.net/weixin_43145941/article/details/105490773