A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://python-control.readthedocs.io/en/stable/generated/control.FrequencyResponseData.html below:

control.FrequencyResponseData — Python Control Systems Library 0.10.2 documentation

Python Control Systems Library control.FrequencyResponseData
class control.FrequencyResponseData(frdata, omega[, smooth])[source]

Bases: LTI

Input/output model defined by frequency response data (FRD).

The FrequencyResponseData (FRD) class is used to represent systems in frequency response data form. It can be created manually using the class constructor, using the frd factory function, or via the frequency_response function.

Parameters:
frdata1D or 3D complex array_like

The frequency response at each frequency point. If 1D, the system is assumed to be SISO. If 3D, the system is MIMO, with the first dimension corresponding to the output index of the FRD, the second dimension corresponding to the input index, and the 3rd dimension corresponding to the frequency points in omega. When accessed as an attribute, frdata is always stored as a 3D array.

omegaiterable of real frequencies

List of monotonically increasing frequency points for the response.

smoothbool, optional

If True, create an interpolation function that allows the frequency response to be computed at any frequency within the range of frequencies give in omega. If False (default), frequency response can only be obtained at the frequencies specified in omega.

dtNone, True or float, optional

System timebase. 0 (default) indicates continuous time, True indicates discrete time with unspecified sampling time, positive number is discrete time with specified sampling time, None indicates unspecified timebase (either continuous or discrete time).

squeezebool

By default, if a system is single-input, single-output (SISO) then the outputs (and inputs) are returned as a 1D array (indexed by frequency) and if a system is multi-input or multi-output, then the outputs are returned as a 2D array (indexed by output and frequency) or a 3D array (indexed by output, trace, and frequency). If squeeze = True, access to the output response will remove single-dimensional entries from the shape of the inputs and outputs even if the system is not SISO. If squeeze = False, the output is returned as a 3D array (indexed by the output, input, and frequency) even if the system is SISO. The default value can be set using config.defaults['control.squeeze_frequency_response'].

sysnamestr or None

Name of the system that generated the data.

Attributes:
complexarray

Complex value of the frequency response.

magnitudearray

Magnitude of the frequency response.

phasearray

Phase of the frequency response.

frequency1D array

Frequencies at which the response is evaluated.

ninputs, noutputsint

Number of input and output signals.

shapetuple

2-tuple of I/O system dimension, (noutputs, ninputs).

input_labels, output_labelsarray of str

Names for the input and output signals.

namestr

System name. For data generated using frequency_response, stores the name of the system that created the data.

Other Parameters:
plot_typestr, optional

Set the type of plot to generate with plot (‘bode’, ‘nichols’).

titlestr, optional

Set the title to use when plotting.

plot_magnitude, plot_phasebool, optional

If set to False, don’t plot the magnitude or phase, respectively.

return_magphasebool, optional

If True, then a frequency response data object will enumerate as a tuple of the form (mag, phase, omega) where where mag is the magnitude (absolute value, not dB or log10) of the system frequency response, phase is the wrapped phase in radians of the system frequency response, and omega is the (sorted) frequencies at which the response was evaluated.

Notes

The main data members are omega and frdata, where omega is a 1D array of frequency points and and frdata is a 3D array of frequency responses, with the first dimension corresponding to the output index of the FRD, the second dimension corresponding to the input index, and the 3rd dimension corresponding to the frequency points in omega. For example,

>>> frdata[2,5,:] = numpy.array([1., 0.8-0.2j, 0.2-0.8j])   

means that the frequency response from the 6th input to the 3rd output at the frequencies defined in omega is set to the array above, i.e. the rows represent the outputs and the columns represent the inputs.

A frequency response data object is callable and returns the value of the transfer function evaluated at a point in the complex plane (must be on the imaginary axis). See FrequencyResponseData.__call__ for a more detailed description.

Subsystem response corresponding to selected input/output pairs can be created by indexing the frequency response data object:

subsys = sys[output_spec, input_spec]

The input and output specifications can be single integers, lists of integers, or slices. In addition, the strings representing the names of the signals can be used and will be replaced with the equivalent signal offsets.

Attributes

complex

Complex value of the frequency response.

dt

System timebase.

