Положение, скорость и ориентация движущегося велосипедиста
Постройте положения всех рассеивателей велосипедиста. Примите, что существует 15 спиц на колесо.
Создайте backscatterBicyclist
объект для радиолокационной системы, действующей на уровне 77 ГГц и имеющей пропускную способность 300 МГц. Уровень выборки является дважды пропускной способностью. Велосипедист initally на расстоянии в 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
объектная функция. Модули исчисляются в метрах в секунду. Смотрите Велосипедные индексы Рассеивателя для столбца, представляющего скорость каждого рассеивателя.
Типы данных: 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.