Reports until 15:50, Monday 01 October 2018
H1 ISC
jenne.driggers@LIGO.ORG - posted 15:50, Monday 01 October 2018 - last comment - 17:02, Monday 01 October 2018(44261)
Signal limiter, with no derivative discontinuities

In conversation with Stefan, I have created a "smooth limiter" that allows you to set an EPICS limit, but the signal that is limited doesn't have a discontinuity in the derivative. 

This will be particularly useful for ASC loops that have a large error signal when they are first engaged.  We want to implement a limit (as Stefan did in alog 44133), but we don't want a sharp derivative in the limited error signal, since that can cause trouble with our control filters (see the outmons in Stefan's attached plots, where there is a lot of hash when the error signal comes off the limit).  Having an error signal limiter should enable us to just turn on our ASC loops at full gain immediately, rather than constantly waiting for convergence before increasing gains, and not worry about large overshoots.  The smooth limiter lets us have those benefits, and should also prevent the transients in the control signals that are seen in Stefan's plots.

The transition between the y=x (no limit) region and the hard limit is done with a 2nd order polynomial, fit such that the derivative is matched at each of the transition regions (i.e. the derivative is 1 when it's on the y=x side, and the derivative is zero when it is on the y=limit side).  The size of the transition region is variable, and can be chosen by the user for each limiter via a smoothing parameter.  The attached plots show examples of a signal that has limits at +/-1, with various values of the smoothing parameter (0.1, 0.5, 1, 2).  The smoothing factor must be between (0,2].  Neither the smoothing factor nor the limit can be zero or negative - there is an abs() and lower limit saturation to enforce this, so that we don't divide by zero. 

Also attached is the simulink code for the library part.  We should be able to stick this at the error point of all of our ASC loops.  (Screens will need to be modified to reflect these new limiters....) 

In addition to the limiter itself, I add an offset just in front of the limiter.  Note that this offset does not have an on/off switch (just use zero if you don't want an offset), nor does it have a ramp ability.

Images attached to this report
Comments related to this report
jenne.driggers@LIGO.ORG - 17:02, Monday 01 October 2018 (44266)

I'm backing out this change for today.  See alog 44265 for my compiling error.