总序

本人自2020.9加入重庆大学明月科创班,在2022年夏天闲来无事,遂萌发了总结这两年课程收获和安排的念头。

仅以苯系列纪念我在重庆大学明月科创班作为第一届学生的经历。

一.项目介绍

定量工程分析,本课程最终目的是通过通过Matlab仿真设计一款能够在给定角度(120°-130°)倾覆的电动船舶模型。该船只需要满足以下条件:

1.在倾斜120°-130°时沉没

2.能够通过通过电力或者风帆实现移动

3.能够在不在倾覆角时平稳的运行

二.Matlab部分

步骤

1.将船体横向切片为多个部分

2.通过拟合曲线表示出每个切片的轮廓

3.假定每个部分的密度均匀,通过轮廓计算出该切片的质心位置

4.综合各个切片的质心位置,计算出船体的质心

5.表示出水面的直线方程

6.计算水体与船体重合的部分

7.重复1-4的步骤,计算出船体的浮心

8.用改变水面方程的方式模拟船舶倾斜,当浮心低于质心时船舶沉没,通过轮询的方法计算出该船体的倾覆角

下附代码

%输入船参数
boat.L = 450;         % 长度 mm
boat.W = 140;         % 宽度 mm
boat.HB = boat.W / 2;  % 半宽度 mm
boat.D = 100;         % 高度 mm
boat.mass = 112;       % 质量 g
boat.V = 360010             %体积 mm
boat.density =  55*boat.mass/boat.V           %密度 g/density_water = 0.001;    % 水的密度 g / mm^3  dy = 1;   % cm    以1mm划分区间
dz = 1;   % cm
mesh.ys = -boat.HB:dy:boat.HB;        % mm
mesh.zs = 0:dz:boat.D;                % m
[mesh.ygrid,mesh.zgrid] = meshgrid(mesh.ys,mesh.zs); % [mesh.ygrid,mesh.zgrid]用来画出船体
mesh    yt = mesh.ys;
%曲面方程
ztb =-(20736-yt.^2).^(1/2)+116+28
ztp =(20736-yt.^2).^(1/2)-116+38plot(yt, ztp)%输出曲面方程
hold on;
plot(yt,ztb)
hold off;
hull = (mesh.zgrid > ztb)&(mesh.zgrid < ztp)  %取出船体,hull表示船体redmap = [1,1,1;1,0,0]; %[]中前三位是背景的RGB,后三位是图像的RGB
colormap(redmap);
mesh.zs = -mesh.zs+100
image(mesh.ys,mesh.zs,flipud(hull));%画出水下船体%开始计算部分
boat.hull = hull
boat.num_cells = sum(boat.hull(:)); %船体所占格子(dy,dz)数
areahull = boat.num_cells * dy * dz; %mm^2
masshull = areahull * boat.density; %无意义
%COM_hull = centerOfMass2(hull);      %质心
COM_hull = [-1.3,20]%表示水
theta = 110; %倾斜角
wucha = 10000;
d0 = 0
ywater_0 = mesh.ys
for i = 1:100zwater_0 = tand(theta) .* ywater_0 + i;if (theta < 90)water_0 = mesh.zgrid < zwater_0; %当旋转角度<90时,水下面积为zwater_0以下elsewater_0 = mesh.zgrid > zwater_0; %当旋转角度>90时,水下面积为zwater_0以上endsumwater = boat.density*matrixSum(water_0)sub = abs(sumwater - boat.mass)if (sub < wucha)d0 = i;wucha = sub;end
end
d = d0; %水线ywater = mesh.ys;
zwater = tand(theta) .* ywater + dplot(ywater,zwater) %画出水线
if (theta < 90)water = mesh.zgrid < zwater;elsewater = mesh.zgrid > zwater;
end
bluemap = [1,1,1; 0,0,1]; %[]中前三位是背景的RGB,后三位是图像的RGB
plotMatrix(water,mesh,bluemap);
sub_region = boat.hull & water;
plotMatrix(sub_region,mesh,bluemap);
COB = centerOfMass2(sub_region)
xpoint = [COB(1,1),COM_hull(1,1)]
ypoint = [COB(1,2),COM_hull(1,2)]plottheta(theta,d)%输出水线和铅垂线
hold onimage(mesh.ys,mesh.zs,flipud(sub_region));%画出水下船体
image(mesh.ys,mesh.zs,flipud(hull),'AlphaData',0.5);%画出船体
plot(xpoint,ypoint,'r')%输出质心与浮心的连线
axis equal
%通过比较质心与浮心的连线与铅垂线的位置来确定船体是否倾覆(当质心与浮心的连线与铅垂线平行时刚好倾覆)
%算浮力
buoyancy=sum(sum(sub_region))*0.001*0.001*1000*boat.L%程序3
pi = 3.1415926
x1 = 0;
y1 = 120;
x2 = 0;
y2 = 50;
COB = [x1 y1];
buoyancy = 1000;
COM = [x2 y2];
jd = pi/6;
niujv = sin(jd)*abs(y1-y2)*buoyancyfunction plotMatrix(A,mesh,cmap)% plotMatrix: 输出矩阵% A: matrix% mesh: srtruct containing ys and zs% cmap: Colormapcolormap(cmap);image(mesh.ys,mesh.zs,flipud(A)); %flipud垂直翻转
endfunction plottheta(theta,d)x=linspace(-100,100)y1 = tand(theta).*x + dy2 = tand(90+theta).*x+30plot(x,y1,'b')hold onplot(x,y2,'g')plot(x,0,'r')
endfunction M = matrixSum(A)% matrixSum: 计算一个矩阵的质量% A: 矩阵% returns: scalar% normally sum(m) computes the sums of the columns% selecting m(:) flattens the matrix and computes the sum of all elements% see https://stackoverflow.com/questions/1721987/what-are-the-ways-to-sum-matrix-elements-in-matlabM = sum(A(:));
endfunction COM = centerOfMass2(img)% centerOfMass2: 计算二维质心
img = double(img);
[m,n] = size(img);
x = 0;y = 0;sum=0;
for i = 1:mfor j = 1:ny = y + img(i,j)*i;x = x + img(i,j)*j;sum = sum+img(i,j);end
end
xcom = x/sum;
ycom = y/sum;
COM = [xcom-n/2,ycom]endfunction object1 = addMass2(object,mass,x,y) object(x,y)=1+massobject1 = object
end
function index = closestIndex(coord,grid)% closestIndex: finds the index of the grid point closest to coord% coord: scalar coordinate% grid: matrix of coordinates% returns: integer index% see: https://www.mathworks.com/matlabcentral/answers/152301-find-closest-value-in-array[c, index] = min(abs(coord-grid));
end