frequency

Frequencies at which the response is evaluated.

fresp

input_labels

List of labels for the input signals.

magnitude

Magnitude of the frequency response.

ninputs

Number of system inputs.

noutputs

Number of system outputs.

nstates

Number of system states.

output_labels

List of labels for the output signals.

phase

Phase of the frequency response.

repr_format

String representation format.

response

shape

2-tuple of I/O system dimension, (noutputs, ninputs).

squeeze

Squeeze processing parameter.

state_labels

List of labels for the state signals.

Methods

__call__

Evaluate system transfer function at point in complex plane.

append

Append a second model to the present model.

bandwidth

Evaluate bandwidth of an LTI system for a given dB drop.

bode_plot

Generate a Bode plot for the system.

copy

Make a copy of an input/output system.

damp

Natural frequency, damping ratio of system poles.

dcgain

Return the zero-frequency (DC) gain.

eval

Evaluate a transfer function at a frequency point.

feedback

Feedback interconnection between two FRD objects.

find_input

Find the index for an input given its name (None if not found).

find_inputs

Return list of indices matching input spec (None if not found).

find_output

Find the index for a output given its name (None if not found).

find_outputs

Return list of indices matching output spec (None if not found).

find_state

Find the index for a state given its name (None if not found).

find_states

Return list of indices matching state spec (None if not found).

forced_response

Generate the forced response for the system.

freqresp

(deprecated) Evaluate transfer function at complex frequencies.

frequency_response

Evaluate LTI system response at an array of frequencies.

impulse_response

Generate the impulse response for the system.

initial_response

Generate the initial response for the system.

isctime

Check to see if a system is a continuous-time system.

isdtime

Check to see if a system is a discrete-time system.

ispassive

Indicate if a linear time invariant (LTI) system is passive.

issiso

Check to see if a system is single input, single output.

nichols_plot

Generate a Nichols plot for the system.

nyquist_plot

Generate a Nyquist plot for the system.

plot

Plot the frequency response using Bode or singular values plot.

set_inputs

Set the number/names of the system inputs.

set_outputs

Set the number/names of the system outputs.

set_states

Set the number/names of the system states.

step_response

Generate the step response for the system.

to_pandas

Convert response data to pandas data frame.

to_ss

Convert to state space representation.

to_tf

Convert to transfer function representation.

update_names

Update signal and system names for an I/O system.

__add__(other)[source]

Add two LTI objects (parallel connection).

__call__(x=None, squeeze=None, return_magphase=None)[source]

Evaluate system transfer function at point in complex plane.

Returns the value of the system’s transfer function at a point x in the complex plane, where x is s for continuous-time systems and z for discrete-time systems. For a frequency response data object, the argument should be an imaginary number (since only the frequency response is defined) and only the imaginary component of x will be used.

By default, a (complex) scalar will be returned for SISO systems and a p x m array will be return for MIMO systems with m inputs and p outputs. This can be changed using the squeeze keyword.

To evaluate at a frequency omega in radians per second, enter x = omega * 1j for continuous-time systems, x = exp(1j * omega * dt) for discrete-time systems, or use the frequency_response method.

If x is not given, this function creates a copy of a frequency response data object with a different set of output settings.

Parameters:
xcomplex scalar or 1D array_like

Imaginary value(s) at which frequency response will be evaluated. The real component of x is ignored. If not specified, return a copy of the frequency response data object with updated settings for output processing (squeeze, return_magphase).

squeezebool, optional

Squeeze output, as described below. Default value can be set using config.defaults['control.squeeze_frequency_response'].

return_magphasebool, optional

(x = None only) If True, then a frequency response data object will enumerate as a tuple of the form (mag, phase, omega) where where mag is the magnitude (absolute value, not dB or log10) of the system frequency response, phase is the wrapped phase in radians of the system frequency response, and omega is the (sorted) frequencies at which the response was evaluated.

Returns:
frdatacomplex ndarray

The value of the system transfer function at x. If the system is SISO and squeeze is not True, the shape of the array matches the shape of x. If the system is not SISO or squeeze is False, the first two dimensions of the array are indices for the output and input and the remaining dimensions match x. If squeeze is True then single-dimensional axes are removed.

