diff --git a/docs/simplefoc_library/digging_deeper/theory/low_pass_filtering.md b/docs/simplefoc_library/digging_deeper/theory/low_pass_filtering.md index cea8644..bc72835 100644 --- a/docs/simplefoc_library/digging_deeper/theory/low_pass_filtering.md +++ b/docs/simplefoc_library/digging_deeper/theory/low_pass_filtering.md @@ -24,11 +24,13 @@ v_f(k)=\frac{T_f}{T_f+T_s}v_f(k-1)+\frac{T_S}{T_f+T_s}v(k) $$ -其中vf(k)为k时刻的滤波值, v(k)k时刻的速度测量值, Tf是滤波时间常数,Ts是采样时间(或上述式子的时间间隔)。 +其中 vf(k) 为k时刻的滤波值, v(k)k 时刻的速度测量值, Tf 是滤波时间常数, Ts 是采样时间(或上述式子的时间间隔)。 这个低通滤波器也可以写成这样的形式: + $$ v_f(k)=\alpha v_f(k-1)+(1-\alpha)v(k) $$ + 其中: $$ @@ -38,7 +40,7 @@ $$ -上面的式子更直观地表示了在低通滤波器中常量Tf的意义。如果你的采样时间大约是1毫秒(对于arduino UNO,这可以作为平均值),那么设置 `T_f = 0.01` 将得到: +上面的式子更直观地表示了在低通滤波器中常量 Tf 的意义。如果你的采样时间大约是1毫秒(对于arduino UNO,这可以作为平均值),那么设置 `T_f = 0.01` 将得到: ```cpp alpha = 0.01/(0.01 + 0.001) = 0.91 diff --git a/docs/simplefoc_library/digging_deeper/theory/pid_controller.md b/docs/simplefoc_library/digging_deeper/theory/pid_controller.md index a0fe1a2..be77414 100644 --- a/docs/simplefoc_library/digging_deeper/theory/pid_controller.md +++ b/docs/simplefoc_library/digging_deeper/theory/pid_controller.md @@ -26,24 +26,28 @@ $$ 比例环: + $$ u_P(k)=P_e(k) $$ 积分环: + $$ u_I(k)=u_I(k-1)+I\frac{e(k)+e(k-1)}{2}T_s $$ 微分环: + $$ u_D(k)=D\frac{e(k)-e(k-1)}{T_s} $$ 其中 u(k) 为k时刻的控制信号(本例中为电压Uq) ,e(k),e(k-1)为当前时刻k和前一时刻k-1的跟踪误差,跟踪误差是指目标速度值 vd与实测速度 v之间的差异。 + $$ e(k)=v_d(k)-v_f(k) $$ @@ -130,4 +134,4 @@ class PIDController ```cpp motor.PID_velocity.P = 1; motor.P_angle.P = 10; -``` \ No newline at end of file +```