control.feedback

control.feedback(sys1, sys2=1, sign=-1, **kwargs)[source]

Feedback interconnection between two I/O systems.

Parameters
  • sys1 (scalar, array, or InputOutputSystem) – I/O systems to combine.

  • sys2 (scalar, array, or InputOutputSystem) – I/O systems to combine.

  • sign (scalar) – The sign of feedback. sign = -1 indicates negative feedback, and sign = 1 indicates positive feedback. sign is an optional argument; it assumes a value of -1 if not specified.

  • inputs (str, or list of str, optional) – List of strings that name the individual signals. If not given, signal names will be of the form s[i] (where s is one of u, or y). See InputOutputSystem for more information.

  • outputs (str, or list of str, optional) – List of strings that name the individual signals. If not given, signal names will be of the form s[i] (where s is one of u, or y). See InputOutputSystem for more information.

  • states (str, or list of str, optional) – List of names for system states. If not given, state names will be of of the form x[i] for interconnections of linear systems or ‘<subsys_name>.<state_name>’ for interconnected nonlinear systems.

  • name (string, optional) – System name (used for specifying signals). If unspecified, a generic name <sys[id]> is generated with a unique integer id.

Returns

out – Feedback interconnection of the systems.

Return type

scalar, array, or InputOutputSystem

Raises
  • ValueError – if sys1 does not have as many inputs as sys2 has outputs, or if sys2 does not have as many inputs as sys1 has outputs

  • NotImplementedError – if an attempt is made to perform a feedback on a MIMO TransferFunction object

Notes

This function is a wrapper for the feedback function in the I/O system classes. It calls sys1.feedback if sys1 is an I/O system object. If sys1 is a scalar, then it is converted to sys2’s type, and the corresponding feedback function is used.

Examples

>>> G = ct.rss(3, inputs=2, outputs=5)
>>> C = ct.rss(4, inputs=5, outputs=2)
>>> T = ct.feedback(G, C, sign=1)
>>> T.ninputs, T.noutputs, T.nstates
(2, 5, 7)