Raises:
ValueError

If s is not purely imaginary, because FrequencyResponseData systems are only defined at imaginary values (corresponding to real frequencies).

__mul__(other)[source]

Multiply two LTI objects (serial connection).

__neg__()[source]

Negate a transfer function.

__radd__(other)[source]

Right add two LTI objects (parallel connection).

__rmul__(other)[source]

Right Multiply two LTI objects (serial connection).

__rsub__(other)[source]

Right subtract two LTI objects.

__rtruediv__(other)[source]

Right divide two LTI objects.

__sub__(other)[source]

Subtract two LTI objects.

__truediv__(other)[source]

Divide two LTI objects.

append(other)[source]

Append a second model to the present model.

The second model is converted to FRD if necessary, inputs and outputs are appended and their order is preserved.

Parameters:
otherLTI

System to be appended.

Returns:
sysFrequencyResponseData

System model with other appended to self.

bandwidth(dbdrop=-3)[source]

Evaluate bandwidth of an LTI system for a given dB drop.

Evaluate the first frequency that the response magnitude is lower than DC gain by dbdrop dB.

Parameters:
dbdropfloat, optional

A strictly negative scalar in dB (default = -3) defines the amount of gain drop for deciding bandwidth.

Returns:
bandwidthndarray

The first frequency (rad/time-unit) where the gain drops below dbdrop of the dc gain of the system, or nan if the system has infinite dc gain, inf if the gain does not drop for all frequency.

Raises:
TypeError

If sys is not an SISO LTI instance.

ValueError

If dbdrop is not a negative scalar.

bode_plot(*args, **kwargs)[source]

Generate a Bode plot for the system.

See bode_plot for more information.

property complex

Complex value of the frequency response.

Value of the frequency response as a complex number, indexed by either the output and frequency (if only a single input is given) or the output, input, and frequency (for multi-input systems). See FrequencyResponseData.squeeze for a description of how this can be modified using the squeeze keyword.

Input and output signal names can be used to index the data in place of integer offsets.

Type:

1D, 2D, or 3D array

copy(name=None, use_prefix_suffix=True)[source]

Make a copy of an input/output system.

A copy of the system is made, with a new name. The name keyword can be used to specify a specific name for the system. If no name is given and use_prefix_suffix is True, the name is constructed by prepending config.defaults['iosys.duplicate_system_name_prefix'] and appending config.defaults['iosys.duplicate_system_name_suffix']. Otherwise, a generic system name of the form ‘sys[<id>]’ is used, where ‘<id>’ is based on an internal counter.

Parameters:
namestr, optional

Name of the newly created system.

use_prefix_suffixbool, optional

If True and name is None, set the name of the new system to the name of the original system with prefix config.defaults['duplicate_system_name_prefix'] and suffix config.defaults['duplicate_system_name_suffix'].

Returns:
InputOutputSystem
damp()[source]

Natural frequency, damping ratio of system poles.

Returns:
wnarray

Natural frequency for each system pole.

zetaarray

Damping ratio for each system pole.

polesarray

System pole locations.

dcgain()[source]

Return the zero-frequency (DC) gain.

dt

System timebase.

eval(omega, squeeze=None)[source]

Evaluate a transfer function at a frequency point.

Note that a “normal” FRD only returns values for which there is an entry in the omega vector. An interpolating FRD can return intermediate values.

Parameters:
omegafloat or 1D array_like

Frequency(s) for evaluation, in radians per second.

squeezebool, optional

If squeeze = True, remove single-dimensional entries from the shape of the output even if the system is not SISO. If squeeze = False, keep all indices (output, input and, if omega is array_like, frequency) even if the system is SISO. The default value can be set using config.defaults['control.squeeze_frequency_response'].

Returns:
frdatacomplex ndarray

The frequency response of the system. If the system is SISO and squeeze is not True, the shape of the array matches the shape of omega. If the system is not SISO or squeeze is False, the first two dimensions of the array are indices for the output and input and the remaining dimensions match omega. If squeeze is True then single-dimensional axes are removed.

feedback(other=1, sign=-1)[source]

Feedback interconnection between two FRD objects.

Parameters:
otherLTI

