连续系统如何离散化

最常见的两种方法就是欧拉法和塔斯汀法(Tustin's method,也叫bilinear transformation)。
欧拉法即为:

将传递函数中的s用这个替换即可。
这是因为s在拉普拉斯变换里面是微分,而

而z变换里面的z运算符即为:

微分关系即变为:


但是欧拉法用的是积分的矩形法则,效果有时并不好。所以又提出了根据梯形法则的塔斯汀法:

将C(s)里面的s都替换掉,变成z和C(z)就行了。

可以再matlab里面用c2d函数进行运算:
[numZ denZ]=c2d(num,den,'tustin')%bilinear method
欧拉法在matlab里面貌似已经是不支持了。

再说下z域里怎么写成差分方程。如果我们有控制器:

且n≥m,
将分式转换:

两边同除以

注意

让Y(z)=Y(k),U(z)=U(k)

那么就能得到k时刻Y的值了。


举个例子:

分式上下均除以z的平方:

进一步整理:

再把左边的部分项挪过来:

这样就知道k时刻控制器的输出是多少了,能在程序里面进行实现了。

你可能感兴趣的:(Matlab)