ureal
Uncertain real parameter
Description
Use the ureal uncertain element to represent real numbers whose
values are uncertain when modeling dynamic systems with uncertainty. An uncertain real
parameter has a nominal value, stored in the NominalValue property, and an
uncertainty, which is the potential deviation from the nominal value. ureal
stores this deviation equivalently in three different properties:
PlusMinus— The additive relative deviation fromNominalValueRange— The absolute range of values, expressed as an interval containingNominalValuePercentage— The deviation, expressed as a percentage ofNominalValue
When you create an uncertain real parameter, you can specify the uncertainty in any of
these three ways. The ureal object automatically calculates the appropriate
values for the other two properties.
You can combine ureal uncertain parameters with numeric parameters to
create uncertain matrices (umat objects) which you can then use to create
uncertain state-space models. Or, you can use them as coefficients in transfer functions. When
you use uncertain real parameters to build uncertain dynamic systems, the result is an
uncertain model such as a uss or genss model.
Creation
Syntax
Description
p = ureal(
creates an uncertain real parameter with the specified nominal value and an uncertainty of
±1. This syntax sets the name,nominalvalue)Name and NominalValue
properties of the resulting ureal object.
p = ureal(
sets the uncertainty to the specified deviations from the nominal value.
name,nominalvalue,'PlusMinus',plusminus)plusminus is a two-element vector of the form
[-DL,DR]. The uncertain parameter takes values in the range
[nominalvalue-DL,nominalvalue+DR]. If the range is symmetric around
the nominal value such that DL = DR, you can use
plusminus = DR.
Using this syntax also sets the Mode property of the resulting
ureal object to 'PlusMinus'.
p = ureal(
sets the uncertainty to the specified absolute range. name,nominalvalue,'Range',range)range is a
two-element vector of the form [LOW,HIGH], and the nominal value must
fall in this range.
Using this syntax also sets the Mode property of the resulting
ureal object to 'Range'.
p = ureal(
sets the uncertainty in terms of percentage deviations from the nominal value.
name,nominalvalue,'Percentage',percentage)percentage is a two-element vector of the form
[-PL,PR]. This syntax sets the lower and upper limits of the
uncertainty range such that PL = 100*|1-LOW/nominalvalue| and
PR = 100*|1-HIGH/nominalvalue|.
Using this syntax also sets the Mode property of the resulting
ureal object to 'Percentage'.
p = ureal(
sets additional properties using name-value pairs. You can specify multiple name-value
pairs. Enclose each property name in single quotes.name,nominalvalue,___,Name,Value)
Properties
Object Functions
You can use ureal parameters with functions for creating dynamic systems
such as tf and ss. You can also combine them with
existing dynamic systems models using model arithmetic or commands such as
feedback. Doing so creates an uncertain state-space model. You can also
combine ureal parameters using common arithmetic operations, which generally
results in an uncertain matrix (umat object). Use functions such as
actual2normalized and uscale to transform or scale
the amount of uncertainty in a ureal parameter. You can also use commands
such as usample or usubs to replace real parameters
with fixed values. The gridureal command evaluates a
ureal parameter over its range and returns a grid of sampled values.
The following list contains a representative subset of the functions you can use with
ureal parameter objects.
actual2normalized | Transform actual values to normalized values |
append | Group models by appending their inputs and outputs |
feedback | Feedback connection of multiple models |
get | Access model property values |
getLimits | Validity range for uncertain real (ureal)
parameters |
getNominal | Nominal value of uncertain model |
gridureal | Grid ureal parameters uniformly over their range |
isuncertain | Check whether argument is uncertain class type |
normalized2actual | Convert value for atom in normalized coordinates to corresponding actual value |
replaceBlock | Replace or update control design blocks in generalized model |
rsampleBlock | Randomly sample Control Design blocks in generalized model |
sampleBlock | Sample Control Design blocks in generalized model |
ss | State-space model |
tf | Transfer function model |
umat | Uncertain matrix |
usample | Generate random samples of uncertain model or element |
uscale | Scale uncertainty of block or system |
usubs | Substitute given values for uncertain elements of uncertain objects |
Examples
Tips
urealobjects support uncertainty that is skewed, or asymmetric around the nominal value. However, highly skewed ranges can lead to poor numeric conditioning and poor results. Therefore, for meaningful results, avoid highly skewed ranges where the nominal value is orders of magnitude closer to one end of the range than to the other.When the uncertainty range of a
urealparameter is not centered at its nominal value, the parameter can take only a restricted range of values. For robust stability analysis, which sometimes requires assigning a parameter values outside the specified range, these restrictions mean that the smallest destabilizing perturbation of the parameter might be outside the actual range of values that the parameter can take. UsegetLimitsto find the restricted range of values that a skewedurealparameter can take. For more information, seegetLimits.