System in the feedback path.

signfloat, optional

Gain to use in feedback path. Defaults to -1.

find_input(name)[source]

Find the index for an input given its name (None if not found).

Parameters:
namestr

Signal name for the desired input.

Returns:
int

Index of the named input.

find_inputs(name_list)[source]

Return list of indices matching input spec (None if not found).

Parameters:
name_liststr or list of str

List of signal specifications for the desired inputs. A signal can be described by its name or by a slice-like description of the form ‘start:end` where ‘start’ and ‘end’ are signal names. If either is omitted, it is taken as the first or last signal, respectively.

Returns:
list of int

List of indices for the specified inputs.

find_output(name)[source]

Find the index for a output given its name (None if not found).

Parameters:
namestr

Signal name for the desired output.

Returns:
int

Index of the named output.

find_outputs(name_list)[source]

Return list of indices matching output spec (None if not found).

Parameters:
name_liststr or list of str

List of signal specifications for the desired outputs. A signal can be described by its name or by a slice-like description of the form ‘start:end` where ‘start’ and ‘end’ are signal names. If either is omitted, it is taken as the first or last signal, respectively.

Returns:
list of int

List of indices for the specified outputs.

find_state(name)[source]

Find the index for a state given its name (None if not found).

Parameters:
namestr

Signal name for the desired state.

Returns:
int

Index of the named state.

find_states(name_list)[source]

Return list of indices matching state spec (None if not found).

Parameters:
name_liststr or list of str

