Contenido principal

Esta página se ha traducido mediante traducción automática. Haga clic aquí para ver la última versión en inglés.

perturbations

Perturbación definida en el objeto.

Descripción

perturbs = perturbations(obj) devuelve la lista de perturbaciones de propiedad, perturbs, definidas en el objeto, obj. El perturbs devuelto enumera todas las propiedades perturbables. Si alguna propiedad no se perturba, entonces su Type correspondiente se devuelve como "Null" y su Value correspondiente se devuelve como {Null,Null}.

ejemplo

perturbs = perturbations(obj,property) devuelve la perturbación actual aplicada al property especificado.

perturbs = perturbations(obj,property,'None') define un property que no debe ser perturbado.

perturbs = perturbations(obj,property,'Selection',values,probabilities) define el desplazamiento de perturbación property extraído de un conjunto de values que tienen probabilities correspondientes.

ejemplo

perturbs = perturbations(obj,property,'Normal',mean,deviation) define el desplazamiento de perturbación property extraído de una distribución normal con mean especificado y deviation estándar.

perturbs = perturbations(obj,property,'TruncatedNormal',mean,deviation,lowerLimit,upperLimit) define el desplazamiento de perturbación property extraído de una distribución normal con mean especificado, deviation estándar, límite inferior y límite superior.

perturbs = perturbations(obj,property,'Uniform',minVal,maxVal) define el desplazamiento de perturbación property extraído de una distribución uniforme en un intervalo [minVal, maxValue].

ejemplo

perturbs = perturbations(obj,property,'Custom',perturbFcn) le permite definir una función personalizada, perturbFcn, que dibuja el valor de desplazamiento de la perturbación.

Ejemplos

contraer todo

Cree un objeto waypointTrajectory.

traj = waypointTrajectory;

Muestra las propiedades de perturbación predeterminadas utilizando el método perturbations.

perturbs = perturbations(traj)
perturbs=2×3 table
       Property         Type           Value       
    _______________    ______    __________________

    "Waypoints"        "None"    {[NaN]}    {[NaN]}
    "TimeOfArrival"    "None"    {[NaN]}    {[NaN]}

Crea un objeto insSensor.

sensor = insSensor
sensor = 
  insSensor with properties:

           MountingLocation: [0 0 0]            m    
               RollAccuracy: 0.2                deg  
              PitchAccuracy: 0.2                deg  
                YawAccuracy: 1                  deg  
           PositionAccuracy: [1 1 1]            m    
           VelocityAccuracy: 0.05               m/s  
       AccelerationAccuracy: 0                  m/s² 
    AngularVelocityAccuracy: 0                  deg/s
                  TimeInput: 0                       
               RandomStream: 'Global stream'         

Define la perturbación en la propiedad RollAccuracy como tres valores con la misma posibilidad cada uno.

values = {0.1 0.2 0.3}
values=1×3 cell array
    {[0.1000]}    {[0.2000]}    {[0.3000]}

probabilities = [1/3 1/3 1/3]
probabilities = 1×3

    0.3333    0.3333    0.3333

perturbations(sensor,'RollAccuracy','Selection',values,probabilities)
ans=7×3 table
            Property                Type                        Value                 
    _________________________    ___________    ______________________________________

    "RollAccuracy"               "Selection"    {1×3 cell}    {[0.3333 0.3333 0.3333]}
    "PitchAccuracy"              "None"         {[   NaN]}    {[                 NaN]}
    "YawAccuracy"                "None"         {[   NaN]}    {[                 NaN]}
    "PositionAccuracy"           "None"         {[   NaN]}    {[                 NaN]}
    "VelocityAccuracy"           "None"         {[   NaN]}    {[                 NaN]}
    "AccelerationAccuracy"       "None"         {[   NaN]}    {[                 NaN]}
    "AngularVelocityAccuracy"    "None"         {[   NaN]}    {[                 NaN]}

Perturbe el objeto sensor utilizando la función perturbar.

rng(2020)
perturb(sensor);
sensor
sensor = 
  insSensor with properties:

           MountingLocation: [0 0 0]            m    
               RollAccuracy: 0.5                deg  
              PitchAccuracy: 0.2                deg  
                YawAccuracy: 1                  deg  
           PositionAccuracy: [1 1 1]            m    
           VelocityAccuracy: 0.05               m/s  
       AccelerationAccuracy: 0                  m/s² 
    AngularVelocityAccuracy: 0                  deg/s
                  TimeInput: 0                       
               RandomStream: 'Global stream'         

El RollAccuracy se perturba a 0.5 grados.

Defina la trayectoria de un waypoint. Por defecto, esta trayectoria contiene dos puntos de referencia.

