Возмущение задано на объекте
возвращает список возмущений свойства, perturbs = perturbations(obj)perturbs, заданный на объекте, obj. Возвращенный perturbs списки все perturbable свойства. Если какое-либо свойство не встревожено, то его соответствующий Type возвращен как "Null" и его соответствующий Value возвращен как {Null,Null}.
задает perturbs = perturbations(obj,property,'Selection',values,probabilities)property возмущение возместило чертивший от набора values это имеет соответствующий probabilities.
задает perturbs = perturbations(obj,property,'TruncatedNormal',mean,deviation,lowerLimit,upperLimit)property возмущение возместило чертивший от нормального распределения с заданным meanСтандартное отклонение, нижний предел и верхний предел.
позволяет вам задать пользовательскую функцию, perturbs = perturbations(obj,property,'Custom',perturbFcn)perturbFcn, это чертит значение смещения возмущения.
waypointTrajectoryСоздайте 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] 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'
Задайте возмущение на 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] 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'
RollAccuracy встревожен к 0.5 градус.
Задайте waypoint траекторию. По умолчанию эта траектория содержит два waypoints.
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
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
imuSensor ПараметрыСоздайте imuSensor возразите и покажите его perturbable свойства.
imu = imuSensor; perturbations(imu)
ans=17×3 table
Property Type Value
______________________________________ ______ __________________
"Accelerometer.MeasurementRange" "None" {[NaN]} {[NaN]}
"Accelerometer.Resolution" "None" {[NaN]} {[NaN]}
"Accelerometer.ConstantBias" "None" {[NaN]} {[NaN]}
"Accelerometer.NoiseDensity" "None" {[NaN]} {[NaN]}
"Accelerometer.BiasInstability" "None" {[NaN]} {[NaN]}
"Accelerometer.RandomWalk" "None" {[NaN]} {[NaN]}
"Accelerometer.TemperatureBias" "None" {[NaN]} {[NaN]}
"Accelerometer.TemperatureScaleFactor" "None" {[NaN]} {[NaN]}
"Gyroscope.MeasurementRange" "None" {[NaN]} {[NaN]}
"Gyroscope.Resolution" "None" {[NaN]} {[NaN]}
"Gyroscope.ConstantBias" "None" {[NaN]} {[NaN]}
"Gyroscope.NoiseDensity" "None" {[NaN]} {[NaN]}
"Gyroscope.BiasInstability" "None" {[NaN]} {[NaN]}
"Gyroscope.RandomWalk" "None" {[NaN]} {[NaN]}
"Gyroscope.TemperatureBias" "None" {[NaN]} {[NaN]}
"Gyroscope.TemperatureScaleFactor" "None" {[NaN]} {[NaN]}
⋮
Задайте возмущение для NoiseDensity свойство акселерометра как равномерное распределение.
perturbations(imu,'Accelerometer.NoiseDensity', ... 'Uniform',1e-5,1e-3);
Задайте возмущение для RandomWalk свойство гироскопа как усеченное нормальное распределение.
perts = perturbations(imu,'Gyroscope.RandomWalk', ... 'TruncatedNormal',2,1e-5,0,Inf);
Загрузите записанные заранее данные IMU.
load imuSensorData.mat
numSamples = size(orientations);Симулируйте imuSensor три раза с различной реализацией возмущения.
rng(2021); % For repeatable results numRuns = 3; colors = ['b' 'r' 'g']; for idx = 1:numRuns % Clone IMU to maintain original values imuCopy = clone(imu); % Perturb noise values offsets = perturb(imuCopy); % Obtain the measurements [accelReadings,gyroReadings] = imuCopy(accelerations,angularVelocities,orientations); % Plot the results plot(times,gyroReadings(:,3),colors(idx)); hold on; end xlabel('Time (s)') ylabel('Z-Component of Gyro Readings (rad/s)') legend("First Pass","Second Pass","Third Pass"); hold off

