SIEMENS西门子杯,西门子六部十层电梯程序,跑分可以西门子-2021-初赛电梯最终版

SIEMENS西门子杯,西门子六部十层电梯程序,跑分可以西门子-2021-初赛电梯最终版

深夜两点半的实验室里,显示器蓝光映着六部电梯的仿真界面,参数监控窗口的数据流像瀑布一样倾泻而下。这个被我们戏称为"电梯侠"的项目,硬生生让三个机械专业的学生转型成了PLC编程狂人。西门子杯初赛的六部十部电梯控制,最刺激的莫过于看着自己写的调度算法在仿真环境里疯狂飙分。

核心调度算法活像个交通指挥员,得同时处理二十多个呼叫信号。我们给每个电梯设计了状态寄存器,就像给它们戴上了智能手表:

// 电梯状态结构体 TYPE ELEVATOR_STATUS : STRUCT CurrentFloor : INT; // 当前楼层 Direction : INT; // 运行方向(-1/0/+1) TargetFloors : ARRAY[1..10] OF BOOL; // 目标楼层队列 DoorStatus : BOOL; // 门状态 Overload : BOOL; // 超载报警 END_STRUCT END_TYPE

这结构体后来被队友吐槽长得像俄罗斯方块,每个布尔量都是下落中的方块。但正是这简单的数据结构,支撑起了整个调度系统的骨架。

SIEMENS西门子杯,西门子六部十层电梯程序,跑分可以西门子-2021-初赛电梯最终版

多电梯协同像在跳集体舞,我们用了环形队列分配策略。当新呼叫进来时,调度器会计算各电梯的响应成本:

// 成本计算函数 FUNCTION CalculateCost : INT VAR_INPUT elevator : ELEVATOR_STATUS; callFloor : INT; callDir : INT; END_VAR VAR distanceCost : INT := ABS(elevator.CurrentFloor - callFloor); directionBonus : INT := 0; END_VAR IF elevator.Direction = callDir THEN directionBonus := (callDir = 1) ? (10 - callFloor) : callFloor; ELSIF elevator.Direction = 0 THEN directionBonus := 5; ELSE directionBonus := -10; END_IF RETURN distanceCost * 2 - directionBonus;

这个函数里的魔数让学弟看了直挠头,其实都是调试时拍脑袋试出来的经验值。有时候调参就像炒菜,火候到了自然香。

最要命的是防死锁机制。某次模拟时六部电梯卡在3-5层之间来回鬼畜,后来发现是方向标志没及时更新。于是给状态机加了心跳检测:

// 心跳监测程序 IF T#5S <= heartbeatTimer THEN FOR i := 1 TO 6 DO IF NOT elevators[i].Moving AND elevators[i].TargetFloors <> 0 THEN TRIGGER_REALLOCATE(i); heartbeatTimer(IN:=TRUE); END_IF END_FOR END_IF

这段代码后来被我们称作"电梯起搏器",成功解决了僵尸电梯问题。调试时在机房笑得像个两百斤的孩子,结果被隔壁组当成神经病。

仿真界面跑起来那刻,六部电梯的轨迹在监控屏上画出彩虹般的曲线。虽然最终版程序里还藏着几个TODO没解决,但提交前夜的压测跑分已经能稳定在97%以上。清晨走出实验室时,看宿舍楼的电梯都觉得眉清目秀——这大概就是工科生的浪漫吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1164868.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

震惊!“前端已死“刷屏,真相是...程序员必看:如何从写代码到写思路(必收藏)

文章讨论了Gemini 3发布引发的"前端已死"争议&#xff0c;认为这是所有程序员面临的AI时代挑战。我们正进入"自然语言编程"时代&#xff0c;程序员将从写代码转变为写提示词&#xff0c;未来可能出现"提示工程架构师"。文章分享10条提示词工程心…

2026必备!9个AI论文写作软件,自考学生轻松搞定毕业论文!

2026必备&#xff01;9个AI论文写作软件&#xff0c;自考学生轻松搞定毕业论文&#xff01; AI 工具让论文写作不再难 随着人工智能技术的不断进步&#xff0c;越来越多的自考学生开始借助 AI 工具来提升论文写作效率。尤其是在当前 AIGC&#xff08;人工智能生成内容&#xf…

2026程序员生存指南:当“斩杀线“逼近,你的代码正在被AI替代,收藏这篇救命攻略

文章借用游戏"斩杀线"概念&#xff0c;分析了程序员在AI时代的职业危机&#xff0c;提出"生存值核心不可替代性/(薪资期望年龄折损)“公式。指出通用技术能力正在被AI稀释&#xff0c;程序员需从"写代码者"转型为"产品工程师”&#xff0c;培养业…

【必藏】200行代码从零实现LLM:破解大模型黑盒,告别只会调用API的日子

本文详细介绍了如何从零构建一个小型LLM模型&#xff0c;通过逐步实现Tokenizer、Embedding、Attention机制和Transformer结构等核心组件&#xff0c;帮助开发者理解大模型底层原理。作者用朴素的代码实现了类似GPT-2的QDogBaby模型&#xff0c;包括多头注意力、前馈网络、残差…

CUDA统一内存(UVM)完整演进历程-软件篇

CUDA统一内存&#xff08;UVM&#xff09;完整演进历程 一、CUDA 4.0前&#xff1a;显式内存管理时代&#xff08;2007-2012&#xff09; 编程范式&#xff1a;完全手动管理 // 向量加法示例 - 完全显式 __global__ void vectorAdd(float* A, float* B, float* C, int n) {int …

微信小程序版「死了么APP」,它来了

独居的你&#xff0c;如果突然失联了怎么办&#xff1f; 最近&#xff0c;有一款 iOS APP 在社交媒体上突然火了&#xff0c;名字听起来有点“晦气”&#xff0c;叫**「死了么」**。 虽然名字硬核&#xff0c;但它的功能却戳中了无数独居年轻人的软肋&#xff1a;“如果我长时间…

从“死流程“到“活资产“:五步构建AI原生应用新架构【干货收藏】

文章对比了AI应用落地中的两种架构&#xff1a;传统可视化工作流与AgentSkills架构。提出五步构建框架(拆分、编排、存储、分摊、迭代)&#xff0c;分析Agent架构在稳定性、成本和门槛方面的挑战及解决方案。核心观点是AgentSkills更具灵活性、可移植性和自我进化能力&#xff…

收藏必看!大模型推理新范式:一次思考两次回答,大幅提升思维链质量与推理效率

本文介绍了一种创新的"answer→think→answer"推理范式&#xff0c;模型先直接回答问题&#xff0c;高置信度则输出答案&#xff0c;否则再进行推理。这种方法有效减少思维链长度&#xff0c;提高回答精度&#xff0c;通过双答案奖励机制和早停策略实现。实验证明&am…

【必藏】AI Agent实战:打造能自主决策的“数字员工“,架构师必看!

文章探讨了AI Agent作为新一代应用范式的兴起&#xff0c;标志着软件从"功能实现"向"能力封装"的范式升级。AI Agent通过"感知-决策-执行-反馈"的自主闭环&#xff0c;将特定岗位能力系统性封装为可复用的数字化资产。文章详细拆解了AI Agent的核…

PoE 延长器:突破 PoE 距离限制,优化网络灵活部署方案

在智慧办公、安防监控、零售连锁乃至工业自动化等领域&#xff0c;PoE 技术巧妙地将供电与数据传输功能集成于一根以太网电缆之中&#xff0c;极大地简化了布线工作&#xff0c;为各类设备的部署与运行带来了极大的便利。然而&#xff0c;在实际的网络部署过程中&#xff0c;许…

**软件配置项(SCI)的组成** 软件配置项(Software Configuration Item, SCI)是软件配置管理中的基本单位

软件配置项&#xff08;SCI&#xff09;的组成 软件配置项&#xff08;Software Configuration Item, SCI&#xff09;是软件配置管理中的基本单位&#xff0c;主要包括以下几类&#xff1a; 文档类&#xff1a;如需求规格说明书、设计说明书、用户手册、操作手册、维护手册、…