traj = waypointTrajectory
traj = 
  waypointTrajectory with properties:

         SampleRate: 100
    SamplesPerFrame: 1
          Waypoints: [2×3 double]
      TimeOfArrival: [2×1 double]
         Velocities: [2×3 double]
             Course: [2×1 double]
        GroundSpeed: [2×1 double]
          ClimbRate: [2×1 double]
        Orientation: [2×1 quaternion]
          AutoPitch: 0
           AutoBank: 0
     ReferenceFrame: 'NED'

Define perturbaciones en la propiedad Waypoints y la propiedad TimeOfArrival.

rng(2020);
perturbs1 = perturbations(traj,'Waypoints','Normal',1,1)
perturbs1=2×3 table
       Property          Type            Value       
    _______________    ________    __________________

    "Waypoints"        "Normal"    {[  1]}    {[  1]}
    "TimeOfArrival"    "None"      {[NaN]}    {[NaN]}

perturbs2 = perturbations(traj,'TimeOfArrival','Selection',{[0;1],[0;2]})
perturbs2=2×3 table
       Property           Type                     Value             
    _______________    ___________    _______________________________

    "Waypoints"        "Normal"       {[     1]}    {[            1]}
    "TimeOfArrival"    "Selection"    {1×2 cell}    {[0.5000 0.5000]}

Perturbar la trayectoria.

offsets = perturb(traj)
offsets=2×1 struct array with fields:
    Property
    Offset
    PerturbedValue

La propiedad Waypoints y la propiedad TimeOfArrival han cambiado.

traj.Waypoints
ans = 2×3

    1.8674    1.0203    0.7032
    2.3154   -0.3207    0.0999

traj.TimeOfArrival
ans = 2×1

     0
     2

Argumentos de entrada

contraer todo

Objeto a perturbar, especificado como objeto. Los objetos que puedes perturbar incluyen:

Propiedad perturbable, especificada como nombre de propiedad. Utilice perturbations para obtener una lista completa de propiedades perturbables para el obj especificado.

Para imuSensor System object™, puedes perturbar las propiedades de sus componentes acelerómetro, giroscopio y magnetómetro. Para obtener más detalles, consulte el ejemplo Perturb imuSensor Parameters.

Valores de desplazamiento de perturbación, especificados como un arreglo de celdas de n elementos de valores de propiedad. La función extrae aleatoriamente el valor de perturbación de la propiedad del arreglo de celdas en función de las probabilidades correspondientes de los valores especificados en la entrada probabilities.

Probabilidades de dibujo para cada valor de perturbación, especificadas como un arreglo de n elementos escalares no negativos, donde n es el número de valores de perturbación proporcionados en la entrada values. La suma de todos los elementos debe ser igual a uno.

Por ejemplo, puede especificar una serie de pares de valores de perturbación-probabilidad como {x1,x2,…,xn} y {p1,p2,…,pn}, donde la probabilidad de extraer xi es pi (i = 1, 2, …,n).

Media de distribución normal o normal truncada, especificada como escalar, vector o matriz. La dimensión de mean debe ser compatible con la propiedad correspondiente que perturbas.

Desviación estándar de una distribución normal o normal truncada, especificada como un escalar no negativo, un vector de escalares no negativos o una matriz de escalares no negativos. La dimensión de deviation debe ser compatible con la propiedad correspondiente que perturbas.

Límite inferior de la distribución normal truncada, especificada como escalar, vector o matriz. La dimensión de lowerLimit debe ser compatible con la propiedad correspondiente que perturbas.

Límite superior de la distribución normal truncada, especificada como escalar, vector o matriz. La dimensión de upperLimit debe ser compatible con la propiedad correspondiente que perturbas.

Valor mínimo del intervalo de distribución uniforme, especificado como escalar, vector o matriz. La dimensión de minVal debe ser compatible con la propiedad correspondiente que perturbas.

Valor máximo del intervalo de distribución uniforme, especificado como escalar, vector o matriz. La dimensión de maxVal debe ser compatible con la propiedad correspondiente que perturbas.

Función de perturbación, especificada como identificador de función. La función debe tener esta sintaxis:

offset = myfun(propVal)
donde propVal es el valor de property y offset es el desplazamiento de perturbación para la propiedad.

Argumentos de salida

contraer todo

Perturbaciones definidas en el objeto, devueltas como una tabla de propiedades de perturbaciones. La tabla tiene tres columnas:

  • Property — Nombres de propiedades.

  • Type — Tipo de perturbaciones, devueltas como "None", "Selection", "Normal", "TruncatedNormal", "Uniform" o "Custom".

  • Value — Valores de perturbación, devueltos como un arreglo de celdas.

Más acerca de

contraer todo

Historial de versiones

Introducido en R2020b

Consulte también