三.输出部分

最终得到我们设计的船体的倾覆角为125°。

之后我们通过假装配重的方式将他的倾覆角最终控制在122°

完成了设计要求

重庆大学明月科创班课程记录2.1大一下定量工程设计-定倾角船舶设计(Matlab)相关推荐

  1. 重庆大学明月科创班课程记录1.1大一上自然与设计-仿生蝗虫设计(Solidworks)

    总序 本人自2020.9加入重庆大学明月科创班,在2022年夏天闲来无事,遂萌发了总结这两年课程收获和安排的念头. 仅以苯系列纪念我在重庆大学明月科创班作为第一届学生的经历. 一.项目介绍 自然与设计 ...

  2. 中投民生:跟投科创板一周年!券商大赚135亿

    中投民生:跟投科创板一周年!券商大赚135亿 券商强制跟投"是科创板市场的一项重要的制度创新.那么科创版运行一周年之际,券商跟投的效果如何呢? 据数据统计,截至7月24日,登陆科创板上市公司 ...

  3. 【科创人独家】Kyligence韩卿:立志做出中国自己的全球顶级数据平台

    2016年初,Kyligence成立.这次创业,不只是一次追求商业成功的尝试,更承载着韩卿本人怀揣多年的信念:在国际基础软件领域立足并领导行业. 从中国来,到全球去 韩卿讲述了对自己产生了巨大影响的三 ...

  4. UCloud科创板上市获受理,相关文件披露重要经营信息

    UCloud上市科创板相关文件已被上海证券交易所受理,股权结构.主要财务指标.上市标准及未来战略全数公开. 近日,UCloud上市科创板相关文件已经正式被上海证券交易所受理,拟融资金额47.48亿元, ...

  5. 科创板一年突破1.7万亿的最全真相 | 钛媒体封面特刊

     关注ITValue,看企业级最新鲜.最价值报道! 一年前的6月13日10点04分,足以载入中国资本市场史册的时刻到来了--国务院副总理刘鹤.上海市委书记李强.时任上海市市长应勇.证监会主席易会满共同 ...

  6. 《2023中国各地区科创之星势力图1.0版》重磅发布

    数据猿出品 本次"数据猿2023年度三大媒体策划活动--<2023中国各地区科创之星势力图1.版>"的发布,是数据猿在2022年3.0版本的基础上,迭代升级的2023开 ...

  7. 办公高效、生活便捷!海尔科创生态园启用

    理想的工作环境应该是什么样子? 是高效的智慧办公,流畅的商务洽谈,快速的停车及通行-- 仅仅这些就够了吗?高效的数字化体验之外,还有浓浓的人性化关爱,健身设备齐全的员工服务中心.给哺乳妈妈们专设的母婴 ...

  8. 初中文化能学编程吗_网页编程课程来了,确定不来pick一下!!!|科创辅学进行时...

    KE CHUANG FU XUE 科创辅学 天天用手机,各种app 半夜不睡觉,只会网上浪 醒醒,少年,别玩了 不要再搞这些花里胡哨的东西了! 要学会用魔法打败魔法 上一周,我们跟着夏老师学习了 Ar ...

  9. 我司何晓磊受邀在“科创中国”做”创新”课程分享

    我司何晓磊受邀在"科创中国"做"创新"课程分享 为加速推进我国科技成果转移转化工作,加强技术转移人才队伍建设,培养一批具有国际视野的技术转移专业人才,由国家科技 ...

