Устойчивость отклонения от курса на различных дорожных покрытиях

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

ISO 3888-21 задает маневр изменения двойного маршрута, чтобы проверить производительность предотвращения препятствия транспортного средства. В тесте, драйвере:

  • Ускоряется, пока транспортное средство не врезается в целевую скорость

  • Отпускает педаль акселератора

  • Руль поворотов, чтобы следовать за путем в левый маршрут

  • Руль поворотов, чтобы следовать за путем назад в правильный маршрут

Как правило, конусы отмечают контуры маршрута. Если транспортное средство и драйвер могут согласовать маневр, не врезаясь в конус, транспортное средство проходит тест.

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

Запустите маневр изменения Двойного Маршрута

  1. Создайте и откройтесь, рабочая копия двойного маршрута изменяют пример готовых узлов.

  2. Откройте блок Lane Change Reference Generator. По умолчанию маневр установлен этими параметрами:

    • Longitudinal entrance velocity setpoint — 35 миль в час

    • Vehicle width — 2 м

    • Lateral reference position breakpoints и Lateral reference data — Значения, которые задают боковую ссылочную траекторию как функцию продольного расстояния

  3. В подсистеме Визуализации откройте блок 3D Engine. По умолчанию параметр 3D Engine устанавливается на Disabled. Для 3D требований платформы механизма визуализации и рекомендаций по аппаратным средствам, смотрите 3D Требования Engine Визуализации.

  4. Запустите маневр. Когда симуляция запускается, информация о транспортном средстве представления.

    • В окне Vehicle Position просмотрите транспортное средство продольное расстояние как функцию бокового расстояния.

    • В подсистеме Визуализации откройте блок Lane Change scope, чтобы отобразить боковое смещение как функцию времени.

      • Красная линия — Конусы, отмечающие контур маршрута

      • Синяя линия — Ссылочная траектория

      • Зеленая линия — Фактическая траектория

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

    • В подсистеме Визуализации, если вы включаете среду визуализации блока 3D Engine, можно просмотреть ответ транспортного средства в AutoVrtlEnv окно.

