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, yaw, or pitch motion of an optic. 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/s.

Parameters
namestr

Element name

connected_toElement or mechanical port

Mechanical port or element to attach this suspension to

zpk_plantdict

Dictionary of {(output, input):(z,p,k)}

Examples

>>> import matplotlib.pyplot as plt
>>> import finesse
>>> from finesse.components.mechanical import SuspensionZPK
>>>
>>> model = finesse.Model()
>>> model.fsig.f = 1
>>> model.parse("m m1 R=1 T=0")
>>> zpk_plant = {}
>>> # F_z to z (longitudinal force to displacement)
>>> zpk_plant['z', 'F_z'] = ([], [10], 1)
>>> model.add(SuspensionZPK('sus', model.m1.mech, zpk_plant))
>>> out = model.run("frequency_response(geomspace(1m, 100, 100), m1.mech.F_z, m1.mech.z)")
>>> plt.loglog(out.f, abs(out['m1.mech.F_z', 'm1.mech.z']))

Methods

SuspensionZPK.__init__(self, name, ...)

SuspensionZPK.fill(self, ws)