finesse.components.mechanical.SuspensionTFPlant

Overview

class finesse.components.mechanical.SuspensionTFPlant(name, *args, **kwargs)

Bases: Connector

A customised suspension element that accepts arbitrary input and output nodes and a 2D array of control.TransferFunction objects that define a transfer function between each of them. See the Python Control package for more details on these.

  • Inputs and outputs must be named in the format port.name

  • Inputs must be unique to outputs

  • All plant transfer functions must have the same denominators

The mechanical port of other optical elements can be connected to this suspension by using the connections_to dictionary input. This takes the name of a port defined in this suspension and maps it to the mechanical port of another element.

The plant, inputs, and outputs cannot be changed once initialised. There is no KatScript interface for this component.

Parameters
namestr

Name of element

inputsarray_like, list

Sequence of inputs for this plant, should be strings of the format port.node

outputsarray_like, list

Sequence of outputs for this plant, should be strings of the format port.node

plantarray_like, list[list]

A 2D array of control.TransferFunction that describe the transfer function between each input to every output. Shape should be [len(outputs), len(inputs)]. Elements can also be None which means no coupling between each transfer function.

connections_todict[str: SignalNode], optional

Dict of port names at this suspension component and a mechanical port of some other element. Names of nodes at in each port should be identical. Keys of the dict should be in the format port.node. Values should be mechanical nodes of other elements.

Properties

SuspensionTFPlant.inputs

SuspensionTFPlant.outputs

SuspensionTFPlant.plant

Methods

SuspensionTFPlant.__init__(self, name, ...)

SuspensionTFPlant.bode(self, f, input_node, ...)

Make a bode plot for a particular node coupling for this suspension.

SuspensionTFPlant.connections_to