水瓶加水时的重心变化,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. 可视化界面:同样提供了重心高度变化图和瓶子的示意图,帮助理解重心变化。

总结

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

完整代码

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

相关推荐
小羊没烦恼!1 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
伞伞悦读1 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
C语言小火车1 天前
C/C++ 为什么需要编译器?
开发语言·c++
霍霍的袁1 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
孙启超1 天前
【AI开发之Rust】第 11 课:智能指针与内部可变性
开发语言·后端·rust
此生决int1 天前
深入理解C++系列(20)——C++11(下)
开发语言·c++
CoderYanger1 天前
A.每日一题:835. 图像重叠
java·开发语言·程序人生·leetcode·面试·职场和发展·学习方法
伞伞悦读1 天前
【第37期】Python JSON 与配置详解:序列化、反序列化、嵌套结构和配置文件
开发语言·python·json
CCCCCCCCharlie1 天前
Linux进程控制四大核心操作
linux·开发语言
Brilliantwxx1 天前
【STM32】 SPI Flash 驱动开发实战:阻塞模式驱动 W25Q64(含工程代码)
开发语言·stm32·单片机·嵌入式硬件