最新文章

  1. margin和padding
  2. 2021-03-09 Local Lipschitz 可能存在 有限时间逃逸
  3. python含金量最高的考试_中国最难的五大考试,第二个含金量最高,考过年薪30万起!...
  4. PLSQL 设置日期格式为年月日不显示时分秒
  5. 支付宝封杀比特币,可以说是毫不留情!
  6. 【Elasticsearch】es 报错 index has not yet rolled over with that alias
  7. sharepoint_wf 启动窗口设计,支配给自由域用户
  8. HDU1166树状数组
  9. overflow-x和文字超出...显示
  10. 阿里官方 Redis 开发规范
  11. 三国群英传服务器维护是几点,20191112维护公告
  12. 多层感知器(Muti-Layer Perception ,MLP)
  13. 牛逼!这届WWDC依旧展现了那个让你无法复制的苹果!
  14. php编辑菱形图案代码,vb怎么输出菱形图案?vb绘制菱形的教程
  15. 甲乙分别自A,B两地同时相向步行,2小时后中途相遇,甲乙步行速度都提高了1千米/时,当甲到达B地后立刻按原路向A地返行,当乙到达A地后也立刻按原路向B地返行,甲乙两人在第一次相遇后3小时36分
  16. web实现视频播放-服务端所需工作
  17. OSChina 周三乱弹 —— 围观单片机大佬
  18. 计算机基础实验测试题第一章(悄悄变强秘籍)
  19. 基于深度学习的公交客流统计解决方案简介
  20. 基于QtQuick2.0应用程序运行于XP系统的诸多问题

热门文章

  1. python实验——第一次
  2. 汉语拼音的5个声调该怎么学?
  3. 单条视频播放量破2000w,一首《孤勇者》就能盘活一个账号?
  4. 2010Execl冻结多行
  5. 基于SDN环境下的DDoS异常攻击的检测与缓解--实验
  6. 【管培生培养计划】第一个月的培养记录
  7. 「数据运营」理解DataOps运营
  8. 深度linux引导安装教程,deepin深度系统安装教程-电脑系统安装手册
  9. 有赢有输---Kodu少儿编程第十一天
  10. 【WZOI】AC大礼包(1~130)