【必读收藏】工具使用模式:给智能体装上“超能力“,让它真正走进现实!

文章介绍了智能体的工具使用&#xff08;函数调用&#xff09;模式&#xff0c;解释了如何让智能体通过调用外部API、数据库、代码等突破语言模型局限&#xff0c;实现与现实世界的交互。文章详细拆解了工具使用模式的概念、价值、六步实现流程、四个关键要点及实际案例&#x…

必藏!让Agent真正“能干活“的Agent Skills全解析,从入门到实战

文章介绍了Agent Skills&#xff0c;一套让AI Agent专业"做事"的标准化技能说明书。它不同于一次性使用的Prompt和解决"能做什么"的Tool/MCP&#xff0c;而是提供长期、稳定、可复用的"做事方法论"。文章详细讲解了Agent Skills的结构、配置方法…

Arcgis导出数据时出错,空间参考z值不匹配(已解决)

问题描述&#xff1a;把shp数据导出到想要的数据库&#xff0c;报错显示“导出数据时出错。空间参考z值不匹配。Excepting object to be local”这个问题是我很久以前就遇到过的问题&#xff0c;并已经形成了熟练的解决方案&#xff0c;这里不再分析原理&#xff08;可能有的地…

显卡市场四强格局解析:技术革新驱动品牌竞争新阶段

2025年显卡市场最新数据显示&#xff0c;一线品牌华硕、技嘉、微星、七彩虹占据中国市场出货量前四位&#xff0c;形成稳定的行业领先阵营&#xff0c;共同引领技术创新与市场发展方向。随着新一代GPU产品的陆续上市&#xff0c;全球独立显卡市场在2025年上半年呈现出显著增长。…

【必藏】提示工程vs微调vs RAG:AI三大技术路线深度对比,一篇搞定你的技术选型

本文对比了提示工程、微调和检索增强生成(RAG)三种AI技术路线。提示工程易用成本低但定制性有限&#xff1b;微调可提高模型准确性但资源需求高&#xff1b;RAG结合外部知识库&#xff0c;能提供最新信息且平衡了成本与性能。文章指出&#xff0c;RAG在提供实时信息、资源消耗和…

配置数据库根据软件开发阶段的不同,分为三类,用于有效管理软件资产

一、配置数据库分类 配置数据库根据软件开发阶段的不同&#xff0c;分为三类&#xff0c;用于有效管理软件资产&#xff1a;开发库&#xff08;Development Library&#xff09; 供开发人员在开发过程中使用。内容频繁变更&#xff0c;允许自由修改。管理控制较为宽松&#xff…

系统化识别项目计划中的潜在威胁,常用工具是**风险条目检查表**,通过结构化方式识别以下七类主要风险

系统化识别项目计划中的潜在威胁&#xff0c;常用工具是风险条目检查表&#xff0c;通过结构化方式识别以下七类主要风险&#xff1a; 产品规模&#xff1a;软件的大小&#xff08;如代码行数、功能点&#xff09;带来的估算偏差风险。商业影响&#xff1a;来自管理层或市场的约…

Elastic Stack 中两种主要查询语言 KQL (Kibana Query Language)​ 和 Lucene​ 的详细对比和解释。

Elastic Stack 中两种主要查询语言 KQL (Kibana Query Language)​ 和 Lucene​ 的详细对比和解释。它们是 Elasticsearch 查询的“两种面孔”&#xff0c;各自有擅长的领域和使用场景。核心区别概览特性KQL (Kibana Query Language)​Lucene (Lucene Query Syntax)​定位​交互…

震惊!LangChain被技术雷达移除,AI开发框架选择指南(收藏必读)

文章探讨了LangChain框架的使用利弊&#xff0c;指出框架存在的意义在于封装重复劳动、沉淀经验和统一代码风格。作者认为好的框架应该没有框架感&#xff0c;容易让人做对事。通过具体例子展示了LangChain的API设计复杂且不一致&#xff0c;掩盖了底层实现。文章引用技术雷达将…