水瓶加水时的重心变化,MATLAB计算与可视化

空水瓶的重心靠近中部,水量少时,重心靠下,水满时重心又回到中间了。

本文给出一个用于计算水瓶加水过程中,整体的重心变化情况,并绘制可视化的曲线图、示意图

文章目录

重心高度计算

考虑瓶子自重对重心的影响,我们需要分别计算水和瓶子自身的重心。

  • 瓶子自重重心 :假设瓶子的壁厚均匀且高度为 H H H,则瓶子的自重的重心高度位于瓶子高度的中点,即 H / 2 H/2 H/2。
  • 水的重心 :水的重心高度为 h / 2 h/2 h/2,其中 h h h 是水的高度。

总重心高度计算

总重心高度 z total z_{\text{total}} ztotal 可以通过以下公式计算:

z total = m bottle ⋅ z bottle + m water ⋅ z water m bottle + m water z_{\text{total}} = \frac{m_{\text{bottle}} \cdot z_{\text{bottle}} + m_{\text{water}} \cdot z_{\text{water}}}{m_{\text{bottle}} + m_{\text{water}}} ztotal=mbottle+mwatermbottle⋅zbottle+mwater⋅zwater

其中:

  • m bottle m_{\text{bottle}} mbottle 是瓶子的质量(可通过体积和密度计算),
  • z bottle = H 2 z_{\text{bottle}} = \frac{H}{2} zbottle=2H 是瓶子的重心高度,
  • m water m_{\text{water}} mwater是水的质量(可通过水的高度和密度计算),
  • z water = h 2 z_{\text{water}} = \frac{h}{2} zwater=2h 是水的重心高度。

MATLAB 代码

部分代码:

matlab 复制代码
% 水瓶加水时的重心变化,MATLAB计算与可视化
% 2025-01-28/Ver1


clc; clear; close all;

% 参数设置
H = 0.1; % 瓶子的总高度(米)
density_water = 1000; % 水的密度 (kg/m^3)
m_bottle = 0.2; %水瓶质量(kg)
% thickness = 0.01; % 瓶子壁厚(米)
S = 0.01; %水瓶截面积
num_samples = 100; % 采样点数量

% 水的高度变化
h = linspace(0, H, num_samples); % 从0到H的高度变化

% 计算重心高度

运行结果

说明

  1. 重心高度计算:在计算重心高度时,考虑了瓶子的自重及其对重心的影响。
  2. 可视化界面:同样提供了重心高度变化图和瓶子的示意图,帮助理解重心变化。

总结

通过将瓶子的自重考虑在内,模型更为准确,能够更真实地反映水位变化对重心的影响。这对于设计和分析瓶子的稳定性具有重要意义。

完整代码

如需帮助,或有导航、定位滤波相关的代码定制需求,请点击下方卡片联系作者

相关推荐
LawrenceLan9 小时前
Flutter 零基础入门(十一):空安全(Null Safety)基础
开发语言·flutter·dart
txinyu的博客9 小时前
解析业务层的key冲突问题
开发语言·c++·分布式
码不停蹄Zzz9 小时前
C语言第1章
c语言·开发语言
行者9610 小时前
Flutter跨平台开发在OpenHarmony上的评分组件实现与优化
开发语言·flutter·harmonyos·鸿蒙
阿蒙Amon10 小时前
C#每日面试题-Array和ArrayList的区别
java·开发语言·c#
SmartRadio10 小时前
ESP32添加修改蓝牙名称和获取蓝牙连接状态的AT命令-完整UART BLE服务功能后的完整`main.c`代码
c语言·开发语言·c++·esp32·ble
且去填词11 小时前
Go 语言的“反叛”——为什么少即是多?
开发语言·后端·面试·go
知乎的哥廷根数学学派11 小时前
基于生成对抗U-Net混合架构的隧道衬砌缺陷地质雷达数据智能反演与成像方法(以模拟信号为例,Pytorch)
开发语言·人工智能·pytorch·python·深度学习·机器学习
yeziyfx12 小时前
kotlin中 ?:的用法
android·开发语言·kotlin
charlie11451419112 小时前
嵌入式的现代C++教程——constexpr与设计技巧
开发语言·c++·笔记·单片机·学习·算法·嵌入式