perturbations

Возмущение, заданное для объекта

Описание

пример

perturbs = perturbations(obj) возвращает список возмущений свойств, perturbs, заданный на объекте, obj. Возвращенный perturbs В перечислены все возмущаемые свойства. Если какое-либо свойство не возмущено, то его соответствующее Type возвращается как "Null" и его соответствующие Value возвращается как {Null,Null}.

perturbs = perturbations(obj,property) возвращает возмущение тока, примененное к заданному property.

perturbs = perturbations(obj,property,'None') задает property это не должно быть возмущено.

пример

perturbs = perturbations(obj,property,'Selection',values,probabilities) задает property смещение возмущения, проведенное из набора values которые имеют соответствующие probabilities.

perturbs = perturbations(obj,property,'Normal',mean,deviation) задает property смещение возмущения, полученное из нормального распределения с заданными mean и стандартные deviation.

пример

perturbs = perturbations(obj,property,'Uniform',minVal,maxVal) задает property смещение возмущения, полученное из равномерного распределения по интервалу [minVal, maxValue].

perturbs = perturbations(obj,property,'Custom',perturbFcn) позволяет вам задать пользовательскую функцию, perturbFcn, который рисует значение смещения возмущения.

Примеры

свернуть все

Создайте waypointTrajectory объект.

traj = waypointTrajectory;

Покажите свойства возмущения по умолчанию с помощью perturbations способ.

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

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

Создайте insSensor объект.

sensor = insSensor
sensor = 
  insSensor with properties:

           MountingLocation: [0 0 0]                 
               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'         

Задайте возмущение на RollAccuracy свойство как три значения с равной возможностью каждый.

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"    {1x3 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]}

Возмущайте sensor объект, использующий функцию возмущения.

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

           MountingLocation: [0 0 0]                 
               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'         

The RollAccuracy возмущается 0.5 град.

Задайте траекторию путевой точки. По умолчанию эта траектория содержит две путевые точки.

traj = waypointTrajectory
traj = 
  waypointTrajectory with properties:

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

Задайте возмущения на Waypoints свойство и 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"    {1x2 cell}    {[0.5000 0.5000]}

Возмущение траектории.

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

The Waypoints свойство и TimeOfArrival изменено свойство.

traj.Waypoints
ans = 2×3

    1.8674    1.0203    0.7032
    2.3154   -0.3207    0.0999

traj.TimeOfArrival
ans = 2×1

     0
     2

Входные параметры

свернуть все

Объект, который будет возмущен, заданный как объект. Объекты, которые можно возмущать, включают:

Возмущаемое свойство, заданное как имя свойства. Использовать perturbations получить полный список возмущаемых свойств для заданных obj.

Значения смещения возмущения, заданные как n-элементный массив значений свойств. Функция случайным образом черпает значение возмущения для свойства из массива ячеек на основе значений 'соответствующих вероятностей, заданных в probabilities вход.

Построение вероятностей для каждого значения возмущения, заданное как n-элементный массив неотрицательных скаляров, где n количество значений возмущения, представленных в values вход. Сумма всех элементов должна быть равна единице.

Для примера можно задать серию возмущений пара значение-вероятность как {x1, x2, …, xn} и {p1, p2, …, pn}, где вероятность рисования xi является pi (i = 1, 2,..., n).

Среднее нормальное распределение, заданное как скаляр, вектор или матрица. Размерность mean должно быть совместимо с соответствующим свойством, которое вы возмущаете.

Стандартное отклонение нормального распределения, заданное как неотрицательный скаляр, вектор неотрицательных скаляров или матрица неотрицательных скаляров. Размерность deviation должно быть совместимо с соответствующим свойством, которое вы возмущаете.

Минимальное значение равномерного интервала распределения, заданное в виде скаляра, вектора или матрицы. Размерность minVal должно быть совместимо с соответствующим свойством, которое вы возмущаете.

Максимальное значение равномерного интервала распределения, заданное в виде скаляра, вектора или матрицы. Размерность maxVal должно быть совместимо с соответствующим свойством, которое вы возмущаете.

Функция возмущения, заданная как указатель на функцию. Функция должна иметь следующий синтаксис:

offset = myfun(propVal)
где propVal - значение property и offset - смещение возмущения для свойства.

Выходные аргументы

свернуть все

Возмущения, заданные на объекте, возвращенные как таблица свойств возмущения. Таблица имеет три столбца:

  • Property - Имена свойства.

  • Type - Тип возмущений, возвращаемый как "None", "Selection", "Normal", "Uniform", или "Custom".

  • Value - значения возмущения, возвращенные как массив ячеек.

См. также

Введенный в R2021a