12.6 Systems with Random Elements
Random yet stable (at least in the sense of Lyapunov) systems can be generated using the function RandomSystem in conjunction with the desired system type—StateSpace, TransferFunction, or ZeroPoleGain. RandomSystem[args] is used in place of the actual system contents. Systems with random parameters could be useful for numerical experiments, checking the design concepts, etc.
Generating a system with random elements.
This creates a random first-order transfer function in variable s.
This is a second-order single-input, two-output state-space system.
RandomSystem works by creating random matrices of zeros, poles, and gains (for transfer function systems) or by creating a block diagonal matrix with suitable eigenvalues and then performing linear transformation on that matrix to form matrix (for state-space systems). Almost all of the following options listed below (with the exception of Exact) accept either one value (to be applied to both numerators and denominators or to the eigenvalues) or a list of two values to create the numerators and denominators according to different rules.
Options to RandomSystem.
If RealRootProbability is set to Automatic, then all available root positions that remain after the creation of complex roots and special points will be filled with real roots. This is usually what one wants in the denominator of a transfer function to ensure that the system has the required order, but this is not necessarily the case for the numerators. Setting RealRootProbability Automatic will generate a strictly proper transfer function.
The option SpecialPoints allows the location(s) of some special roots to be specified (to create an integrator, for example). The probability of such points in numerators and denominators is set by the option SpecialPointProbability.