gwexpy.interop.control_

gwexpy.interop.control

Interoperability with the python-control library for control systems analysis.

Provides conversion between FrequencySeries and control.FRD (Frequency Response Data).

Functions

from_control_frd(cls, frd[, frequency_unit])

Create FrequencySeries from control.FRD.

from_control_response(cls, response, **kwargs)

Create TimeSeries or TimeSeriesDict from control.TimeResponseData.

to_control_frd(fs[, frequency_unit])

Convert FrequencySeries to control.FRD.

gwexpy.interop.control_.to_control_frd(fs: FrequencySeries, frequency_unit: Literal['rad/s', 'Hz'] = 'rad/s') control.FRD[source]

Convert FrequencySeries to control.FRD.

Parameters:
  • fs (FrequencySeries) – Input frequency response data. Frequencies are assumed to be in Hz.

  • frequency_unit (str, optional) – Unit for the frequency axis in the output FRD object. Either 'rad/s' or 'Hz'. Default is 'rad/s' (standard for control.FRD).

Returns:

Frequency response data object compatible with python-control.

Return type:

control.FRD

Examples

>>> from gwexpy.frequencyseries import FrequencySeries
>>> from gwexpy.interop.control_ import to_control_frd
>>> fs = FrequencySeries([1+0j, 0.5+0.5j], f0=1, df=1)
>>> frd = to_control_frd(fs)
gwexpy.interop.control_.from_control_frd(cls: Type[T_fs], frd: control.FRD, frequency_unit: Literal['Hz', 'rad/s'] = 'Hz') T_fs | FrequencySeriesMatrix[source]

Create FrequencySeries from control.FRD.

Parameters:
  • cls (type) – The FrequencySeries class to instantiate.

  • frd (control.FRD) – Frequency response data from python-control.

  • frequency_unit (str, optional) – Unit of the input FRD’s omega attribute. Either 'Hz' or 'rad/s'. Default is 'Hz' (output will be in Hz).

Returns:

The converted frequency response. Returns FrequencySeriesMatrix for MIMO systems.

Return type:

FrequencySeries or FrequencySeriesMatrix

Examples

>>> from gwexpy.frequencyseries import FrequencySeries
>>> from gwexpy.interop.control_ import from_control_frd
>>> # frd = control.frd(data, omega)
>>> # fs = from_control_frd(FrequencySeries, frd)
gwexpy.interop.control_.from_control_response(cls: Type[TimeSeries | TimeSeriesDict], response: control.TimeResponseData, **kwargs: Any) TimeSeries | TimeSeriesDict[source]

Create TimeSeries or TimeSeriesDict from control.TimeResponseData.

Parameters:
  • cls (type) – The TimeSeries (or TimeSeriesDict) class.

  • response (control.TimeResponseData) – The simulation result from python-control (e.g., from forced_response).

  • **kwargs (dict) – Additional arguments passed to the TimeSeries constructor (e.g., unit).

Returns:

The converted time-domain data.

Return type:

TimeSeries or TimeSeriesDict