【物理应用】基于Matlab模拟13自由度摩托车模型

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法  神经网络预测 雷达通信  无线传感器

信号处理 图像处理 路径规划 元胞自动机 无人机  电力系统

⛄ 内容介绍

“13 自由度摩托车模型”一个可以模拟摩托车行为的多体系统的实现。因此,假设摩托车由 6 个由关节连接的独立刚体组成。(它的属性由与 Yamaha FJR 1300 匹配的 56 个参数描述)。摩托车零件有后轮、后摇臂、主体、转向头、前叉和前轮。利用经典力学的欧拉-拉格朗日形式推导了13个二阶非线性常微分运动方程。这个包含 13 个二阶 ODE 的系统将摩托车的运动描述为骑手施加的力(发动机扭矩、转向扭矩、前/后制动力)的函数。线性化为 26 个耦合的一阶 ODE 这个方程组可以作为 RightHandSide 函数提供给 matlab 内置 ODEsolver 之一,计算时间 t 的 13 个广义坐标(q_i's)中的每一个的二阶导数(广义加速度)。通过这种方式,我计算了两种场景的模拟,一个特技和一个 stoppie。

⛄ 部分代码

function [] = createUIcontrols

    figure_handle = findobj('Tag','figure_handle');

    

        data = figure_handle.UserData;

        data.Play = 1;

        figure_handle.UserData = data;

    

   btnPause = uicontrol(figure_handle,'Style','pushbutton','String','Pause','Callback',@ PauseCallback,'OuterPosition',[38.8000  686.4000   34.0000   31.0000]);

    btnPlay = uicontrol(figure_handle,'Style','pushbutton','String','Play','Callback',@ PlayCallback,'OuterPosition',[5.0000  686.4000   34.0000   31.0000]);

    btnStop = uicontrol(figure_handle,'Style','pushbutton','String','Stop','Callback',@ StopCallback,'OuterPosition',[73.0000  686.4000   34.0000   31.0000]);

%%

function [] = PauseCallback(source,~)

dat = figure_handle.UserData;

dat.Play = 0;

figure_handle.UserData = dat;

end

function [] = StopCallback(source,~)

dat = figure_handle.UserData;

dat.Play = 0;

dat.Index = 1;

figure_handle.UserData = dat;

% load('stoppie_3.mat','q','qd','t');  q(1),qd(1),t(1)

        animateFram1_1();

end

function [] = PlayCallback(source,~)

Dat = figure_handle.UserData;

Dat.Play = 1;

figure_handle.UserData = Dat;

        i = figure_handle.UserData.Index;

        load('stoppie_3.mat','q','qd','t');

        animateFram1_1(q,qd,t); % q(i:length(q)),qd(i:length(q)),t(i:length(q))

end

end

%%

⛄ 运行结果

⛄ 参考文献

[1]张梦娇, 李瑞歌, 李辉,等. 基于MATLAB的仿真模拟在大学物理教学及实验中的应用[J]. 农业网络信息, 2016(11):3.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天Matlab科研工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值