最常见的两种方法就是欧拉法和塔斯汀法(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时刻控制器的输出是多少了,能在程序里面进行实现了。
连续系统如何离散化
最新推荐文章于 2024-02-21 13:34:02 发布