董朋
摘要:港口天气环境复杂无章,如果不及时对船舶做出适当的预防措施,可能会对停泊或出港的船只带来危害。针对该问题使用Python语言设计并实现了一套基于Django框架的Web系统,对未来一段时间内风对船舶的受力分析,并进行运动状态预测,同时给出相应的决策建议,对防止由于突发大风给港口带来灾害提供了帮助。
Abstract: Complicated weather and environment of port, If proper precautions are not taken against the vessel in time, it may cause harm to the vessel berthing or leaving the port. In order to solve this problem, a web system based on Django framework is designed and implemented with Python language. The force analysis of the wind on the ship in the future is carried out, and the motion state is predicted. At the same time, the corresponding decision-making suggestions are given, which is helpful to prevent the port from disaster caused by sudden strong wind.
关键词:Python;Django框架;风载荷;预测
Key words: Python;Django framework;wind load;forecast
0 引言
船舶风载荷受力分析及运动姿态预测系统是对进出港口或停靠船只的受风力情况及运动姿态预测进行可视化。系统的主要目的是结合气象台给出的未来一段时间内气象预报,为港口工作人员提供船舶未来一段时间内的运动预测,给出相应应对措施,减少因突发大风给港口带来的损失。
每年夏秋是海上热带风暴、强热带风暴和台风的多发季节,海上还常有突发性阵风,由此造成港口大型起重机械和船舶损毁的情况时有发生。随着海运船只的大型化,突发性大风对船只的影响更为严重,如果提前预知大风对船只的运动影响并及时做出相应的应对措施,就能减少很大的损失。
随着计算机科学技术的高速发展,越来越多的计算机语言被开发出来,Django是高水准的Python编程语言驱动的一个开源模型、视图、控制器风格的web应用程序框架。因其有强大的路由映射功能,完善的视图模板实现,操作简单,扩展灵活,成本低安全度高等优点,拥有广大的用户群体和适用范围。无论从质量、性能还是从成本方面考虑,Django框架平台逐渐成为高校信息发展工具的首选[1]。
1 技术可行性
Python是一种跨平台的计算机程序设计语言,是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。可应用于科学计算与统计、人工智能、软件开发、网络爬虫、web开发等领域。相对其他语言,Python具有简单易学、可扩展、免费开源、可移植性强、可嵌入性等优点,因此可用于web系统开发、移动应用开发、科学计算等广泛领域。Django是基于Python语言开发的开源网站框架[2],Django在处理的过程中,对于经典的MVC处理模式进行了再次的封装和升级,在实际项目开发过程中控制器controller起到的作用非常有限,所以Django将控制器部分也进行了封装,但是同时扩展了视图view部分,增加了模板功能实现了前端网页的复用,所以Django的架构模式更加符合MVT处理模式。
2 系统模块设计
本系统分为数据采集模块、数据计算模块、数据可视化模块、决策建议模块,如图1。数据采集模块需要建立数据库用来接收船舶信息和从气象台发送的未来一段时间的风况信息,以便为下一步的计算提供数据。数据计算模块是根据风载荷系数和船舶位姿受风面积计算出船舶的受力分析。数据可视化模块是将风况信息、船舶信息、未来时间段内船舶将要受到的风力分析等信息通过Django框架以曲线、动画等形式进行可视化。
3 系统需求分析
3.1 数据同步
在系统的功能中,数据同步保证着系统的及时性、准确性、可靠性。数据同步功能需要实现风况信息、船舶信息、计算处理后的受力信息、时间统计等一系列功能的同步有效。需要将获取的风况信息经过计算、统计处理后及时分别显示到前端页面和保存到历史数据库中,同时实时更新虚拟仿真模型的位姿信息。
3.2 前端页面
前端页面主要负责展示获取的未来一段时间的风况信息、船舶信息、船舶受力信息、虚拟仿真模拟、统计后的风向频率玫瑰图和决策建议。如图2。
3.3 后台处理
后台处理的主要功能是计算,用算法将某时刻的风的方向以上北下南的准则以三角形的形状转换到前端页面,依靠经验公式用风的信息和船舶信息计算作为参数将船舶受力信息计算出来,然后统计过去一段时间风况信息,为画风向频率玫瑰图提供数据。部分船舶风载荷计算代码如图3。
4 系统实现
建立原始参数数据库,用來接收气象台预测的未来一段时间的风况信息,包括风的级数大小、风的种类、风的方向等信息,采用经验公式估算方法对船舶进行受力计算,计算得出船舶在某时刻点纵向风力、横向风力、回转力矩和横摇力矩的数值,继而估算船舶受风影响后的位姿变化预测。
建立中间数据库,用来存入计算后的信息数据。
数据可视化模块从后端数据库中提取数据导入到前端页面,以折线方式显现一段时间内某时间点的风力大小、方向和船舶受力数据,再将过去的历史时间内的风况信息统计规整,采集整点的风况信息,画出風玫瑰图,可查看过去以月为单位时间的风况规律。通过Ajax技术实现用户界面和服务器后端交互功能,用户通过web浏览器来与服务器进行交互,获取自己所需要的信息。
决策建议模块根据计算出来的船舶力矩等信息来预测船舶将会以什么样的姿态变化,如若遭遇突发强风,给出适当建议以减少人力物力等损失。
本系统采用MySQL数据库,MySQL是最为著名且应用最为广泛的关系型数据库,其体积小、速度快、通过配合不同的存储引擎,可以满足不同的业务场景。数据库是整个系统的关键,数据库设计的好坏起着决定性的作用,系统数据库设计要遵循以下原则:
①体现系统的需求,数据库设计应该优先满足系统的业务需求,准确表达数据之间的关联关系。
②保证数据的一致性,通过主键、外键、非空、唯一索引等保证数据的健全。
③提高数据查询效率,通过合理创建表结构、视图、增加索引等方式,提高数据的查询效率。
④良好的扩展性,必要时能根据需求变化扩展数据结构。
5 结束语
本文提出了基于Django的船舶风载荷受力分析及运动姿态预测系统的设计与实现,使工作人员观察港口船舶的实时动态更加方便,同时也发布了未来一段时间内大风船舶姿态预测,为预防突发大风灾难提供了帮助。
参考文献:
[1]陈红茜,孟超英,邱小彬,王笑娟,李辉.基于Django的高校合同制人员管理系统[J].华东师范大学学报(自然科学版),2015(S1):464-470.
[2]陈镭,张凡龙.基于Django的高校人才引进系统设计与实现[J].计算机时代,2019(07):40-42.
[3]牛宁.基于Django的智慧园区平台系统设计与实现[D].电子科技大学,2018.
[4]周君,贾昆霖,蓝机满,宋艳.基于Django框架的智能图书推荐系统[J].电子科技,2018,31(12):78-80,85.
[5]我看《PHP与MySQL Web开发指南》[J].三版.电脑编程技巧与维护,2005(08):94.