一、数值积分算法
1.前向差分(显式欧拉法)
使用前向差分代替导数
f
n
′
=
y
n
+
1
−
y
n
h
f'_{n}=\frac{y_{n+1}-y_{n}}{h}
fn′=hyn+1−yn
优点:迭代仿真算法可直接写出,不用解隐式方程
缺点:对微分器的离散非因果,所以PID算法用不了
2.后向差分(隐式欧拉法)
使用前向差分代替导数
f
n
′
=
y
n
−
y
n
−
1
h
f'_{n}=\frac{y_{n}-y_{n-1}}{h}
fn′=hyn−yn−1
优点:一定稳定,传递函数直接代入
s
=
1
−
z
−
1
T
s=\frac{1-z^{-1}}{T}
s=T1−z−1可得出差分方程
缺点:隐式方法仿真无法迭代(可以整理出差分表达式)
注:以上参考了《前向后项差分和显式隐式欧拉法》
3.双线性变换法(隐式梯形法)
传递函数直接代入
s
=
2
T
1
−
z
−
1
1
+
z
−
1
s=\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}
s=T21+z−11−z−1可得出差分方程
MATLAB使用c2d(sys,T,‘tustin’);
4.四阶龙格库塔法等其他数值积分方法、预估 - 校正方法
总结:控制算法实现不考虑仿真迭代能否实现,因为都可以整理出差分方程;一般不用前向差分。
二、离散相似算法
1.单位冲击响应不变法,即直接z变换
c2d(sys,T,‘impluse’);
优点:频域畸变小
缺点:单位阶跃响应有误差
2.零阶保持器法
c2d(sys,T,‘zoh’); %默认选项
其他保持器,零极点匹配等方法······
(以上内容均为自己思考所得,如有错误和疏漏,感谢大家指正)