control.sample_system

control.sample_system(sysc, Ts, method='zoh', alpha=None, prewarp_frequency=None, name=None, copy_names=True, **kwargs)[source]

Convert a continuous time system to discrete time by sampling

Parameters
  • sysc (LTI (StateSpace or TransferFunction)) – Continuous time system to be converted

  • Ts (float > 0) – Sampling period

  • method (string) – Method to use for conversion, e.g. ‘bilinear’, ‘zoh’ (default)

  • alpha (float within [0, 1]) – The generalized bilinear transformation weighting parameter, which should only be specified with method=”gbt”, and is ignored otherwise. See scipy.signal.cont2discrete().

  • prewarp_frequency (float within [0, infinity)) – The frequency [rad/s] at which to match with the input continuous- time system’s magnitude and phase (only valid for method=’bilinear’)

  • name (string, optional) – Set the name of the sampled system. If not specified and if copy_names is False, a generic name <sys[id]> is generated with a unique integer id. If copy_names is True, the new system name is determined by adding the prefix and suffix strings in config.defaults[‘namedio.sampled_system_name_prefix’] and config.defaults[‘namedio.sampled_system_name_suffix’], with the default being to add the suffix ‘$sampled’.

  • copy_names (bool, Optional) – If True, copy the names of the input signals, output signals, and states to the sampled system.

  • inputs (int, list of str or None, optional) – Description of the system inputs. If not specified, the origional system inputs are used. See InputOutputSystem for more information.

  • outputs (int, list of str or None, optional) – Description of the system outputs. Same format as inputs.

  • states (int, list of str, or None, optional) – Description of the system states. Same format as inputs. Only available if the system is StateSpace.

Returns

sysd – Discrete time system, with sampling rate Ts

Return type

linsys

Notes

See StateSpace.sample() or TransferFunction.sample() for further details.

Examples

>>> sysc = TransferFunction([1], [1, 2, 1])
>>> sysd = sample_system(sysc, 1, method='bilinear')