铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)

这篇具有很好参考价值的文章主要介绍了铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

 

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Matlab代码实现


💥1 概述

铰接式车辆是一种具有铰接连接的多体系统,具有特殊的动力学行为。进行铰接式车辆的横向动力学仿真研究可以遵循以下步骤:

1. 定义车辆模型:首先建立铰接式车辆的几何模型,并定义车辆的基本参数,如质量、惯性特性、轮胎参数等。可以使用计算机辅助设计软件(如AutoCAD)或专业的车辆仿真软件(如CarSim、ADAMS等)创建车辆的3D几何模型。

2. 车辆动力学模型:根据车辆几何模型和运动学原理,建立车辆的动力学模型。通常使用多体动力学原理描述车辆的运动,包括刚体运动学和运动学方程。可以使用拉格朗日方程或牛顿-欧拉方程等动力学方法建立车辆的运动学和动力学方程。

3. 轮胎模型:根据车辆使用的轮胎类型,选择合适的轮胎力学模型。常见的轮胎模型包括线性模型、Magic Formula模型等。根据轮胎模型的参数,计算轮胎的侧向力和纵向力。

4. 驱动和操纵控制模型:定义车辆的驱动和操纵控制系统模型,包括驱动力和转向力的输入模型。根据驾驶策略和控制算法,生成对应的引擎扭矩和转向角信号,用于驱动和操纵车辆。

5. 数值求解:设定仿真的时间步长,并使用数值方法(如欧拉法、龙格-库塔法等)对车辆的动力学方程进行求解。在每个时间步长内,使用车辆的输入模型、轮胎模型和操纵控制模型,计算车辆的状态和响应。

6. 仿真结果评估:通过分析仿真结果,得到车辆的横向动力学响应,包括车辆的侧向运动、横向力、滑移角等。评估车辆的稳定性和控制性能,分析车辆参数和控制策略对横向动力学的影响。

7. 结果解释和报告:根据仿真结果,撰写研究报告或技术论文,包括车辆的模型建立、仿真方法、参数分析和结论等。

需要指出的是,进行铰接式车辆的横向动力学仿真需要熟悉车辆动力学原理和相关仿真工具。为了获得精确和可靠的仿真结果,建议使用专业的车辆仿真软件,并根据具体的研究目的和问题,选择合适的车辆模型和控制策略进行仿真研究。

📚2 运行结果

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法 铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现),matlab,机器学习,算法

部分代码:

%% Maneuver
% The maneuver to be estimated by the Kalman Filter is defined here.
%
% Choosing simulation parameters:
%

T       = 6;                        % Total simulation time [s]
resol   = 50;                       % Resolution
TSPAN   = 0:T/resol:T;              % Time span             [s]
    
%%
% Running simulation.
%

simulatorPlant = Simulator(VehiclePlant, TSPAN);
simulatorPlant.dPSI0 = 0.35;
simulatorPlant.Simulate

%%
% Printing simulation parameters.
%

disp(simulatorPlant)

%%
% Retrieving states
%

XTPlant     = simulatorPlant.XT;
YTPlant     = simulatorPlant.YT;
PSIPlant    = simulatorPlant.PSI;
vTPlant     = simulatorPlant.VEL;
ALPHATPlant = simulatorPlant.ALPHAT;
dPSIPlant   = simulatorPlant.dPSI;

XOUTPlant   = [XTPlant YTPlant PSIPlant vTPlant ALPHATPlant dPSIPlant];

%%
% Generating graphics of the vehicle in the considered maneuver (plant)
%

gPlant = Graphics(simulatorPlant);
gPlant.TractorColor = 'r';
gPlant.Frame();

%%
%

close all                   % Closing figures
%
% Inicializando o pneu
%

TireModel = TireLinear;
disp(TireModel)

%%
% Choosing model vehicle
%

VehicleModel        = VehicleSimpleNonlinear; % Same as plant
VehicleModel.tire   = TireModel;
disp(VehicleModel)

%%
% Simulador com o mesmo vetor TSPAN e simula玢o
%

simulatorModel = Simulator(VehicleModel, TSPAN);
simulatorModel.dPSI0 = 0.35;
simulatorModel.Simulate;

disp(simulatorModel)

%%
% Retrieving states
%

XTModel = simulatorModel.XT;
YTModel = simulatorModel.YT;
PSIModel = simulatorModel.PSI;
vTModel = simulatorModel.VEL;
ALPHATModel = simulatorModel.ALPHAT;
dPSIModel = simulatorModel.dPSI;


%

gModel = Graphics(simulatorModel);
gModel.TractorColor = 'g';
gModel.Frame();

%%
%

close all                   % Closing figures

%% Plant and model comparison
% Comparando o modelo de pneu
%

g       = 9.81;
FzF     = VehiclePlant.mF0*g;
FzR     = VehiclePlant.mR0*g;
muy     = VehiclePlant.muy;
nF      = VehiclePlant.nF;
nR      = VehiclePlant.nR;

alpha   = 0:0.5:15;
alpha   = alpha*pi/180;
FyLin   = - TireModel.Characteristic(alpha);
FyFPac  = - TirePlant.Characteristic(alpha, FzF, muy);
FyRPac  = - TirePlant.Characteristic(alpha, FzR, muy);

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(alpha(1:floor(end/2))*180/pi,FyLin(1:floor(end/2)),'r')
plot(alpha*180/pi,FyFPac,'g')
plot(alpha*180/pi,FyRPac,'g--')
xlabel('alpha [deg]')
ylabel('Fy [N]')
l = legend('Linear','Pacejka F','Pacejka R');
set(l,'Location','SouthEast')

%%
% Comparando os estados

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(TSPAN,XTPlant,'r')
plot(TSPAN,XTModel,'r--')
xlabel('Time [s]')
ylabel('Distance X [m]')

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(TSPAN,YTPlant,'g')
plot(TSPAN,YTModel,'g--')
xlabel('Time [s]')
ylabel('Distance Y [m]')

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(TSPAN,PSIPlant,'b')
plot(TSPAN,PSIModel,'b--')
xlabel('Time [s]')
ylabel('PSI [rad]')

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(TSPAN,vTPlant,'c')
plot(TSPAN,vTModel,'c--')
xlabel('Time [s]')
ylabel('vT [m/s]')

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(TSPAN,ALPHATPlant,'m'),
plot(TSPAN,ALPHATModel,'m--'),
xlabel('Time [s]')
ylabel('ALPHAT [rad/s]')

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(TSPAN,dPSIPlant,'k')
plot(TSPAN,dPSIModel,'k--')
xlabel('Time [s]')
ylabel('dPSI [rad/s]')

%%
% Comparando a acelera玢o longitudinal e transversal

saidasPlant = [XTPlant YTPlant PSIPlant vTPlant ALPHATPlant dPSIPlant];
matDerivEstadosPlant = zeros(size(saidasPlant));
for i = 1:size(saidasPlant,1)
    auxil = simulatorPlant.Vehicle.Model(1,saidasPlant(i,:),TSPAN);
    matDerivEstadosPlant(i,:) = auxil';
end

dXTPlant = matDerivEstadosPlant(:,1);
dYTPlant = matDerivEstadosPlant(:,2);
dPSIPlant = matDerivEstadosPlant(:,3);
dvTPlant = matDerivEstadosPlant(:,4);
dALPHATPlant = matDerivEstadosPlant(:,5);
ddPSIPlant = matDerivEstadosPlant(:,6);

ddXPlant = dvTPlant.*cos(PSIPlant + ALPHATPlant) - vTPlant.*(dPSIPlant + dALPHATPlant).*sin(PSIPlant + ALPHATPlant);
ddYPlant = dvTPlant.*sin(PSIPlant + ALPHATPlant) + vTPlant.*(dPSIPlant + dALPHATPlant).*cos(PSIPlant + ALPHATPlant);

ACELNumPlant = [(ddXPlant.*cos(PSIPlant) - ddYPlant.*sin(PSIPlant))  (-ddXPlant.*sin(PSIPlant) + ddYPlant.*cos(PSIPlant))];

saidasModel = [XTModel YTModel PSIModel vTModel ALPHATModel dPSIModel];
matDerivEstadosModel = zeros(size(saidasModel));
for i = 1:size(saidasModel,1)
    auxil = simulatorModel.Vehicle.Model(1,saidasModel(i,:),TSPAN);
    matDerivEstadosModel(i,:) = auxil';
end

dXTModel = matDerivEstadosModel(:,1);
dYTModel = matDerivEstadosModel(:,2);
dPSIModel = matDerivEstadosModel(:,3);
dvTModel = matDerivEstadosModel(:,4);
dALPHATModel = matDerivEstadosModel(:,5);
ddPSIModel = matDerivEstadosModel(:,6);

ddXModel = dvTModel.*cos(PSIModel + ALPHATModel) - vTModel.*(dPSIModel + dALPHATModel).*sin(PSIModel + ALPHATModel);
ddYModel = dvTModel.*sin(PSIModel + ALPHATModel) + vTModel.*(dPSIModel + dALPHATModel).*cos(PSIModel + ALPHATModel);

ACELNumModel = [(ddXModel.*cos(PSIModel) - ddYModel.*sin(PSIModel))  (-ddXModel.*sin(PSIModel) + ddYModel.*cos(PSIModel))];

figure
ax = gca;
set(ax,'NextPlot','add','Box','on','XGrid','on','YGrid','on')
plot(TSPAN,ACELNumPlant(:,1),'r')
plot(TSPAN,ACELNumPlant(:,2),'g')
plot(TSPAN,ACELNumModel(:,1),'r--')
plot(TSPAN,ACELNumModel(:,2),'g--')
xlabel('time [s]')
ylabel('acc. [m/s]')
l = legend('AX Plant','AY Plant','AX Model','AY Model');
set(l,'Location','NorthEast')

%%

🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。

[1]农思赢.铰接式车辆与俄军北极战役集群[J].坦克装甲车辆,2022(05):56-61.DOI:10.19486/j.cnki.11-1936/tj.2022.05.003.

[2]宋广昊. 铰接式车辆紧急变道避障控制策略研究[D].吉林大学,2021.DOI:10.27162/d.cnki.gjlin.2021.001808.

[3].采用DT-30PM铰接式车辆底盘的俄罗斯“雷神”M2DT防空导弹系统[J].坦克装甲车辆,2017(11):73.文章来源地址https://www.toymoban.com/news/detail-674260.html

🌈4 Matlab代码实现

到了这里,关于铰接式车辆的横向动力学仿真提供车辆模型研究(Matlab代码实现)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器人学基础(3)-动力学分析和力-拉格朗日力学、机器人动力学方程建立、多自由度机器人的动力学方程建立

    本章节主要包括拉格朗日力学、拉格朗日函数及建立求解、多自由度机器人的动力学方程、机器人的静力分析、坐标系间力和力矩的变换,主要结合例题进行掌握理解 动力学分析是为了研究机器人应该以多大力进行驱动,虽然根据运动学方程+微分运动可以得到机器人的位置

    2024年02月05日
    浏览(64)
  • 【现代机器人学】学习笔记七:开链动力学(前向动力学Forward dynamics 与逆动力学Inverse dynamics)

    这节的内容主要讲述机器人动力学的内容。相对于本书其他部分运动学内容相比,把动力学一下子合成了一章。看完以后有三个感受: 1.本章难度相对其他章节较大,因此需要反复去看,以求对重要内容的眼熟,不求全部记住,但只求说起某块内容时,心中有数。2.阅读时一

    2024年02月14日
    浏览(48)
  • 二维离散动力学系统的混沌研究【基于matlab的动力学模型学习笔记_9】

    摘 要: 混沌(Chaos)是指发生在确定系统中的貌似随机的不规则运动,本文将基于经典的二维系统,然后根据动力学方程研究其混沌产生过程以及相对应的MATLAB仿真,再讨论Lyapunov指数以及正平衡点。 上一篇中介绍了一维系统,这次我们将维数提升到二。 /*仅当作学习笔记,

    2024年02月05日
    浏览(60)
  • 盐构造发育的动力学机制

    盐构造可以由以下6 种机制触发引起(图 2)[18] :①浮力作用;②差异负载作用;③重力扩张作 用;④热对流作用;⑤挤压作用;⑥伸展作用。盐体 的塑性流动和非常规变形是盐构造的主要特点,岩 盐有时在几百m 深处就可以流动,这主要与盐的纯度、地温梯度和盐的干湿度等因

    2024年02月20日
    浏览(52)
  • 旋翼无人机建模动力学公式整理

    C_T为升力系数,C_M为扭力系数,w为螺旋桨的转速 如果是‘十’字型的飞机 x,y,z轴的力矩为: d是机体中心到每个螺旋桨的距离,b是一个系数; f=Ct*W^2,Ct——升力系数,W——螺旋桨的转速 惯量矩阵为: 四个电机产生的力f1,f2,f3,f4,如果我们假设z轴向上为正,可以得到:

    2024年04月29日
    浏览(58)
  • IK(反向动力学)简单原理与实现

    反向运动学 (IK) 是一种设置动画的方法,它翻转链操纵的方向。它是从叶子而不是根开始进行工作的。 要了解 IK 是如何进行工作的,首先必须了解 层次链接 和正向运动学的原则。 简单演示 现在举个手臂的例子。要设置使用正向运动学的手臂的动画,可以旋转大臂使它移离

    2023年04月09日
    浏览(48)
  • 观点动力学模型:主要理论与模型综述

    意见动态建模 1 n 1_n 1 n ​ :表示n维全为1的列向量 0 n 0_n 0 n ​ :表示n维全为0的列向量 I n I_n I n ​ :表示 n × n ntimes n n × n 的单位阵 e i e_i e i ​ :表示基单位向量,向量中除了第i个位置上为1外其余都为0 矩阵A为非负矩阵,意味着着其中所有的元素 a i j ≥ 0 a_{ij}≥0 a i

    2024年02月09日
    浏览(60)
  • 血流动力学与血压(一)--平均动脉压

      上图表示了心脏泵血循环和一个简单的电路的相似程度,图(a)表示了一个简单的电路,V1-V2是在电阻两点的电势差,I是流经电阻的电流,R是电阻的阻值。类比于图(a),图(b)中的 SVR(systemic vascular resistance) 表示的的是全身血管阻抗,P1-P2表示的是体循环两个端点之间的血压

    2024年02月10日
    浏览(47)
  • 【机械臂算法】机械臂动力学参数辨识仿真

    本文以puma560m机械臂为例子进行动力学参数辨识的讲解,puma560m可以在robotic toolbox中找到,这里以它真实机械臂对他的动力学参数进行辨识。 此外这里还有要说的是,机械臂参数辨识其实是一个系统工程,其中和机械、电子、嵌入式都有着很深的联系,并不是仿真这么简单的

    2024年02月15日
    浏览(102)
  • MATLAB - 四旋翼飞行器动力学方程

      本例演示了如何使用 Symbolic Math Toolbox™(符号数学工具箱)推导四旋翼飞行器的连续时间非线性模型。具体来说,本例讨论了 getQuadrotorDynamicsAndJacobian 脚本,该脚本可生成四旋翼状态函数及其雅各布函数。这些函数将在使用非线性模型预测控制(模型预测控制工具箱)控制

    2024年01月22日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包