40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  Cryo Lab eLog  Not logged in ELOG logo
Entry  Fri Apr 3 15:21:38 2020, Ian MacMillan, Computing, Simulation, Moderinger Simulation 
    Reply  Mon Apr 13 17:30:35 2020, rana, Computing, Simulation, Moderinger Simulation 
    Reply  Wed Apr 22 15:03:59 2020, Ian MacMillan, Computing, Simulation, Moderinger Simulation Moderinger.pdfsimplemoderinger.slx
       Reply  Wed Apr 22 16:41:31 2020, rana, HowTo, Simulation, Moderinger Simulation 
          Reply  Thu Apr 23 13:30:51 2020, Ian MacMillan, HowTo, Simulation, Moderinger Simulation simplemoderinger.slx
             Reply  Fri May 1 03:22:05 2020, Ian MacMillan, HowTo, Simulation, Moderinger Simulation ModeringerSimV2Layout.pdfsimplemoderinger.slx
                Reply  Sun May 3 20:51:14 2020, Ian MacMillan, Computing, Simulation, Moderinger Simulation Moderinger_V2.zip
                   Reply  Tue May 5 13:04:23 2020, aaron, Computing, Simulation, Moderinger Simulation 
                      Reply  Tue Sep 29 02:02:54 2020, Ian MacMillan, Computing, Simulation, Moderinger Simulation ModeRingerLoop.pdfStepPlot.pdfPowerSpectrum.pdfModeRingerSim.zip
                         Reply  Tue Sep 29 11:00:53 2020, aaron, Computing, Simulation, Moderinger Simulation 
                            Reply  Thu Oct 8 00:31:11 2020, Ian MacMillan, Computing, Simulation, Moderinger Simulation ModeRingerLoopDig.pdfModeRingerSim.zip
                               Reply  Thu Oct 15 22:15:11 2020, Ian MacMillan, Computing, Simulation, Moderinger Simulation ModeRingerSpec.pdf
                   Reply  Tue May 5 13:05:36 2020, Ian MacMillan, Computing, Simulation, Moderinger Simulation ModeringerNotebook.ipynb
Message ID: 2530     Entry time: Tue May 5 13:04:23 2020     In reply to: 2529     Reply to this: 2571
Author: aaron 
Type: Computing 
Category: Simulation 
Subject: Moderinger Simulation 

Looks pretty good. I suspect you're getting the diverging solution because the Q term in the denominator of your resonator TF is not imaginary. This means that the resonator has no damping, and any drive would indeed lead to diverging amplitude.

You might need to define the TF from the command line function, rather than in the simulink block; I think the block throws an error when you give it complex coefficients. This is surprising to me, so maybe I'm missing something.

Edit: That's not it, I just wasn't thinking in s-domain.

Here are a few other things I notice about this model that might be important:

  • The first BP filter is specified in Hz, rather than rad/s. This means you're inadvertently BPing well away from the plant's resonance.
  • You're computing the 'amplitude' by low passing the bandpassed signal. But what's done in the model is an RMS followed by lowpass. That is, the squared signal is scaled and lowpassed. Otherwise, you should get zero (BP near 1kHz followed by LP at 10s of Hz, with no nonlinear steps => 0)
  • You don't have the loop shaping filter, typically included in the PWRCTRL filter module. This contains the integrator needed to reach the correct setpoint (on long time scales, else you'll reach some offset from the setpoint) and an extra zero to increase the UGF.
  • The butterworth LP on the lower path has a pretty high cutoff, usually I set this at a few to 10 Hz.
  • The saturation gives a clean square wave iff there is a large gain just before, otherwise it gives a square wave with some rise/fall time where the original sine was crossing zero.
    • This is the source of at least some problems. Whenever I was increasing this gain, I found the output of differentiator decreased proportionally. I was also eventually getting some errors from the saturation block about detecting too many zero crossings. Turning off zero crossing detection at the saturation block solved both of these issues. In retrospect, this makes sense -- zero crossing detection is meant to smooth out discontinuities by decreasing the step size until they go away; this block is intentionally introducing such a discontinuity.
  • The laplace transform of an exponentially decaying sine has all positive real coefficients in the denominator. While the frequency-domain transfer function is what Rana posted above and has a (omega_0^2-omega^2) term, in the laplace domain it's different. I'd guess this is why you're geting a divergence.
ELOG V3.1.3-