finesse.components.mechanical.SuspensionZPK
¶
Overview
- class finesse.components.mechanical.SuspensionZPK(name, *args, **kwargs)¶
Bases:
Connector
A suspension that models multiple poles and zeros for the z motion of an optic. ZPKs should describe the force to displacement transfer function. The user must ensure that minus signs are correct for this transfer function as well as defining complex conjugae pairs for physically correct behaviour.
ZPK terms are in units of radians.
The k gain parameter is a model parameter, so can be tuned and set to a symbol during a simulation. Zeros and poles however are fixed during a simulation.
- Parameters:
- namestr
Element name
- connected_toElement or mechanical port
Mechanical port or element to attach this suspension to
- z, parray[float] or None
Zeros and poles of the transfer function
- kfloat
Gain of the transfer function
Examples
Free mass can be implemented using two poles at 0Hz and a gain of 1/Mass:
import matplotlib.pyplot as plt model = finesse.Model() model.parse(''' l l1 m m1 R=1 T=0 link(l1, m1) fsig(1) frequency_response( geomspace(1, 100, 100), l1.amp, m1.mech.z ) ''') model.add(SuspensionZPK('m1_sus', model.m1.mech, [], [0, 0], 1/10)) # Generate a bode plot for looking at the suspension transfer function plt.figure() model.m1_sus.bode_plot(label='10kg') model.m1_sus.k = 1/100 model.m1_sus.bode_plot(label='100kg') plt.legend() # Compute the transfer function from laser amplitude to mirror motion plt.figure() out = model.run() out.plot();
Properties
Methods
|
|
|
Plot bode function for this suspensions force to displacement transfer function. |
|