Разверните поверхностное трение

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

  1. В двойном маршруте изменяют модель DLCReferenceApplication примера готовых узлов, откройте подсистему Среды. Параметры блоков Friction Constant value задают масштабный коэффициент трения. По умолчанию масштабным коэффициентом трения является 1.0. Пример готовых узлов использует коэффициент, чтобы настроить трение на каждом временном шаге.

  2. В подсистеме Визуализации включите логгирование сигнала. Можно использовать редактор Simulink® или, альтернативно, команды MATLAB®. Сохраните модель.

    Элемент модели

    Редактор Simulink

    VehFdbk inport

    Импорт маршрута

    Блок ISO 15037-1:2006

    3D Блок двигателя

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

    % Open the model
    mdl = 'DLCReferenceApplication';
    open_system(mdl);
    
    % Enable signal logging for VehFdbk
    ph=get_param('DLCReferenceApplication/Visualization/VehFdbk','PortHandles');
    set_param(ph.Outport,'DataLogging','on');
    
    % Enable signal logging for Lane
    ph=get_param('DLCReferenceApplication/Visualization/Lane','PortHandles');
    set_param(ph.Outport,'DataLogging','on');
    
    % Enable signal logging for ISO block
    set_param([mdl '/Visualization/ISO 15037-1:2006'],'Measurement','Enable');
    
    % Disable 3D environment
    set_param([mdl '/Visualization/3D Engine'],'engine3D','Disabled');
    
    save_system(mdl)

  3. Настройте вектор с масштабными коэффициентами трения, lambdamu, то, что вы хотите заняться расследованиями. Например, чтобы исследовать масштабные коэффициенты трения равняются 0.9, 0.95, и 1.0, в командной строке войдите:

    mdl = 'DLCReferenceApplication';
    open_system(mdl);
    % Define the set of parameters to sweep
    lambdamu = [0.9, 0.95, 1.0];
    numExperiments = length(lambdamu);

  4. Создайте массив входных параметров симуляции, который устанавливает lambdamu равняйтесь Friction постоянным параметрам блоков.

    % Create an array of Simulink.SimulationInputs
    for idx = numExperiments:-1:1
        in(idx) = Simulink.SimulationInput(mdl);
        in(idx) = in(idx).setBlockParameter([mdl '/Environment/Friction'],'Value',['ones(4,1).*',num2str(lambdamu(idx))]);
    end

  5. Установите время остановки симуляции в 30 с. Сохраните модель и запустите симуляции. При наличии используйте параллельные вычисления.

    set_param(mdl,'StopTime','30')
    save_system(mdl)
    tic; 
    simout = parsim(in,'ShowSimulationManager','on');
    toc;

  6. Импортируйте результаты симуляции Инспектору Данных моделирования.

    1. На панели инструментов Simulink Editor нажмите кнопку Data Inspector.

    2. В Инспекторе Данных моделирования выберите Import.

    3. В диалоговом окне Import очистите logsout. Выберите simout(1), simout(2), и simout(3). Выберите Import.

    4. Выберите каждый из запусков. Для каждого запуска щелкните правой кнопкой, чтобы переименовать запуск в масштабный коэффициент трения, который соответствует симуляции.

  7. Исследуйте результаты в Инспекторе Данных моделирования.

    • Чтобы оценить успех маневра тестируют когда lambdamu равно.9.95, и 1.0, постройте верхний контур маршрута, <UB>, более низкий контур маршрута, <LB>, и боковое расстояние транспортного средства, Y.

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

    • Чтобы оценить устойчивость отклонения от курса для дорожных покрытий, постройте поперечное ускорение, ay, боковое расстояние транспортного средства, Y, угол отклонения от курса, psi, и уровень отклонения от курса, r.

      Результаты похожи на эти графики. Результаты показывают, что транспортное средство имеет уровень отклонения от курса приблизительно.72 рад/с, когда масштабный коэффициент трения равен 1.

  8. Чтобы исследовать результаты далее, используйте эти команды, чтобы извлечь поперечное ускорение, регулируя угол и траекторию транспортного средства от simout объект.

    • Извлеките поперечное ускорение и держащийся угол. Отобразите данные на графике.

      % Plot results from simout object: lateral acceleration vs steering angle
      figure
      for idx = 1:numExperiments
          % Extract Data
          log = simout(idx).get('logsout');
          sa=log.get('Steering-wheel angle').Values;
          ay=log.get('Lateral acceleration').Values;
          
          legend_labels{idx} = ['lambdamu = ', num2str(lambdamu(idx))];
          
          % Plot steering angle vs. lateral acceleration
          plot(sa.Data,ay.Data)
          hold on
      end
      % Add labels to the plots
      legend(legend_labels, 'Location', 'best');
      title('Lateral Acceleration')
      xlabel('Steering Angle [deg]')
      ylabel('Acceleration [m/s^2]')
      grid on

      Результаты похожи на этот график. Они указывают, что самое большое поперечное ускорение происходит, когда масштабным коэффициентом трения является 1.

    • Извлеките путь к транспортному средству. Отобразите данные на графике.

      figure
      for idx = 1:numExperiments
          % Extract Data
          log = simout(idx).get('logsout');
          VehFdbk = log.get('VehFdbk');
          x = VehFdbk.Values.Body.X;
          y = VehFdbk.Values.Body.Y;
          legend_labels{idx} = ['lambdamu = ', num2str(lambdamu(idx))];
         
          % Plot vehicle location
          plot(y.Data,x.Data)
          hold on 
      end
      % Add labels to the plots
      legend(legend_labels, 'Location', 'best');
      title('Vehicle Path')
      xlabel('Y Position [m]')
      ylabel('X Position [m]')
      grid on

      Результаты похожи на этот график. Они указывают, что самое большое боковое положение транспортного средства происходит, когда масштабным коэффициентом трения является 0.9.

Смотрите также

|

Ссылки

[1] ISO 3888-2: 2011. Легковые автомобили — Испытательная площадка для серьезного маневра изменения маршрута.

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте