Reference Tracking Goal
Purpose
Make specified outputs track reference inputs with prescribed performance and fidelity, when using Control System Tuner. Limit cross-coupling in MIMO systems.
Description
Reference Tracking Goal constrains tracking between the specified signal locations. The constraint is satisfied when the maximum relative tracking error falls below the value you specify at all frequencies. The relative error is the gain from reference input to tracking error as a function of frequency.
You can specify the maximum error profile directly as a function of frequency. Alternatively, you can specify the tracking goal a target DC error, peak error, and response time. These parameters are converted to the following transfer function that describes the maximum frequency-domain tracking error:
Here, ωc is 2/(response time). The following plot illustrates these relationships for an example set of values.
When you create a tuning goal in Control System Tuner, a tuning-goal plot is generated. The dotted line shows the error profile you specify. The shaded area on the plot represents the region in the frequency domain where the tuning goal is not satisfied.
Creation
In the Tuning tab of Control System Tuner, select New Goal > Reference Tracking to create a Reference Tracking Goal.
Command-Line Equivalent
When tuning control systems at the command line, use TuningGoal.Tracking
to specify a tracking goal.
Response Selection
Use this section of the dialog box to specify input, output, and loop-opening locations for evaluating the tuning goal.
Specify reference inputs
Select one or more signal locations in your model as reference signals. To constrain a SISO response, select a single-valued reference signal. For example, to constrain the response from a location named
'u'
to a location named'y'
, click Add signal to list and select'u'
. To constrain a MIMO response, select multiple signals or a vector-valued signal.Specify reference-tracking outputs
Select one or more signal locations in your model as reference-tracking outputs. To constrain a SISO response, select a single-valued output signal. For example, to constrain the step response from a location named
'u'
to a location named'y'
, click Add signal to list and select'y'
. To constrain a MIMO response, select multiple signals or a vector-valued signal. For MIMO systems, the number of outputs must equal the number of inputs.Evaluate tracking performance with the following loops open
Select one or more signal locations in your model at which to open a feedback loop for the purpose of evaluating this tuning goal. The tuning goal is evaluated against the open-loop configuration created by opening feedback loops at the locations you identify. For example, to evaluate the tuning goal with an opening at a location named
'x'
, click Add signal to list and select'x'
.
Tip
To highlight any selected signal in the Simulink® model, click . To remove a signal from the input or output list, click . When you have selected multiple signals, you can reorder them using and . For more information on how to specify signal locations for a tuning goal, see Specify Goals for Interactive Tuning.
Tracking Performance
Use this section of the dialog box to specify frequency-domain constraints on the tracking error.
Response time, DC error, and peak error
Select this option to specify the tracking error in terms of response time, percent steady-state error, and peak error across all frequencies. These parameters are converted to the following transfer function that describes the maximum frequency-domain tracking error:
When you select this option, enter the following parameters in the text boxes:
Response Time — Enter the target response time. The tracking bandwidth is given by ωc = 2/Response Time. Express the target response time in the time units of your model.
Steady-state error (%) — Enter the maximum steady-state fractional tracking error, expressed in percent. For MIMO tracking goals, this steady-state error applies to all I/O pairs. The steady-state error is the DC error expressed as a percentage,
DCError
/100.Peak error across frequency (%) — Enter the maximum fractional tracking error across all frequencies, expressed in percent.
Maximum error as a function of frequency
Select this option to specify the maximum tracking error profile as a function of frequency.
Enter a SISO numeric LTI model in the text box. For example, you can specify a smooth
transfer function (tf
, zpk
, or ss
model). Alternatively, you can sketch a
piecewise error profile using an frd
model. When you do so, the software automatically maps the error profile
to a smooth transfer function that approximates the desired error profile. For example, to
specify a maximum error of 0.01 below about 1 rad/s, gradually rising to a peak error of 1
at 100 rad/s, enter frd([0.01 0.01 1],[0 1 100])
.
For MIMO tracking goals, this error profile applies to all I/O pairs.
If you are tuning in discrete time, you can specify the maximum error profile as a discrete-time model with the same sampling time as you use for tuning. If you specify the attenuation profile in continuous time, the tuning software discretizes it. Specifying the error profile in discrete time gives you more control over the profile near the Nyquist frequency.
Options
Use this section of the dialog box to specify additional characteristics of the tracking goal.
Enforce goal in frequency range
Limit the enforcement of the tuning goal to a particular frequency band. Specify the frequency band as a row vector of the form
[min,max]
, expressed in frequency units of your model. For example, to create a tuning goal that applies only between 1 and 100 rad/s, enter[1,100]
. By default, the tuning goal applies at all frequencies for continuous time, and up to the Nyquist frequency for discrete time.Adjust for step amplitude
For a MIMO tuning goal, when the choice of units results in a mix of small and large signals in different channels of the response, this option allows you to specify the relative amplitude of each entry in the vector-valued step input. This information is used to scale the off-diagonal terms in the transfer function from reference to tracking error. This scaling ensures that cross-couplings are measured relative to the amplitude of each reference signal.
For example, suppose that tuning goal is that outputs
'y1' and 'y2'
track reference signals'r1'and 'r2'
. Suppose further that you require the outputs to track the references with less than 10% cross-coupling. Ifr1
andr2
have comparable amplitudes, then it is sufficient to keep the gains fromr1
toy2
andr2
andy1
below 0.1. However, ifr1
is 100 times larger thanr2
, the gain fromr1
toy2
must be less than 0.001 to ensure thatr1
changesy2
by less than 10% of ther2
target. To ensure this result, set Adjust for step amplitude toYes
. Then, enter[100,1]
in the Amplitudes of step commands text box. Doing so tells Control System Tuner to take into account that the first reference signal is 100 times greater than the second reference signal.The default value,
No
, means no scaling is applied.Apply goal to
Use this option when tuning multiple models at once, such as an array of models obtained by linearizing a Simulink model at different operating points or block-parameter values. By default, active tuning goals are enforced for all models. To enforce a tuning requirement for a subset of models in an array, select Only Models. Then, enter the array indices of the models for which the goal is enforced. For example, suppose you want to apply the tuning goal to the second, third, and fourth models in a model array. To restrict enforcement of the requirement, enter
2:4
in the Only Models text box.For more information about tuning for multiple models, see Robust Tuning Approaches (Robust Control Toolbox).
Algorithms
Evaluating Tuning Goals
When you tune a control system, the software converts each tuning goal into a normalized scalar value f(x). Here, 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 constraint.
For Tracking Goal, f(x) is given by:
or its discrete-time equivalent. Here,
T(s,x) is the closed-loop
transfer function between the specified inputs and outputs, and denotes the H∞ norm
(see getPeakGain
).
WF is a frequency weighting function derived
from the error profile you specify in the tuning goal. The gain of
WF roughly matches the inverse of the error
profile for gain values between –20 dB and 60 dB. 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 of the systune
optimization problem, it is
not recommended to specify error profiles with very low-frequency or very high-frequency
dynamics. For more information about regularization and its effects, see Visualize Tuning Goals.
Implicit Constraints
This tuning goal also imposes an implicit stability constraint on the closed-loop transfer function between the specified inputs to outputs, evaluated with loops opened at the specified loop-opening locations. The dynamics affected by this implicit constraint are the stabilized dynamics for this tuning goal. The Minimum decay rate and Maximum natural frequency tuning options control the lower and upper bounds on these implicitly constrained dynamics. If the optimization fails to meet the default bounds, or if the default bounds conflict with other requirements, on the Tuning tab, use Tuning Options to change the defaults.