Step disturbance rejection requirement for control system tuning
TuningGoal.StepRejection to specify how
a step disturbance injected at a specified location in your control system affects the
signal at a specified output location. Use this tuning goal with control system tuning
commands such as
You can specify the desired response in time-domain terms of peak value, settling time, and damping ratio. Alternatively, you can specify the response as a stable reference model having DC-gain. In that case, the tuning goal is to reject the disturbance as well as or better than the reference model.
To specify disturbance rejection in terms of a frequency-domain attenuation profile,
creates a tuning goal that constrains how a step disturbance injected at a
Req = TuningGoal.StepRejection(
inputname affects the response at
outputname. The tuning goal is that the disturbance
be rejected as well as or better than the reference system.
describe a SISO or MIMO response of your control system. For MIMO responses,
the number of inputs must equal the number of outputs.
refsys — Reference system for target step rejection
tf model object |
zpk model object |
ss model object
Reference system for target step rejection, specified as a SISO
dynamic system model, such as a
refsys must be stable and proper, and must have
zero DC gain. This restriction ensures perfect rejection of the
refsys can be continuous or discrete. If
refsys is discrete, it can include time delays
which are treated as poles at
z = 0.
For best results,
refsys and the open-loop
response from the disturbance to the output should have similar gains at
the frequency where the reference model gain peaks. You can check the
peak gain and peak frequency using
[gmax,fmax] = getPeakGain(refsys);
extract the corresponding open-loop response from the system you are
peak — Peak absolute value of target response to disturbance
Peak absolute value of target response to disturbance, specified as a scalar value.
tSettle — Target settling time of response to disturbance
Target settling time of the response to disturbance, specified as a positive scalar value, in the time units of the control system you are tuning.
zeta — Minimum damping ratio of oscillations in response to disturbance
1 (default) | scalar in the range [0,1]
Minimum damping ratio of oscillations in the response to disturbance, specified as a value between 0 and 1.
ReferenceModel — Reference system for target response to step disturbance
zpk model object
Reference system for target response to step disturbance, specified as a
zpk) model. The step response of this model
specifies how the output signals specified by
outputname should respond to the step disturbance
If you use the
refsys input argument to create the
tuning goal, then the value of
If you use the
zeta input arguments, then
ReferenceModel is a
representation of the first-order or second-order transfer function whose
step response has the specified characteristics.
Input — Names of disturbance input locations
cell array of character vectors
Names of disturbance input locations, specified as a cell array of
character vectors. This property is initially populated by the
inputname argument when you create the tuning
Output — Names of locations at which response to step disturbance is measured
cell array of character vectors
Names of locations at which response to step disturbance is measured,
specified as a cell array of character vectors. This property is initially
populated by the
outputname argument when you create
the tuning goal.
Specify First-Order or Second-Order Step Disturbance Response Characteristics
Create a requirement that specifies the step disturbance response in terms of peak time-domain response, settling time, and damping of oscillations.
Suppose you want the response at
'y' to a disturbance injected at
'd' to never exceed an absolute value of 0.25, and to settle within 5 seconds. Create a
TuningGoal.StepRejection requirement that captures these specifications and also specifies non-oscillatory response.
Req1 = TuningGoal.StepRejection('d','y',0.25,5);
Omitting an explicit value for the damping ratio,
zeta, is equivalent to setting
zeta = 1. Therefore,
Req specifies a non-oscillatory response. The software converts the peak value and settling time into a reference transfer function whose step response has the desired time-domain profile. This transfer function is stored in the
ReferenceModel property of
ans = 0.92883 s ----------- (s+1.367)^2 Continuous-time zero/pole/gain model.
Confirm the target response by displaying
Suppose your application can tolerate oscillations provided the damping ratio is less than 0.4. Create a requirement that specifies this disturbance response.
Req2 = TuningGoal.StepRejection('d','y',0.25,5,0.4); figure() viewGoal(Req2)
Step Disturbance Rejection with Custom Reference Model
Create a requirement that specifies the step disturbance response as a transfer function.
Suppose you want the response to a disturbance injected at an analysis point
d in your control system and measured at a point
'y' to be rejected at least as well as the transfer function
H = tf([1 0],[1 2 1]); Req = TuningGoal.StepRejection('d','y',H);
Display the requirement.
The plot displayed by
viewGoal shows the step response of the specified transfer function. This response is the target time-domain response to disturbance.
This tuning goal imposes an implicit stability constraint on the closed-loop transfer function from
Output, evaluated with loops opened at the points identified in
Openings. The dynamics affected by this implicit constraint are the stabilized dynamics for this tuning goal. The
systuneOptionscontrol the bounds on these implicitly constrained dynamics. If the optimization fails to meet the default bounds, or if the default bounds conflict with other requirements, use
systuneOptionsto change these defaults.
When you tune a control system using a
TuningGoal, the software
converts the tuning goal into a normalized scalar value
f(x), where x is the vector
of free (tunable) parameters in the control system. The software then adjusts the
parameter values to minimize f(x) or to drive
f(x) below 1 if the tuning goal is a hard
TuningGoal.StepRejection aims to keep the gain from disturbance to
output below the gain of the reference model. The scalar value of the tuning goal
f(x) is given by:
or its discrete-time equivalent. Here,
is the closed-loop transfer function from
Output, and denotes the H∞ norm
norm). WF is a
frequency weighting function derived from the step-rejection profile you specify in the
tuning goal. The gains of WF and
1/ReferenceModel roughly match for gain values within 60 dB of
the peak gain. For numerical reasons, the weighting function levels off outside this
range, unless you specify a reference model that changes slope outside this range. This
adjustment is called regularization. Because poles of
WF close to s = 0
or s =
Inf might lead to poor numeric conditioning
systune optimization problem, it is not recommended to
specify reference models with very low-frequency or very high-frequency dynamics.
To obtain WF, use:
WF = getWeight(Req,Ts)
Req is the tuning goal, and
Ts is the
sample time at which you are tuning (
Ts = 0 for continuous time). For
more information about regularization and its effects, see Visualize Tuning Goals.
Version HistoryIntroduced in R2016a
R2016a: Functionality moved from Robust Control Toolbox
Prior to R2016a, this functionality required a Robust Control Toolbox™ license.
systune (for slTuner) (Simulink Control Design) |
looptune (for slTuner) (Simulink Control Design) |
slTuner (Simulink Control Design)