Скоростной профиль пути с изменением кривой и направления

Эта модель использует блок Velocity Profiler, чтобы сгенерировать профиль скорости для ведущего пути, который включает кривую и изменение направления. В этой модели транспортное средство перемещается вперед по изогнутому пути на 50 метров, а затем перемещается прямо задним ходом ещё на 50 метров.

Блок Профилировщик генерирует профили скорости на основе ограничений скорости, ускорения и рывка, которые вы задаете используя параметры. Можно использовать сгенерированный профиль скорости в качестве входных базовых скоростей контроллера транспортного средства.

Эта модель предназначена для иллюстративных целей и не показывает, как использовать блок Velocity Profiler в полной автоматизированной модели вождения. Чтобы увидеть, как использовать этот блок в такой модели, смотрите пример Automated Parking Valet в Simulink.

Откройте и осмотрите модель

Модель состоит из одного блока Velocity Profiler с постоянными входами. Откройте модель.

model = 'VelocityProfileCurvedPathDirectionChanges';
open_system(model)

Первые три входа задают информацию о пути движения.

  • Вход Directions задает направление движения транспортного средства вдоль пути, где 1 означает вперед, а -1 означает назад. В первом сегменте контура, поскольку транспортное средство двигается только вперед, направление равно 1 вдоль всего сегмента. Во втором сегменте контура, поскольку транспортное средство перемещается только назад, направление составляет -1 вдоль всего сегмента.

  • Вход CumLengths задает длину пути. Путь состоит из двух 50-метровых сегментов. Первый сегмент представляет поворот налево вперед, а второй сегмент представляет прямой путь назад. Путь состоит из последовательности из 200 совокупных длин пути со 100 длинами на 50-метровый сегмент.

  • Вход Curvatures задает кривизну вдоль этого пути. Кривизна первого сегмента контура соответствует радиусу поворота 50 метров. Поскольку второй сегмент контура прямой, кривизна равна 0 вдоль всего сегмента.

В полной автоматизированной модели вождения можно получить эти входные значения из выхода блока Path Smooter Spline, который сглаживает путь на основе набора положений.

Входы StartVelocity и EndVelocity задают скорость транспортного средства в начале и конце пути, соответственно. Транспортное средство начинает путь со скоростью 1 метр в секунду и достигает конца пути со скоростью -1 метр в секунду. Отрицательная скорость указывает, что транспортное средство двигается назад в конце пути.

Сгенерируйте профиль скорости

Симулируйте модель, чтобы сгенерировать профиль скорости.

out = sim(model);

Выход скорости является последовательностью скоростей вдоль пути, которые удовлетворяют ограничениям скорости, ускорения и рывка, заданным в параметрах блока Профилировщик.

Блок также выводит время, в которое транспортное средство прибывает в каждую точку вдоль пути. Можно использовать этот выход для визуализации скоростей с течением времени.

Визуализация профиля скорости

Используйте выходы симуляции, чтобы построить график скорости.

t = length(out.tout);
velocities = out.yout.signals(1).values(:,:,t);
times = out.yout.signals(2).values(:,:,t);

plot(times,velocities)
title('Velocity Profile')
xlabel('Time (s)')
ylabel('Velocity (m/s)')
annotation('textarrow',[0.63 0.53],[0.56 0.56],'String',{'Direction change'});
grid on

Для этого пути блок Профилировщик генерирует два отдельных профиля скорости: один для прямого левого поворота и один для прямого обратного движения. В конечном выходе блок объединяет эти скорости в один профиль скорости.

А транспортное средство, который следует этому профилю скорости:

  1. Начинается со скорости 1 метр в секунду

  2. Ускоряет вперед

  3. Замедляется до тех пор, пока его скорость не достигнет 0, так что транспортное средство может переключать ведущие направления

  4. Ускоряется в обратном направлении

  5. Замедляется, пока не достигнет конечной скорости

В обоих направлениях движения транспортное средство не достигает максимальной скорости, заданной параметром Maximum allowable speed (m/s) блока Velocity Profiler, поскольку путь слишком короткий.

Для получения дополнительной информации о том, как блок вычисляет профиль скорости, смотрите раздел «Алгоритмы» блока Профилировщика скорости страницы с описанием.

См. также

|

Похожие темы