exponenta event banner

Коэффициент усиления рулевого управления транспортного средства на различных скоростях

В этом примере показано, как использовать динамику транспортного средства, медленно увеличивающую эталонное приложение рулевого управления, для анализа влияния угла поворота и скорости на управление транспортным средством. В частности, можно рассчитать коэффициент усиления рулевого управления при выполнении маневра с разными уставками скорости. На основе постоянной скорости, испытания на регулируемое рулевое управление, определенного в SAE J266, медленно увеличивающийся маневр рулевого управления помогает охарактеризовать боковую динамику транспортного средства. В ходе испытания водитель:

  • Ускоряется до тех пор, пока транспортное средство не достигнет целевой скорости.

  • Поддерживает целевую скорость.

  • Линейно увеличивает угол руля от 0 градусов до максимального угла.

  • Сохраняет угол поворота рулевого колеса в течение заданного времени.

  • Линейно уменьшает угол руля с максимального угла до 0 градусов.

Дополнительные сведения о справочном приложении см. в разделе Медленно увеличивающийся маневр рулевого управления.

helpersetupsis;

Медленно увеличивающийся маневр рулевого управления

1. Откройте блок Генератор привязки продольного синуса (Swept Sine Reference Generator). По умолчанию маневр устанавливается со следующими параметрами:

  • Уставка продольной скорости - 50 миль/ч

  • Скорость маховика - 13,5 град.

  • Максимальный угол маховика - 270 град.

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

3. Выполните маневр с настройками по умолчанию. По мере выполнения моделирования просмотрите информацию о транспортном средстве.

mdl = 'ISReferenceApplication';
sim(mdl);
### Starting serial model reference simulation build
Warning: method not found. 
### Successfully updated the model reference simulation target for: Driveline
### Successfully updated the model reference simulation target for: PassVeh14DOF
### Successfully updated the model reference simulation target for: SiMappedEngineV

Build Summary

Simulation targets built:

Model            Action                       Rebuild Reason                              
==========================================================================================
Driveline        Code generated and compiled  Driveline_msf.mexw64 does not exist.        
PassVeh14DOF     Code generated and compiled  PassVeh14DOF_msf.mexw64 does not exist.     
SiMappedEngineV  Code generated and compiled  SiMappedEngineV_msf.mexw64 does not exist.  

3 of 3 models built (0 models already up to date)
Build duration: 0h 4m 0.663s

  • В окне «Положение транспортного средства» просмотрите продольное расстояние транспортного средства как функцию или боковое расстояние. Желтая линия отображает скорость рыскания. Синяя линия показывает угол поворота.

  • В подсистеме визуализации откройте блок Yaw Rate и Steer Scope для отображения зависимости скорости и угла поворота от времени.

Уставки скорости сдвига

Выполните медленно увеличивающееся эталонное приложение угла поворота рулевого управления с тремя различными заданными точками скорости.

1. В медленно увеличивающейся эталонной модели приложения управления ISRefingApplication откройте блок Медленно увеличивающийся руль. Уставка продольной скорости, параметр блока xdot_r задает скорость транспортного средства. По умолчанию скорость составляет 50 миль/ч.

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

  • Активизируйте регистрацию сигналов для порта вывода сигнала медленно увеличивающегося направления.

mdl = 'ISReferenceApplication';
ph=get_param('ISReferenceApplication/Slowly Increasing Steer','PortHandles');
set_param(ph.Outport(1),'DataLogging','on');
  • Включить регистрацию сигналов для выходного сигнала блока пассажирского транспортного средства.

ph=get_param('ISReferenceApplication/Passenger Vehicle','PortHandles');
set_param(ph.Outport(1),'DataLogging','on');
  • В подсистеме визуализации включите регистрацию сигналов для блока ISO.

set_param([mdl '/Visualization/ISO 15037-1:2006'],'Measurement','Enable');

3. Настройка вектора уставки скорости, xdot_r, что вы хотите расследовать. Например, в командной строке введите:

vmax = [45, 50, 55];
numExperiments = length(vmax);

4. Создайте массив входных данных моделирования, которые задают значение амплитуды рулевого управления для параметра «Генератор опорной синусоиды в продольном направлении», theta_hw равное amp.

for idx = numExperiments:-1:1
    in(idx) = Simulink.SimulationInput(mdl);
    in(idx) = in(idx).setBlockParameter([mdl '/Slowly Increasing Steer'], ...
        'xdot_r', num2str(vmax(idx)));
end

5. Сохраните модель и запустите моделирование. Если доступно, используйте параллельные вычисления.

save_system(mdl)
tic;
simout = parsim(in,'ShowSimulationManager','on');
toc;
[17-Dec-2020 14:50:03] Checking for availability of parallel pool...
[17-Dec-2020 14:50:03] Starting Simulink on parallel workers...
[17-Dec-2020 14:50:03] Loading project on parallel workers...
[17-Dec-2020 14:50:03] Configuring simulation cache folder on parallel workers...
[17-Dec-2020 14:50:03] Loading model on parallel workers...
[17-Dec-2020 14:50:14] Running simulations...
[17-Dec-2020 14:51:05] Completed 1 of 3 simulation runs
[17-Dec-2020 14:51:05] Completed 2 of 3 simulation runs
[17-Dec-2020 14:51:06] Completed 3 of 3 simulation runs
[17-Dec-2020 14:51:07] Cleaning up parallel workers...
Elapsed time is 76.454042 seconds.

6. После завершения моделирования закройте окна инспектора данных моделирования.

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

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

1. Откройте инспектор данных моделирования. На панели инструментов Simulink на вкладке Simulation в разделе Review Results выберите Data Inspector.

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

  • В диалоговом окне «Импорт» снимите флажок logsout. Выбрать simout(1), simout(2), и simout(3). Выберите Импорт.

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

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

for idx = 1:numExperiments
    % Create sdi run object
    simoutRun(idx)=Simulink.sdi.Run.create;
    simoutRun(idx).Name=['Velocity = ', num2str(vmax(idx))];
    add(simoutRun(idx),'vars',simout(idx));
end
sigcolor=[0 1 0;0 0 1;1 0 1];
for idx = 1:numExperiments
    % Extract the lateral acceleration, position, and steering
    xsignal(idx)=getSignalByIndex(simoutRun(idx),22);
    xsignal(idx).LineColor =sigcolor((idx),:);
    ysignal(idx)=getSignalByIndex(simoutRun(idx),23);
    ysignal(idx).LineColor =sigcolor((idx),:);
    msignal(idx)=getSignalByIndex(simoutRun(idx),255);
    msignal(idx).LineColor =sigcolor((idx),:);
    ssignal(idx)=getSignalByIndex(simoutRun(idx),251);
    ssignal(idx).LineColor =sigcolor((idx),:);
    asignal(idx)=getSignalByIndex(simoutRun(idx),259);
    asignal(idx).LineColor =sigcolor((idx),:);
end
Simulink.sdi.view
Simulink.sdi.setSubPlotLayout(5,1);
for idx = 1:numExperiments
    % Plot the lateral position, steering angle, and lateral acceleration
    plotOnSubPlot(msignal(idx),1,1,true);
    plotOnSubPlot(ssignal(idx),2,1,true);
    plotOnSubPlot(asignal(idx),3,1,true);
    plotOnSubPlot(xsignal(idx),4,1,true);
    plotOnSubPlot(ysignal(idx),5,1,true);
end

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

Дальнейший анализ

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

1. Извлеките боковое ускорение и угол поворота. Постройте график данных. Результаты аналогичны этому графику.

figure
for idx = 1:numExperiments
    % Extract Data
    log = get(simout(idx),'logsout');
    sa=log.get('Steering-wheel angle').Values;
    ay=log.get('Lateral acceleration').Values;
    firstorderfit = polyfit(sa.Data,ay.Data,1);
    gain(idx)=firstorderfit(1);
    legend_labels{idx} = [num2str(vmax(idx)), ' mph: Gain = ', ...
        num2str(gain(idx)), ' m/(deg s^2)'];
    % 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

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

figure
for idx = 1:numExperiments
    % Extract Data
    log = get(simout(idx),'logsout');
    x = log{1}.Values.Body.InertFrm.Cg.Disp.X.Data;
    y = log{1}.Values.Body.InertFrm.Cg.Disp.Y.Data;
    legend_labels{idx} = [num2str(vmax(idx)), ' mph'];
    % Plot vehicle location
    axis('equal')
    plot(y,x)
    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

Ссылки

[1] J266 SAE. Процедуры испытания легковых автомобилей и грузовых автомобилей малой грузоподъемности в установившемся режиме. Уоррендейл, Пенсильвания: SAE International, 1996.

См. также

| |

Связанные темы