List of signal specifications for the desired states. A signal can be described by its name or by a slice-like description of the form ‘start:end` where ‘start’ and ‘end’ are signal names. If either is omitted, it is taken as the first or last signal, respectively.

Returns:
list of int

List of indices for the specified states..

forced_response(*args, **kwargs)[source]

Generate the forced response for the system.

See forced_response for more information.

freqresp(omega)[source]

(deprecated) Evaluate transfer function at complex frequencies.

property frequency

Frequencies at which the response is evaluated.

Type:

1D array

frequency_response(omega=None, squeeze=None)[source]

Evaluate LTI system response at an array of frequencies.

See frequency_response for more detailed information.

impulse_response(*args, **kwargs)[source]

Generate the impulse response for the system.

See impulse_response for more information.

initial_response(*args, **kwargs)[source]

Generate the initial response for the system.

See initial_response for more information.

property input_labels

List of labels for the input signals.

isctime(strict=False)[source]

Check to see if a system is a continuous-time system.

Parameters:
strictbool, optional

If strict is True, make sure that timebase is not None. Default is False.

isdtime(strict=False)[source]

Check to see if a system is a discrete-time system.

Parameters:
strictbool, optional

If strict is True, make sure that timebase is not None. Default is False.

ispassive()[source]

Indicate if a linear time invariant (LTI) system is passive.

See ispassive for details.

issiso()[source]

Check to see if a system is single input, single output.

property magnitude

Magnitude of the frequency response.

Magnitude of the frequency response, indexed by either the output and frequency (if only a single input is given) or the output, input, and frequency (for multi-input systems). See FrequencyResponseData.squeeze for a description of how this can be modified using the squeeze keyword.

Input and output signal names can be used to index the data in place of integer offsets.

Type:

1D, 2D, or 3D array

nichols_plot(*args, **kwargs)[source]

Generate a Nichols plot for the system.

See nichols_plot for more information.

ninputs

Number of system inputs.

noutputs

Number of system outputs.

nstates

Number of system states.

nyquist_plot(*args, **kwargs)[source]

Generate a Nyquist plot for the system.

See nyquist_plot for more information.

property output_labels

List of labels for the output signals.

property phase

Phase of the frequency response.

Phase of the frequency response in radians/sec, indexed by either the output and frequency (if only a single input is given) or the output, input, and frequency (for multi-input systems). See FrequencyResponseData.squeeze for a description of how this can be modified using the squeeze keyword.

Input and output signal names can be used to index the data in place of integer offsets.

Type:

1D, 2D, or 3D array

plot(plot_type=None, *args, **kwargs)[source]

Plot the frequency response using Bode or singular values plot.

Plot the frequency response using either a standard Bode plot (plot_type=’bode’, default) or a singular values plot (plot_type=’svplot’). See bode_plot and singular_values_plot for more detailed descriptions.

property repr_format

String representation format.

Format used in creating the representation for the system:

  • ‘info’ : <IOSystemType sysname: [inputs] -> [outputs]>

  • ‘eval’ : system specific, loadable representation

  • ‘latex’ : HTML/LaTeX representation of the object

The default representation for an input/output is set to ‘eval’. This value can be changed for an individual system by setting the repr_format parameter when the system is created or by setting the repr_format property after system creation. Set config.defaults['iosys.repr_format'] to change for all I/O systems or use the repr_format parameter/attribute for a single system.

set_inputs(inputs, prefix='u')[source]

Set the number/names of the system inputs.

Parameters:
inputsint, list of str, or None

Description of the system inputs. This can be given as an integer count or as a list of strings that name the individual signals. If an integer count is specified, the names of the signal will be of the form ‘u[i]’ (where the prefix ‘u’ can be changed using the optional prefix parameter).

prefixstring, optional

If inputs is an integer, create the names of the states using the given prefix (default = ‘u’). The names of the input will be of the form ‘prefix[i]’.

set_outputs(outputs, prefix='y')[source]

Set the number/names of the system outputs.

Parameters:
outputsint, list of str, or None

Description of the system outputs. This can be given as an integer count or as a list of strings that name the individual signals. If an integer count is specified, the names of the signal will be of the form ‘y[i]’ (where the prefix ‘y’ can be changed using the optional prefix parameter).

prefixstring, optional

If outputs is an integer, create the names of the states using the given prefix (default = ‘y’). The names of the input will be of the form ‘prefix[i]’.

set_states(states, prefix='x')[source]

Set the number/names of the system states.

Parameters:
statesint, list of str, or None

Description of the system states. This can be given as an integer count or as a list of strings that name the individual signals. If an integer count is specified, the names of the signal will be of the form ‘x[i]’ (where the prefix ‘x’ can be changed using the optional prefix parameter).

prefixstring, optional

If states is an integer, create the names of the states using the given prefix (default = ‘x’). The names of the input will be of the form ‘prefix[i]’.

property shape

2-tuple of I/O system dimension, (noutputs, ninputs).

squeeze

Squeeze processing parameter.

By default, if a system is single-input, single-output (SISO) then the outputs (and inputs) are returned as a 1D array (indexed by frequency) and if a system is multi-input or multi-output, then the outputs are returned as a 2D array (indexed by output and frequency) or a 3D array (indexed by output, trace, and frequency). If squeeze = True, access to the output response will remove single-dimensional entries from the shape of the inputs and outputs even if the system is not SISO. If squeeze = False, the output is returned as a 3D array (indexed by the output, input, and frequency) even if the system is SISO. The default value can be set using config.defaults[‘control.squeeze_frequency_response’].

property state_labels

List of labels for the state signals.

step_response(*args, **kwargs)[source]

Generate the step response for the system.

See step_response for more information.

to_pandas()[source]

Convert response data to pandas data frame.

Creates a pandas data frame for the value of the frequency response at each omega. The frequency response values are labeled in the form “H_{<out>, <in>}” where “<out>” and “<in>” are replaced with the output and input labels for the system.

to_ss(*args, **kwargs)[source]

Convert to state space representation.

See ss for details.

to_tf(*args, **kwargs)[source]

Convert to transfer function representation.

See tf for details.

update_names([name, inputs, outputs, states])[source]

Update signal and system names for an I/O system.

Parameters:
namestr, optional

New system name.

inputslist of str, int, or None, optional

List of strings that name the individual input signals. If given as an integer or None, signal names default to the form ‘u[i]’. See InputOutputSystem for more information.

outputslist of str, int, or None, optional

Description of output signals; defaults to ‘y[i]’.

statesint, list of str, int, or None, optional

Description of system states; defaults to ‘x[i]’.

input_prefixstring, optional

Set the prefix for input signals. Default = ‘u’.

output_prefixstring, optional

Set the prefix for output signals. Default = ‘y’.

state_prefixstring, optional

Set the prefix for state signals. Default = ‘x’.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4