news 2026/4/22 2:00:55

基于simulink的双摆运动系统建模与仿真.使用simulink建立一个双摆的运动模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于simulink的双摆运动系统建模与仿真.使用simulink建立一个双摆的运动模型

基于simulink的双摆运动系统建模与仿真.使用simulink建立一个双摆的运动模型,然后通过matlab调用该模型,并显示运动效果和运动轨迹。 使用版本matlab2022a

打开Simulink新建空白模型,先别急着拉模块——双摆这玩意儿动力学方程写起来能要人命。咱先把问题简化:假设两个摆杆质量均匀,关节无摩擦,直接上牛顿力学推导(具体方程网上能搜到,这里直接给结论)。模型核心是四个微分方程,对应两个摆杆的角度和角速度。

从Library Browser拖出四个Integrator模块,分别代表θ₁、ω₁、θ₂、ω₂。这时候别傻乎乎手动连线,直接上Function模块暴力破解动力学方程。双击Function模块输入:

function [dtheta1, domega1, dtheta2, domega2] = double_pendulum(theta1, omega1, theta2, omega2) m1 = 1; m2 = 1; L1 = 1; L2 = 1; g = 9.8; % 魔鬼就在分母里 denominator = (m1 + m2)*L1 - m2*L1*cos(theta1 - theta2)^2; dtheta1 = omega1; domega1 = (m2*L2*omega2^2*sin(theta1 - theta2)... - (m1 + m2)*g*sin(theta1))... / (L1*denominator); dtheta2 = omega2; domega2 = ((m1 + m2)*(L1*omega1^2*sin(theta1 - theta2)... - g*sin(theta2))... + m2*L2*omega2^2*sin(theta1 - theta2)*cos(theta1 - theta2))... / (L2*denominator); end

这坨代码看着头疼?其实就四个微分方程在互相伤害。注意分母里那个cos平方项,仿真发散多半是它归零导致的——后面调参时给初始角度别设太大。

接上Scope模块看波形前,建议先插个XY Graph模块。设置两个摆杆末端坐标:

x1 = L1*sin(theta1); y1 = -L1*cos(theta1); x2 = x1 + L2*sin(theta2); y2 = y1 - L2*cos(theta2);

这时候点运行大概率会报错——别慌,把求解器换成ode45,最大步长改到0.01。初始角度设个温和值比如θ₁=π/3,θ₂=π/4,速度都设零。跑起来看到波形开始鬼畜?把最大步长再砍半试试。

模型存为double_pendulum.slx,切到MATLAB命令行:

simOut = sim('double_pendulum', 'StopTime', '10'); x2 = simOut.logsout.getElement('x2').Values.Data; y2 = simOut.logsout.getElement('y2').Values.Data; % 画个骚气的轨迹动画 figure; hold on; plot(x2, y2, 'Color', [0.5 0.5 0.5 0.3]); h = plot(nan, nan, 'ro-'); axis equal; for k = 1:10:length(x2) set(h, 'XData', [0, x1(k), x2(k)], 'YData', [0, y1(k), y2(k)]); drawnow pause(0.01); end

跑完这段能看到摆锤划出的混沌轨迹——像不像量子物理学家喝醉后的涂鸦?试着把m2调成3公斤,轨迹立马变得像被猫挠过的毛线团。这种非线性系统对初始条件敏感得要命,把θ₁初始值从π/3改成π/3+0.001,运行十秒后轨迹完全亲妈不认。

遇到仿真卡住别急着砸键盘,检查下有没有出现除以零的情况。实在不行在分母里加个eps保命:

denominator = (m1 + m2)*L1 - m2*L1*cos(theta1 - theta2)^2 + eps;

最后留个坑:把下方摆杆换成弹簧连接,Simulink模型会复杂到让你想转行卖煎饼——不过那又是另一个故事了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/21 12:17:14

亚马逊采购测评矩阵养号不踩雷:实现低砍单率的七大策略

亚马逊测评技术是指卖家通过自主搭建一套完整的买家账号体系,模拟真实用户的购物行为,为店铺产品提升销量、留评率和搜索权重的一种运营手段。其核心价值在于可控性高、成本低(单个账号成本仅需几元至十几元)且能规避第三方测评的…

作者头像 李华
网站建设 2026/4/17 14:37:05

一张图看懂风控策略的“内卷”之路:从简单规则到复杂网络

在数字化浪潮下,风控早已不是“拦路虎”式的简单关卡,而是演变成一场动态、多维的攻防战。今天,我们用一张图带你穿越风控策略的“内卷”进化史,看它如何从“青铜”走向“王者”。    文章目录 一、【核心图解】风控策略的“内卷”进化之路 二、第一站:青铜时代 简单规…

作者头像 李华
网站建设 2026/4/21 3:12:56

GPT与BERT深度解析:Transformer的双子星架构

一、什么是GPT?BERT架构特点是什么? GPT:生成式预训练Transformer GPT是由OpenAI开发的基于Transformer解码器的自回归语言模型,专注于文本生成任务。 GPT的核心特点 GPT的工作方式: 从左到右逐词生成文本每个词只…

作者头像 李华
网站建设 2026/4/18 23:41:44

通过Jmeter压测存储过程

一、存储过程准备: 1、建立一个空表: CREATE TABLE test_data ( id NUMBER, name VARCHAR2(50), age NUMBER );2、建立一个存储过程: CREATE OR REPLACE PROCEDURE insert_test_data (n IN NUMBER) AS BEGIN--EXECUTE IMMEDIATE truncate …

作者头像 李华
网站建设 2026/4/20 18:29:34

3步精准调优JMeter连接池:解决数据库性能测试的核心痛点

3步精准调优JMeter连接池:解决数据库性能测试的核心痛点 【免费下载链接】jmeter Apache JMeter open-source load testing tool for analyzing and measuring the performance of a variety of services 项目地址: https://gitcode.com/gh_mirrors/jmeter1/jmete…

作者头像 李华