step

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

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

Синтаксис

[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.

Примечание

Объект выполняет инициализацию при первом выполнении объекта. Эта инициализация блокирует нетронутые свойства и входные спецификации, такие как размерности, сложность и тип данных входных данных. Если вы изменяете свойство nontunable или спецификацию входа, системный объект выдает ошибку. Чтобы изменить нетронутые свойства или входы, необходимо сначала вызвать 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. Текущие оси платформы вращаются вокруг вектора normal к пути платформы.

Примеры

расширить все

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

Создайте платформу System 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;

Вызовите метод step для 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.