exponenta event banner

двинуться

Положение, скорость и ориентация движущегося велосипедиста

Описание

пример

[bpos,bvel,bax] = move(bicyclist,T,angh) возвращает текущие позиции, bposи скорости тока, bvel, из рассеивателей и текущих осей ориентации, bax, велосипедиста. Затем позиции, скорости и оси обновляются для следующего временного интервала. T. angh определяет угол заголовка велосипедиста.

пример

[bpos,bvel,bax] = move(bicyclist,T,angh,speed) также определяет speed велосипедиста.

[bpos,bvel,bax] = move(bicyclist,T,angh,speed,coast) также определяет состояние наката, coast, велосипедиста.

Примеры

свернуть все

Постройте график положения всех разбрасывателей велосипедистов. Предположим, что на колесо приходится 15 спиц.

Создать backscatterBicyclist объект для радиолокационной системы, работающей на частоте 77 ГГц и имеющей ширину полосы 300 МГц. Частота дискретизации вдвое превышает полосу пропускания. Первоначально велосипедист находится в 5 метрах от радара.

bw = 300e6;
fs = 2*bw;
fc = 77e9;
rpos = [0;0;0];
bpos = [5;0;0];
bicyclist = backscatterBicyclist( ...
    'OperatingFrequency',fc,'NumWheelSpokes',15, ...
    'InitialPosition',bpos);

Получите начальное положение рассеивателей и продвиньте движение на 1 секунду.

[bpos,bvel,bax] = move(bicyclist,1,0);

Получение количества рассеивателей и индексов колесных рассеивателей.

N = getNumScatterers(bicyclist);
Nsw = (N-114+1)/2;
idxfrontwheel = (114:(114 + Nsw - 1));
idxrearwheel = (114 + Nsw):N;

Постройте график расположения рассеивателей.

plot3(bpos(1,1:90),bpos(2,1:90),bpos(3,1:90), ...
    'LineStyle','none','Color',[0.5,0,0],'Marker','.')
axis equal
hold on
plot3(bpos(1,91:99),bpos(2,91:99),bpos(3,91:99), ...
    'LineStyle','none','Color',[0,0,0.7],'Marker','.')
plot3(bpos(1,100:113),bpos(2,100:113),bpos(3,100:113), ...
    'LineStyle','none','Color',[0,0,0],'Marker','.')
plot3(bpos(1,idxfrontwheel),bpos(2,idxfrontwheel),bpos(3,idxfrontwheel), ...
    'LineStyle','none','Color',[0,0.5,0],'Marker','.')
plot3(bpos(1,idxrearwheel),bpos(2,idxrearwheel),bpos(3,idxrearwheel), ...
    'LineStyle','none','Color',[0.5,0.5,0.5],'Marker','.')
hold off
legend('Frame and rider','Pedals','Rider legs','Front wheel','Rear wheel')

Отображение анимации велосипеда, ездящего по четверти круга. Использовать значения свойств по умолчанию для backscatterBicyclist объект. Движение обновляется с интервалом в 30 миллисекунд в течение 500 шагов.

dt = 0.03;
M = 500;
angstep = 90/M;
bicycle = backscatterBicyclist;

for m = 1:M
    [bpos,bvel,bang] = move(bicycle,dt,angstep*m);
    plot(bicycle)
end

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

свернуть все

Велосипедист, указанный как backscatterBicyclist объект.

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

Пример: 0.75

Типы данных: double

Заголовок бициклиста, указанный как скаляр. Курс измеряется в плоскости xy от оси x к оси y. Единицы измерения в градусах.

Пример: -34

Типы данных: double

Скорость бициклиста, заданная как неотрицательный скаляр. Модель движения ограничивает скорость до 60 м/с. Единицы измерения в метрах в секунду. Кроме того, можно указать скорость велосипеда с помощью Speed имущества backscatterBicyclist объект.

Пример: 8

Типы данных: double

Установить состояние наката велосипедиста, указанное как false или true. Если установлено значение true, велосипед не педалирует, но колёса по-прежнему вращаются (freeweling). Если установлено значение false, велосипед педалирует, и GearTransmissionRatio определяет отношение вращений колес к вращениям педалей. Кроме того, можно указать состояние наката велосипедиста с помощью Coast имущества backscatterBicyclist объект.

Типы данных: logical

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

свернуть все

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

Типы данных: double

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

Типы данных: double

Оси ориентации велосипедиста, возвращаемые в виде вещественной матрицы 3 на 3. Единицы измерения безразмерны.

Типы данных: double

Подробнее

свернуть все

Индексы рассеивателя велосипедов

Индексы бициклического рассеивателя определяют, какие столбцы в матрицах положения рассеивателя или скорости содержат данные положения и скорости для конкретного рассеивателя. Например, столбец 92 bpos определяет 3-D положение одного из рассеивателей на педали.

Разбрасыватели колес поровну разделены между колесами. Общее число рассеивателей колес N можно определить путем вычитания 113 из выходного сигнала getNumScatterers функция. Количество рассеивателей на колесо Nsw = N/2.

Индексы рассеивателя велосипедистов

Компонент BicyclistИндекс рассеяния велосипедистов
Рама и райдер1 … 90
Педали91 … 99
Ноги всадника100 … 113
Переднее колесо114 … 114 + Nsw - 1
Заднее колесо114 + Nsw... 114 + N - 1

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

| |

Представлен в R2021a