课程总结汇报(杨全顺,杨北超)

杨全顺 2022-12-23 10:13:05

使用说明和视频演示将上传至代码仓库:https://gitee.com/yang-quanshun/uuvttuu

       通过本学期课堂的学习与大作业的完成过程,我们学习到了软件开发由项目计划、需求分析、软件设计、编码实现、测试、部署交互等等这一完整的软件开发流程。虽说课本中的很多内容仍不能清晰地理解掌握,但对于软件工程确实也有了比以前更明晰系统的概念和理解,同时也在老师授课下对许多以前未所听闻的开发软件和开发方法如代码规范检查工具,UML模型等有了初步的了解。

       以前在编写一些功能比较复杂的程序时,常常因为打补丁式的添加代码而让整个程序一团糟,在接触数据结构和设计模式以后这种情况终于有了改善。而软件工程更是一门自顶而下的设计思想,学完后应初步具备具备管理整个软件开发流程的能力。从而提高软件的质量与生产率,最终实现软件的社会化生产。在给定成本,进度的前提下,开发出具有可修改性的,可靠性的,可维护性的,可移植性的,可重用性的并且满足用户需求的软件产品。

需求分析

       软件需求的三个层次:业务需求、用户需求、功能需求。需求分析的目的是为了说明软件的工作特征,指明软件和其他系统元素的接口,规定软件必须满足的约束。需求分析的主要任务是细化在前期需求工程的基础需求,构建一种或多种模型以描述用户场景、功能活动、类、类之间的关系、系统和类的行为、数据流等。

       本软件需求来源于某项自动驾驶的课题,需要根据海图给出一系列规划好的路径,以对比和验证设计的自动驾驶算法的性能,它应当具备以下功能:

1.提供用户界面,用于手动规划航行器三维航迹;

2.仿真在某一套控制参数下航行器的实际运动轨迹;

3.保存与载入;

4.导出.xlsx或.m格式的航迹数据;

5.导出.jpg或.jiff格式的航迹图片;

6.导入.xlsx格式的航迹

软件设计

        总体设计过程通常有两个主要阶段组成:

1.系统设计阶段,确定系统的具体实现方案;

2.结构设计阶段,确定软件的结构。

        软件设计的启发式规则:

1. 软件结构提高模块独立性

2. 模块规模应该适中

3. 深度、宽度、扇出和扇入都应适当

4. 模块的应用域应该在控制域之内

5. 力争降低模块接口的复杂程度

6. 设计单入口单出口的模块

7. 模块功能应该可以预测

        本软件对各模块功能和职责划分如下图所示:

        用户界面设计是为了满足软件专业化标准化的需求而产生的对软件的使用界面进行美化优化规范化的设计分支。具体包括软件启动封面设计,软件框架设计,按钮设计,面板设计,菜单设计,标签设计,图标设计,滚动条及状态栏设计,安装过程设计,包装及商品化。

        本软件的用户界面设计遵循了以下原则:

1.操作反馈:对鼠标悬停的按钮有深色效果;对操作平面的选取有黄色高亮标记。

2.一致性:按钮之间的排版和样式风格是统一的。

3.控制权:为了防止程序跑飞导致的错误,分别提供了强行中断任务进行和强行退出软件的功能。

4.效率:根据工作流程对按钮的顺序进行了设计。

        对用户界面设计如下图所示:

编码实现

 1.程序设计语言分为两大类:
    面向机器语言:
        面向机器语言包括机器语言和汇编语言;
    高级语言:
        高级语言分为专用语言和通用语言;      
2.程序设计语言的选择
    理想标准、实用标准、系统用户的要求、工程的规模、软件的运行环境、可以得到的软件开发工具、
    软件开发人员的知识、软件的可移植性要求。
3.软件测试在软件开发过程中的体现:
    a.寻找软件错误,以便进行修正;
    b.证明软件符合要求,是可用的;
    c.验证软件是否符合用户要求;
    d.指导软件的开发过程;
    e.提供软件的相关特征;

4.、编码基本要求:
标识符有意义符合规范,需要加注释,缩进换行等要规范(视觉组织), 最终要求可读性高。
输入要求:输入要求必须检验合格后才可以应用,格式确定,且有提示信息等。
输出要求:格式化输出,例如报表,并且应该有注释信息,易阅读。
效率要求:在保证程序可读性的条件下,保证程序的运行效率和存储效率。

        在编写软件的过程中,路径跟踪算法的实现花费了较大精力。本软件基于前向视线导航+PID速度环实现了一种路径跟踪算法。

转向参数整定:

抬艏参数整定:

跑点测试:

基于贝塞尔插值法的三维路径绘制: 

数据导入与导出: 

工具

图表制作工具: visio

代码仓库:gitee

软件实现工具:Unity、Visual Studio

遵循的代码规范:谷歌C#代码规范 https://google.github.io/styleguide/csharp-style.html

参考文档:Unity参考文档 https://docs.unity3d.com/ScriptReference/index.html

 

 

...全文
934 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
内容概要:本文围绕间歇性光伏出力条件下48V直流母线电压的稳定控制与储能系统双向充放电的闭环调控体系展开深入研究,系统探讨了光伏阵列非线性输出特性与锂离子电池储能系统在离网直流微网中的能量均衡建模方法及分层控制策略。通过Simulink平台构建完整的光伏储能直流系统仿真模型,涵盖PV阵列、Boost DC-DC变换器、负载、双向DC-DC变换器及电池系统等关键组件,实现了最大功率点跟踪(MPPT)与储能系统的协同控制,有效应对光照波动引起的功率供需失衡问题。研究采用双PI闭环控制、模型预测控制(MPC)等多种先进控制算法,显著提升了系统的动态响应速度与直流母线电压稳定性,并实现了储能系统在削峰填谷中的优化运行,对于增强离网微网的供电可靠性与能源利用效率具有重要理论价值和工程意义。; 适合人群:具备电力电子、新能源系统或自动控制等相关领域基础知识的研究生、科研人员,以及从事微电网、光伏储能系统开发与设计的工程技术人员。; 使用场景及目标:① 构建适用于离网场景的光伏储能系统Simulink仿真模型;② 实现间歇性光照条件下48V直流母线电压的精确稳定控制与储能系统的双向能量管理;③ 研究MPPT控制与储能充放电策略之间的协同机制,提升系统在复杂工况下的运行稳定性与鲁棒性;④ 为微电网能量管理系统的设计、优化与性能验证提供可靠的理论依据和技术支撑。; 阅读建议:建议结合文中所述的Simulink仿真模型与控制算法,亲自动手实践建模与仿真全过程,重点关注MPPT控制策略的实现、双向DC-DC变换器的设计以及电压外环与电流内环构成的双闭环控制结构的参数整定,并通过设置不同的光照强度变化曲线和负载投切工况,全面测试和评估系统的动态响应能力与控制性能。

57

社区成员

发帖
与我相关
我的任务
社区描述
NUE软件工程教学社区
软件工程 高校
社区管理员
  • moonmontest
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