Try   HackMD

Discrete-Time Integrator Compare

Perform discrete-time integration or accumulation of signalexpand

https://www.mathworks.com/help/simulink/slref/discretetimeintegrator.html

gainK=1

Forward Euler Method

(1)x(n+1)=x(n)+KTu(n)(2)y(n)=x(n)

find the

y(n)


y(n+1)=x(n+1)from (2)y(n+1)=x(n)+KTu(n+1)from (1)y(n+1)=y(n)+KTu(n+1)substitute x(n) from (2)y(n)=y(n1)+KTu(n)make u(n) is now

tag_angle_integral = tag_angle_integral + tag_angle * update_rate_;

Trapezoidal Method

(3)x(n)=y(n1)+KT/2u(n1)(4)y(n)=x(n)+KT/2u(n)

find

y(n)


y(n)=y(n1)+KT/2u(n1)+KT/2u(n)substitute (4) into x(n)

tag_angle_integral =    tag_angle_integral + 
                        last_tag_angle * 0.5 * update_rate_ + 
                        tag_angle * 0.5 * update_rate_;

反正微分都會多浪費一個記憶體了,就用Trapezoidal Method