I don't have the solution for you. But if you want to create an algebraic filter, try making one outside of the loop control. and apply it on a signal (sinusoid) to check your algorithm. ( use a reverse integrator scheme)
in a control loop you can use a simple numerical derivative to compute y' (Euler is your friend)
after it is complicated because there is no rule, but you have to filter something: the estimation of F or the new U* = (y'* -F(est))/alpha , it is necessary for stabilize the closed loop with a small time constant but not too large ( it is the problem of free model).
But you have to know that ipid works "well" on a process without dead time or gap time. if you want to create a drone it is "ok" but the tuning is empirical, for the rest change of method.
the last advice dont use ki and kd because it is in "redondance"( french word) with the recurence equation of your control ( it is my point of view) .
Good luck and think Relaxc ( the last generation control loop process)