数字控制器,数字滤波器,通常都是开始有个s域的传递函数,最后要写到程序里面去,在程序中的表现形式就是差分方程。
研究matlab的各种转换方式
以一阶低通滤波器为例,
C= 1*10^-6; R =1000;
GRC=(1/(s*C))/(R+1/(s*C)) 写出器传递函数
画图伯德图,可验证公式算的接着频率和实际的截止频率是一致的。
再把s域中的传递函数转化为Z域的传递函数:
GRCz=c2d(GRC,Ts,'zoh') %s=(1-z^-1)/Ts
手动转换可以用简单的后向差分:s=(1-z^-1)/Ts; 还可以用matlab自动转换。
0.004988
---------
z - 0.995
然后看着这个z域的式子,写出差分方程就行了。分子是本次输入的系数,分母0.995是上次输出的系数
把传递函数用双线性变换化成下面的形式。再编程即可。