compute the gain-margin and phase-crossover frequency
GainMargin( sys, opts )
System; a system object
(optional) equation(s) of the form option = value; specify options for the GainMargin command
decibels = truefalse
Specifies whether the gain-margin is in decibels or is linear. The default is the value of decibels in DynamicSystems[SystemOptions].
hertz = truefalse
Specifies that frequency is in hertz (cycles/second); otherwise frequency is in radians/second. The default is the value of hertz in DynamicSystems[SystemOptions].
parameters = set(name = complexcons) or list(name = complexcons)
Specifies numeric values for parameters in sys. These values override those specified by the parameters field of the system object, which in turn override the settings in in SystemOptions(parameters). The numeric value on the right-hand side of each equation is substituted for the name on the left-hand side in the expressions that define the model. No checking is done during the substitution to determine whether the substituted value is valid. For example, a complex value can be substituted for the coefficient of a polynomial. If the complex value had been originally assigned to the model at creation, a warning would be generated.
The GainMargin command returns the gain margin and corresponding phase-crossover frequency of the linear system sys.
This command normally returns a Matrix of lists. Each list consists of the gain-margin and associated crossover-frequency corresponding to the transfer function of each Matrix element. However, if the Matrix of transfer functions is one by one, then the single list is returned directly.
A phase-crossover frequency is a frequency at which the phase of the transfer function equals π radians (180 degrees).
If there is more than one phase-crossover frequency, then the one with the minimum gain-margin is used.
If there is no phase-crossover frequency for a transfer function, then the associated list is [Float(undefined),Float(undefined)].
For a sampled (discrete) system, the z to s transformation z = exp(s*Ts), where Ts is the sample period, is applied to the transfer function(s). The frequency range is limited to the Nyquist frequency.
sys := TransferFunction(1/(1+s)^3):
g := GainMargin(sys,decibels=false);
gain := g;
freq := g;
sys := TransferFunction(<<1/(s+1)^3, 1/(s^3+4*s^2+s-6)>>):
p1 := plot ([[freq,0], [freq, -gain]], color=blue, thickness=2):
p2 := MagnitudePlot (sys):
Download Help Document
What kind of issue would you like to report? (Optional)