exponenta event banner

шаг

Системный объект: поэтапный. Платформа
Пакет: поэтапный

Оси выходного тока, скорости и ориентации платформы

Синтаксис

[Pos,Vel] = step(sPlat,T)
[Pos,Vel] = step(sPlat,T,V)
[Pos,Vel] = step(sPlat,T,A)
[Pos,Vel,Laxes] = step(___)

Описание

Примечание

Начиная с R2016b, вместо использования step для выполнения операции, определенной системным object™, можно вызвать объект с аргументами, как если бы это была функция. Например, y = step(obj,x) и y = obj(x) выполнять эквивалентные операции.

[Pos,Vel] = step(sPlat,T) возвращает текущее положение, Posи скорость, Vel, платформы. Затем метод обновляет положение и скорость. Когда MotionModel свойство имеет значение 'Velocity' и VelocitySource свойство имеет значение 'Property', положение обновляется с использованием уравнения Pos = Pos + Vel * T, где T указывает прошедшее время (в секундах) для текущего шага. Когда MotionModel свойство имеет значение 'Acceleration' и AccelerationSource свойство имеет значение 'Property', положение и скорость обновляются с использованием уравнений Pos = Pos + Vel * T + 1/2Acl * T ^ 2 и Vel = Vel + Acl * T, где T указывает прошедшее время (в секундах) для текущего шага.

[Pos,Vel] = step(sPlat,T,V) возвращает текущее положение, Posи скорость тока, Vel, платформы. Затем способ обновляет положение и скорость, используя уравнение Pos = Pos + Vel * T, где T указывает прошедшее время (в секундах) для текущего шага. Этот синтаксис применяется при установке MotionModel свойство для 'Velocity' и VelocitySource свойство для 'Input port'.

[Pos,Vel] = step(sPlat,T,A) возвращает текущее положение, Posи скорость тока, Vel, платформы. Затем способ обновляет положение и скорость, используя уравнения Pos = Pos + Vel * T + 1/2Acl * T ^ 2 и Vel = Vel + Acl * T, где T указывает прошедшее время (в секундах) для текущего шага. Этот синтаксис применяется при установкеMotionModel свойство для 'Acceleration' и AccelerationSource свойство для 'Input port'.

[Pos,Vel,Laxes] = step(___) возвращает дополнительные выходные данные Laxes в качестве осей ориентации платформы при установке OrientationAxesOutputPort свойство для true.

Примечание

Объект выполняет инициализацию при первом выполнении объекта. Эта инициализация блокирует неперестраиваемые свойства и входные спецификации, такие как размеры, сложность и тип данных входных данных. При изменении неперестраиваемого свойства или входной спецификации системный объект выдает ошибку. Чтобы изменить неперестраиваемые свойства или входные данные, необходимо сначала вызвать release метод разблокирования объекта.

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

sPlat

Платформа

Платформа, указанная как phased.Platform Системный объект.

T

Время шага

Время шага, указанное как действительный скаляр. Единицы измерения - секунды

V

Скорость платформы

Скорость платформы, заданная как вещественно-значная матрица 3-by-N, где N - количество платформ для моделирования. Этот аргумент применяется при установке MotionModel свойство для 'Velocity' и VelocitySource свойство для 'Input port'. Единицы измерения - метры в секунду.

A

Ускорение платформы

Ускорение платформы, указанное как вещественно-значная матрица 3-by-N, где N - количество платформ для моделирования. Этот аргумент применяется при установке MotionModel свойство для 'Acceleration' и AccelerationSource свойство для 'Input port'. Единицы измерения - метры в секунду-квадрат.

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

Pos

Текущее положение платформы

Текущее положение платформы, определяемое как действительный вектор столбца 3 на 1 в виде [x;y;z] или вещественно-значная матрица 3-by-N, где N - количество платформ для моделирования. Каждый столбец принимает форму [x;y;z]. Единицы измерения - метры.

Vel

Текущая скорость платформы

Текущая скорость платформы, указать как действительный вектор столбца 3 на 1 в виде [vx;vy;vz] или вещественно-значная матрица 3-by-N, где N - количество платформ для моделирования. Каждый столбец принимает форму [vx;vy;vz]. Единицы измерения скорости - метры в секунду.

Laxes

Текущие оси ориентации платформы

Текущие оси ориентации платформы, возвращаемые в виде вещественной матрицы 3-by-3-by-N, где N - количество платформ для моделирования. Каждая подматрица 3 на 3 является ортонормированной матрицей. Этот вывод активизируется при установке OrientationAxesOutputPort свойство для true. Текущие оси платформы вращаются вокруг вектора нормали к траектории платформы.

Примеры

развернуть все

Создайте две движущиеся платформы. Первая платформа, начиная с начала координат, имеет скорость (100,100,0) метров в секунду. Второй начинается с (1000,0,0) метров и имеет скорость (0,200,0) метров в секунду. Затем задайте различные локальные оси координат для каждой платформы, определенные матрицами вращения. Установка OrientationAxesOutputPort свойство для true позволяет извлекать локальные координатные оси на каждом шаге.

Настройте объект платформы.

pos0 = [[0;0;0],[1000;0;0]];
vel0 = [[100;100;0],[0;200;0]];
R1 = rotx(30);
R2 = roty(45);
laxes(:,:,1) = R1;
laxes(:,:,2) = R2;
sPlat = phased.Platform(pos0,vel0,...
    'OrientationAxesOutputPort',true,...
    'InitialOrientationAxes',laxes);

Имитировать движение платформы в течение двух временных шагов, предполагая, что время, прошедшее для каждого шага, составляет одну секунду. Положение платформы обновляется после каждого шага.

T = 1;

На первом этапе положение и скорость равны начальным значениям.

[pos,v,lax] = step(sPlat,T);
pos
pos = 3×2

           0        1000
           0           0
           0           0

lax
lax = 
lax(:,:,1) =

    1.0000         0         0
         0    0.8660   -0.5000
         0    0.5000    0.8660


lax(:,:,2) =

    0.7071         0    0.7071
         0    1.0000         0
   -0.7071         0    0.7071

На втором этапе положение обновляется.

[pos,v,lax] = step(sPlat,T);
pos
pos = 3×2

         100        1000
         100         200
           0           0

lax
lax = 
lax(:,:,1) =

    1.0000         0         0
         0    0.8660   -0.5000
         0    0.5000    0.8660


lax(:,:,2) =

    0.7071         0    0.7071
         0    1.0000         0
   -0.7071         0    0.7071

Найдите траекторию платформы, которая начинается с некоторой начальной скоростью вверх, но ускоряется вниз с постоянным гравитационным ускорением -9,8 м/с/с. Обновите положение платформы и скорость каждые две секунды.

Создайте системную object™ платформы.

platform = phased.Platform('MotionModel','Acceleration','InitialPosition',[2000,100,3000]',...
    'InitialVelocity',[300,150,20]','AccelerationSource','Property','Acceleration',[0,0,-9.8]');
T = 2;
N = 100;

Вызовите пошаговый метод для 100 временных выборок.

posmat = zeros(3,N);
for n = 1:N
    [pos,vel] = platform(T);
    posmat(:,n) = pos;
end

Постройте график траектории.

plot3(posmat(1,:),posmat(2,:),posmat(3,:),'b.')
axis equal
xlabel('m')
ylabel('m')
zlabel('m')
grid

Figure contains an axes. The axes contains an object of type line.