Response#
Library of response objects and base classes to create your own objectives and constraints.
- class DeviationSquared(**kwds)#
- Computes the difference between a function’s current value and a desired value.
The math formula used by DeviationSquared is defined as follows:
\[Response = \frac{1}{2} \left( 1 - \frac{f_{c}}{f_{d}} \right) ^2\]where:
\(f_{c}\) is the current value of a function,
\(f_{d}\) is its desired value,
\(s\) is the error in the function.
Usage Example:
val = DeviationSquared (label = "VX(22,11)@T=1", signal = vx2211At1, desiredValue = 3.14159, )
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Int
Auto
Str
Reference -
ValueAtTime
\(\checkmark\)
Bool
False
Double
1.0
Bool
True
Double
0.0
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- id#
The id of the object.
Type=Int
- label#
Label string for the Response.
Type=Str
- measuredValue#
Value of the RV associated with DeviationSquared.
Type=Reference (ValueAtTime), Required
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- targetValue#
Desired value of the RV associated with DeviationSquared.
Type=Double, Default=0.0
- class GenericResponse(**kwds)#
- Creates a generic response.
This response is a layer over the Rv element that links it to the plotting and optimization functionalities.
Usage Examples:
gr = GenericResponse (label = "Generic Response", function = "(1-FZ(21,31)/501)**2", scale = 1e5 )
gr = GenericResponse (label = "Generic Response", routine = mygenericResponse, scale = 1e5 )
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
Function
Int
Auto
Str
Bool
False
Routine
Double
1.0
Script
Bool
True
Double
Bool
False
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- end#
Specify the end time of the window of interest.
Type=Double
- function#
Function expression for GenericResponse.
Type=Function
- id#
The id of the object.
Type=Int
- label#
Label string for the Response.
Type=Str
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- routine#
User subroutine for GenericResponse.
Type=Routine
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- script#
Path and name of the script that contains the routine.
Type=Script
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- start#
Specify the starting time of the window of interest.
Type=Double
- useDeriv#
True if derivative of the function is to be used as response.
Type=Bool, Default=False
- class MaxVal(**kwds)#
- Computes the approximate maximum value of a MotionSolve expression or a user subroutine during the simulation.
The maximum is approximated by an alpha-soft function so that the analytical sensitivity can be calculated. The math formula used by MaxVal is defined as follows:
\[max(x) = \frac{ \int_{t} x(t) e^{a x{t}} dt }{ \int_{t} e^{a x{t}} dt }\]where:
\(a = coef > 0\)
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
10.0
Double
1.0
Double
Function
\(\checkmark\)
Int
Auto
Int
1
Str
Double
0.0
Bool
False
Routine
Double
1.0
Script
Bool
True
Double
Double
2.0
Int
5
See also
See Comment 1 for more information.
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- alpha#
Coef being used in the approximation of extremum.
Type=Double, Default=10.0
- coef#
Coefficient used in the approximation of maximum, alpha=coef.
Type=Double, Default=1.0
- end#
Specify the end time of the window of interest.
Type=Double
- function#
Solver function that defines the extremum being computed.
Type=Function, Required
- id#
The id of the object.
Type=Int
- k#
The order of the smoothing function.
Type=Int, Default=1
- label#
Label string for the Response.
Type=Str
- nominal#
Estimated value of extremum being calculated.
Type=Double, Default=0.0
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- routine#
An alternative name for the user subroutine.
Type=Routine
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- script#
Path and name of the script that contains the routine.
Type=Script
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- start#
Specify the starting time of the window of interest.
Type=Double
- threshold#
The threshold value of the sensor.
Type=Double, Default=2.0
- wlen#
The window length for the smoothing function.
Type=Int, Default=5
- class MinVal(**kwds)#
- Computes the approximate minimum value of a MotionSolve expression or a user subroutine during the simulation.
The minimum is approximated by an alpha-soft function so that the analytical sensitivity can be calculated. The math formula used by MinVal is defined as follows:
\[min(x) = \frac{ \int_{t} x(t) e^{a x{t}} dt }{ \int_{t} e^{a x{t}} dt }\]where:
\(a = -coef > 0\)
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
10.0
Double
1.0
Double
Function
\(\checkmark\)
Int
Auto
Int
1
Str
Double
0.0
Bool
False
Routine
Double
1.0
Script
Bool
True
Double
Double
2.0
Int
5
See also
See Comment 1 for more information.
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- alpha#
Coef being used in the approximation of extremum.
Type=Double, Default=10.0
- coef#
Coefficient used in the approximation of minimum, alpha=-coef.
Type=Double, Default=1.0
- end#
Specify the end time of the window of interest.
Type=Double
- function#
Solver function that defines the extremum being computed.
Type=Function, Required
- id#
The id of the object.
Type=Int
- k#
The order of the smoothing function.
Type=Int, Default=1
- label#
Label string for the Response.
Type=Str
- nominal#
Estimated value of extremum being calculated.
Type=Double, Default=0.0
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- routine#
An alternative name for the user subroutine.
Type=Routine
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- script#
Path and name of the script that contains the routine.
Type=Script
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- start#
Specify the starting time of the window of interest.
Type=Double
- threshold#
The threshold value of the sensor.
Type=Double, Default=2.0
- wlen#
The window length for the smoothing function.
Type=Int, Default=5
- class RMS2(**kwds)#
- Computes the root-mean-square area difference between a measured signal and a target curve.
The math formula used by RMS2 is defined as follows:
\[Response = \int_{0}^{T} (y-y^{*})^2 dt\]where:
\(y\) is the measured value,
\(y^{*}\) is the interpolated value based on the value of the state variable.
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
Int
Auto
Reference -
Variable
[0]Str
Double
0
Function
Bool
False
Routine
Double
1
Script
Bool
True
Double
Double
0
CurveProperty
\(\checkmark\)
Reference -
RMS2
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- end#
Specify the end time of the window of interest.
Type=Double
- id#
The id of the object.
Type=Int
- independentVariable#
Independent Variable in RMS2.
Type=Reference (Variable) [0]
- label#
Label string for the Response.
Type=Str
- mean#
Mean value of normal distribution used in weighting.
Type=Double, Default=0
- measuredValue#
Runtime function expression that defines measured value.
Type=Function
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- routine#
Type=Routine
- scale#
Scaling factor of RMS2.
Type=Double, Default=1
- script#
Type=Script
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- start#
Specify the starting time of the window of interest.
Type=Double
- std#
Standard deviation of normal distribution used in weighting.
Type=Double, Default=0
- targetValue#
List of datum that defines the sample points.
Type=CurveProperty, Required
- xValue#
Type=Reference (RMS2)
- class ResponseExpression(**kwds)#
- Computes the value of an arbitrary function that is composed of design variables and other responses.
It employs the chain rule to compute the sensitivity using sympy to calculate the partial derivatives.
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Str
\(\checkmark\)
Int
Auto
Str
Bool
False
Double
1.0
Bool
True
Property [0]
\(\checkmark\)
Property [0]
\(\checkmark\)
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- function#
An expression of DVs and RVs whose value is required.
Type=Str, Required
- id#
The id of the object.
Type=Int
- label#
Label string for the Response.
Type=Str
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- symbols#
Symbols used in expression.
Type=Property [0], Required
- variables#
Variables that are referred by Symbols.
Type=Property [0], Required
- class SignalDistance(**kwds)#
Computes the distance between two signals by dynamic time warping.
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
Double
0.01
Int
Auto
Str
Int
10
Int
1
Bool
False
Double
1.0
Bool
True
Reference -
Variable
[0]\(\checkmark\)
Double
Property [0]
\(\checkmark\)
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- end#
Specify the end time of the window of interest.
Type=Double
- gamma#
Type=Double, Default=0.01
- id#
The id of the object.
Type=Int
- label#
Label string for the Response.
Type=Str
- numPoints#
Type=Int, Default=10
- periods#
Type=Int, Default=1
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- signal#
Type=Reference (Variable) [0], Required
- start#
Specify the starting time of the window of interest.
Type=Double
- targetSignal#
Type=Property [0], Required
- class Slope2(**kwds)#
- Computes the slope of a curve at a particular point of interest \(t^{*}\).
The math formula used by Slope2 is defined as follows:
\[Response = \frac{f(t_{2}) - f(t_{1})}{t_{2} - t_{1}}\]where:
\(t_{1} < t^{*} < t_{2}\)
Usage Example:
val = Slope2 (label = "Slope2", numerator = "<Toe_Expression>", denominator = "<Ride_Height_Expression>", time = 5, delta = 0.1, interval = 1e-3, # Optional )
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
0.1
Function
\(\checkmark\)
Int
Auto
Double
Str
Function
\(\checkmark\)
Bool
False
Double
1.0
Bool
True
Double
\(\checkmark\)
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- delta#
Time span at the start&end of which the signal is evaluated.
Type=Double, Default=0.1
- denominator#
MS expression for denominator.
Type=Function, Required
- id#
The id of the object.
Type=Int
- interval#
Interval over which the signal is averaged.
Type=Double
- label#
Label string for the Response.
Type=Str
- numerator#
MS expression for numerator.
Type=Function, Required
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- time#
Time at which the slope is calculated.
Type=Double, Required, Default=0.0
- class Slope2Deviation(**kwds)#
- Computes the square of the deviation of the slope of a curve at a certain point in time from a target value.
The math formula used by Slope2Deviation is defined as follows:
\[Response = \left( 1 - \frac{m}{m_{d}} \right) ^2\]where:
\(m\) is the slope of a curve at the point of interest,
\(m_{d}\) is the target value.
It has all the properties
Slope2
has plus the targetValue of the slope.Usage Example:
val = Slope2Deviation(label = "Slope2", numerator = "<Toe_Expression>", denominator = "<Ride_Height_Expression>", time = 5, delta = 0.1, interval = 1e-3, # Optional targetValue = 3.14159 )
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
0.1
Function
\(\checkmark\)
Int
Auto
Double
Str
Function
\(\checkmark\)
Bool
False
Double
1.0
Bool
True
Double
\(\checkmark\)
Double
\(\checkmark\)
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- delta#
Time span at the start&end of which the signal is evaluated.
Type=Double, Default=0.1
- denominator#
MS expression for denominator.
Type=Function, Required
- id#
The id of the object.
Type=Int
- interval#
Interval over which the signal is averaged.
Type=Double
- label#
Label string for the Response.
Type=Str
- numerator#
MS expression for numerator.
Type=Function, Required
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- targetValue#
Desired value of the slope.
Type=Double, Required, Default=0.0
- time#
Time at which the slope is calculated.
Type=Double, Required, Default=0.0
- class ValueAtG(**kwds)#
- Computes the value of a signal, \(f\) when a second signal \(G\) achieves a certain value \(C\).
The math formula used by ValueAtG is defined as follows:
\[Response = \frac{\int_{t_{0}}^{t_{f}} f(Q,U,U_{d}) w(t) dt} {\int_{t_{0}}^{t_{f}} w(t) dt}\]where:
\(w(t) = Step (G, C-Delta, 0, C, 1) + Step (G, C, 1, C+Delta, 0) - 1\)
Usage Example:
t0 = 0 tf = 2 delta = 1e-3 gvalue = 0 # Steering wheel angle gsignal = "AZ(77,66)" # Steering angle difference: Yaw(Left-wheel) - Yaw(right-wheel) fsignal = "Yaw(33,22) - Yaw(55,44)" val = ValueAtG (label = "Steer Angle DIfference at Zero SWA", fsignal = fsignal, gsignal = gsignal, gvalue = gvalue, delta = delta )
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
\(\checkmark\)
Function
\(\checkmark\)
Function
\(\checkmark\)
Double
\(\checkmark\)
Int
Auto
Str
Bool
False
Double
1.0
Bool
True
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- delta#
The interval around ‘gvalue’ used to define the impulse function.
Type=Double, Required, Default=0.0
- fsignal#
Function representing a signal whose value is required.
Type=Function, Required
- gsignal#
The reference signal associated with fsignal.
Type=Function, Required
- gvalue#
Value of gsignal at which fsignal is to be computed .
Type=Double, Required, Default=0.0
- id#
The id of the object.
Type=Int
- label#
Label string for the Response.
Type=Str
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True
- class ValueAtTime(**kwds)#
- Computes the value of a signal at a certain time T.
The math formula used by ValueAtTime is defined as follows:
\[Response = \frac{\int_{t_{0}}^{t_{f}} f(Q, U, U_{d})w(t) dt} {\int_{t_{0}}^{t_{f}} w(t) dt} = \frac{1}{delta} \int_{t_{0}}^{t_{f}} f(Q, U, U_{d})w(t) dt\]where:
\(w(t) = Step (Time, T-Delta, 0, T, 1) + Step (Time, T, 1, T+Delta, 0) - 1\)
Usage Example:
t0 = 0 tf = 2 t = 1 delta = 1e-3 w(t) = Step (Time, t-delta, 0, t, 1) + Step (Time, t, 1, t+delta, 0) - 1 Num = Integral ( VM(22,11) * w(t) dt, t=t0, t=tf ) # ValueAtTime = Num / delta val = ValueAtTime (label = "VM(22,11) @ Time=1", delta = delta, atTime = t, measuredValue = "VM(22,11)", )
Name
Type
Required
Default
Modifiable
Bool
True
\(\checkmark\)
Double
\(\checkmark\)
Double
\(\checkmark\)
Int
Auto
Str
Function
\(\checkmark\)
Bool
False
Double
1.0
Bool
True
- active#
Defines the state of the object.
Type=Bool, Default=True, Modifiable
- atTime#
Time at which response is computed.
Type=Double, Required, Default=0.0
- delta#
Time interval around ‘atTime’ used to define the impulse function.
Type=Double, Required, Default=0.0
- id#
The id of the object.
Type=Int
- label#
Label string for the Response.
Type=Str
- measuredValue#
Function expression for ValueAtTime.
Type=Function, Required
- plot#
If True, a dynamic plot will be created.
Type=Bool, Default=False
- scale#
Scaling factor of Response.
Type=Double, Default=1.0
- sensitivity#
Returns a zero sensitivity vector when set to False.
Type=Bool, Default=True