Положение, скорость и ориентация движущегося велосипедиста
Постройте положения всех рассеивателей велосипедиста. Примите, что существует 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
bicyclist
— Цель велосипедистаbackscatterBicyclist
объектВелосипедист в виде backscatterBicyclist
объект.
T
— Длительность следующего интервала движенияДлительность следующего интервала движения в виде положительной скалярной величины. Положения рассеивателя и скорости и ориентация велосипедиста обновляются по этой длительности времени. Величина в секундах.
Пример: 0.75
Типы данных: double
angh
— Велосипедист, направляющийся
| скалярЗаголовок велосипедиста в виде скаляра. Заголовок измеряется в xy - плоскости от x - оси к y - ось. Модули в градусах.
Пример: -34
Типы данных: double
speed
— Скорость велосипедистаSpeed
свойство (значение по умолчанию) | неотрицательный скалярСкорость велосипедиста в виде неотрицательного скаляра. Модель движения ограничивает скорость 60 м/с. Модули исчисляются в метрах в секунду. В качестве альтернативы можно задать скорость велосипедиста с помощью Speed
свойство backscatterBicyclist
объект.
Пример 8
Типы данных: double
coast
— Установите велосипедиста, курсирующего состояниеCoast
свойство (значение по умолчанию) | false
| true
Установите велосипедиста, курсирующего состояние в виде false
или true
. Если установлено в true
, велосипедист не ездит на велосипеде, но колеса все еще вращаются (свободный ход). Если установлено в false
, велосипедист ездит на велосипеде, и GearTransmissionRatio
определяет отношение вращений колеса к вращениям педали. В качестве альтернативы можно задать велосипедиста, курсирующего состояние с помощью Coast
свойство backscatterBicyclist
объект.
Типы данных: логический
bpos
— Положения рассеивателей велосипедистаПоложения рассеивателей велосипедиста, возвращенных как 3 с действительным знаком N матрицей. Каждый столбец представляет Декартово положение, [x; y;], одного из рассеивателей велосипедиста. N представляет количество рассеивателей и может быть получен с помощью getNumScatterers
объектная функция. Величины в метрах. Смотрите Велосипедные индексы Рассеивателя для столбца, представляющего положение каждого рассеивателя.
Типы данных: double
bvel
— Скорости рассеивателей велосипедистаСкорости рассеивателей велосипедиста, возвращенных как 3 с действительным знаком N матрицей. Каждый столбец представляет Декартову скорость, [vx; vy; vz], одного из рассеивателей велосипедиста. N представляет количество рассеивателей и может быть получен с помощью getNumScatterers
объектная функция. Модули исчисляются в метрах в секунду. Смотрите Велосипедный Рассеиватель Indicesfor столбец, представляющий скорость каждого рассеивателя.
Типы данных: double
bax
— Оси ориентации велосипедистаОси ориентации велосипедиста, возвращенного как 3х3 матрица с действительным знаком. Модули являются безразмерными.
Типы данных: double
Индексы рассеивателя велосипедиста задают, какие столбцы в матрицах положения или скорости рассеивателя содержат данные о положении и скорости для определенного рассеивателя. Например, столбец 92 bpos
задает 3-D положение одного из рассеивателей на педали.
Рассеиватели колеса одинаково разделены между колесами. Можно определить общее количество рассеивателей колеса, N, путем вычитания 113 от выхода getNumScatterers
функция. Количеством рассеивателей на колесо является N, коротковолновый = N/2.
Индексы рассеивателя велосипедиста
Компонент велосипедиста | Индекс рассеивателя велосипедиста |
---|---|
Система координат и наездник | 1 … 90 |
Педали | 91 … 99 |
Участки наездника | 100 … 113 |
Переднее колесо | 114 … 114 + коротковолновый N - 1 |
Заднее колесо | 114 + N коротковолновый … 114 + N - 1 |
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.