obj — Объект, который будет встревоженОбъект, который будет встревожен в виде объекта. Объекты, которые можно встревожить, включают:
property — Свойство PerturbableСвойство Perturbable в виде имени свойства. Использование perturbations получить полный список perturbable свойств для заданного obj.
Для imuSensor Система object™, можно встревожить свойства ее акселерометра, гироскопа и компонентов магнитометра. Для получения дополнительной информации смотрите Тревожить imuSensor пример Параметров.
values — Возмущение возместило значенияВозмущение возместило значения в виде n - массив ячеек элемента значений свойств. Функция случайным образом чертит значение возмущения для свойства от массива ячеек на основе соответствующих вероятностей значений, заданных в probabilities входной параметр.
probabilities — Рисование вероятностей для каждого значения возмущенияРисование вероятностей для каждого значения возмущения в виде n - массив элемента неотрицательных скаляров, где n является количеством значений возмущения, введенных в values входной параметр. Сумма всех элементов должна быть равна одному.
Например, можно задать серию пары вероятности значения возмущения как {x1x2 , …, xn} и {p1, p2pn }, где вероятность рисования xi pi i = 1, 2, …, n).
mean — Среднее значение нормального или усеченного нормального распределенияСреднее значение нормального или усеченного нормального распределения в виде скаляра, вектора или матрицы. Размерность mean должно быть совместимо с соответствующим свойством, которое вы тревожите.
deviation — Стандартное отклонение нормального или усеченного нормального распределенияСтандартное отклонение нормального или усеченного нормального распределения в виде неотрицательного скаляра, вектора из неотрицательных скаляров или матрицы неотрицательных скаляров. Размерность deviation должно быть совместимо с соответствующим свойством, которое вы тревожите.
lowerLimit — Нижний предел усеченного нормального распределенияНижний предел усеченного нормального распределения в виде скаляра, вектора или матрицы. Размерность lowerLimit должно быть совместимо с соответствующим свойством, которое вы тревожите.
upperLimit — Верхний предел усеченного нормального распределенияВерхний предел усеченного нормального распределения в виде скаляра, вектора или матрицы. Размерность upperLimit должно быть совместимо с соответствующим свойством, которое вы тревожите.
minVal — Минимальное значение интервала равномерного распределенияМинимальное значение интервала равномерного распределения в виде скаляра, вектора или матрицы. Размерность minVal должно быть совместимо с соответствующим свойством, которое вы тревожите.
maxVal — Максимальное значение интервала равномерного распределенияМаксимальное значение интервала равномерного распределения в виде скаляра, вектора или матрицы. Размерность maxVal должно быть совместимо с соответствующим свойством, которое вы тревожите.
perturbFcn — Функция возмущенияФункция возмущения в виде указателя на функцию. Функция должна иметь этот синтаксис:
offset = myfun(propVal)
propVal значение property и offset смещение возмущения для свойства.
perturbs — Возмущения заданы на объектеВозмущения заданы на объекте, возвращенном как таблица свойств возмущения. Таблица имеет три столбца:
Property — Имена свойства.
Type — Тип возмущений, возвращенных как "None", "Selection", "Normal", "TruncatedNormal", "Uniform", или "Custom".
Value — Значения возмущения, возвращенные как массив ячеек.
Можно указать, что распределение для возмущения применилось к определенному свойству.
Распределение выбора — функция задает смещение возмущения как одно из заданных значений со связанной вероятностью. Например, если вы задаете значения как [1 2] и задайте вероятности как [0.7 0.3], затем perturb функция добавляет значение смещения 1 к свойству с вероятностью 0.7 и добавьте значение смещения 2 к свойству с вероятностью 0.3. Используйте распределение выбора, когда вы только захотите встревожить свойство со многими дискретными значениями.
Нормальное распределение — функция задает смещение возмущения как значение, чертившее от нормального распределения с заданным средним и стандартным отклонением (или ковариация). Нормальное распределение является обычно используемым распределением, поскольку это подражает естественному возмущению параметров в большинстве случаев.
Усеченное нормальное распределение — функция задает смещение возмущения как значение, чертившее от усеченного нормального распределения с заданным средним значением, стандартное отклонение (или ковариация), нижний предел и верхний предел. Отличающийся от нормального распределения, значения, чертившие от усеченного нормального распределения, являются усеченными нижним и верхним пределом. Используйте усеченное нормальное распределение, когда это необходимо, чтобы применить нормальное распределение, но допустимые значения свойства ограничиваются в интервале.
Равномерное распределение — функция задает смещение возмущения как значение, полученное из равномерного распределения с заданными минимальными и максимальными значениями. Все значения в интервале (заданный минимальными и максимальными значениями) имеют ту же вероятность реализации.
Пользовательский дистрибутив — Настраивает вашу собственную функцию возмущения. Функция должна иметь этот синтаксис:
offset = myfun(propVal)
propVal значение property и offset смещение возмущения для свойства.Этот рисунок показывает функции плотности вероятности для нормального распределения, усеченного нормального распределения и равномерного распределения, соответственно.

У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.