scipy.signal.cont2discrete¶
- scipy.signal.cont2discrete(sys, dt, method='zoh', alpha=None)[source]¶
Transform a continuous to a discrete state-space system.
Parameters: sys : a tuple describing the system.
The following gives the number of elements in the tuple and the interpretation:
- 2: (num, den)
- 3: (zeros, poles, gain)
- 4: (A, B, C, D)
dt : float
The discretization time step.
method : {“gbt”, “bilinear”, “euler”, “backward_diff”, “zoh”}
Which method to use:
- gbt: generalized bilinear transformation
- bilinear: Tustin’s approximation (“gbt” with alpha=0.5)
- euler: Euler (or forward differencing) method (“gbt” with alpha=0)
- backward_diff: Backwards differencing (“gbt” with alpha=1.0)
- zoh: zero-order hold (default)
alpha : float within [0, 1]
The generalized bilinear transformation weighting parameter, which should only be specified with method=”gbt”, and is ignored otherwise
Returns: sysd : tuple containing the discrete system
Based on the input type, the output will be of the form
- (num, den, dt) for transfer function input
- (zeros, poles, gain, dt) for zeros-poles-gain input
- (A, B, C, D, dt) for state-space system input
Notes
By default, the routine uses a Zero-Order Hold (zoh) method to perform the transformation. Alternatively, a generalized bilinear transformation may be used, which includes the common Tustin’s bilinear approximation, an Euler’s method technique, or a backwards differencing technique.
The Zero-Order Hold (zoh) method is based on [R144], the generalized bilinear approximation is based on [R145] and [R146].
References
[R144] (1, 2) http://en.wikipedia.org/wiki/Discretization#Discretization_of_linear_state_space_models [R145] (1, 2) http://techteach.no/publications/discretetime_signals_systems/discrete.pdf [R146] (1, 2) G. Zhang, X. Chen, and T. Chen, Digital redesign via the generalized bilinear transformation, Int. J. Control, vol. 82, no. 4, pp. 741-754, 2009. (http://www.ece.ualberta.ca/~gfzhang/research/ZCC07_preprint.pdf)