step

Системный объект: phased.Platform
Пакет: поэтапный

Выведите текущее положение, скорость и оси ориентации платформы

Синтаксис

[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 с действительным знаком N матрицей, где N является количеством платформ к модели. Этот аргумент применяется, когда вы устанавливаете MotionModel свойство к 'Velocity' и VelocitySource свойство к 'Input port'. Модули являются метрами в секунду.

A

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

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

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

Pos

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

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

Vel

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

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

Laxes

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

Текущие оси ориентации платформы, возвращенные как 3 с действительным знаком 3 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 m/sec/sec. Обновляйте положение платформы и скорость каждые две секунды.

Создайте платформную систему 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.