Update 11-19

Update 11-19
内容概要:本文介绍了一个基于MATLAB实现的无人机三维路径规划项目,采用蚁群算法(ACO)与多层感知机(MLP)相结合的混合模型(ACO-MLP)。该模型通过三维环境离散化建模,利用ACO进行全局路径搜索,并引入MLP对环境特征进行自适应学习与启发因子优化,实现路径的动态调整与多目标优化。项目解决了高维空间建模、动态障碍规避、局部最优陷阱、算法实时性及多目标权衡等关键技术难题,结合并行计算与参数自适应机制,提升了路径规划的智能性、安全性和工程适用性。文中提供了详细的模型架构、核心算法流程及MATLAB代码示例,涵盖空间建模、信息素更新、MLP训练与融合优化等关键步骤。; 适合人群:具备一定MATLAB编程基础,熟悉智能优化算法与神经网络的高校学生、科研人员及从事无人机路径规划相关工作的工程师;适合从事智能无人系统、自动驾驶、机器人导航等领域的研究人员; 使用场景及目标:①应用于复杂三维环境下的无人机路径规划,如城市物流、灾害救援、军事侦察等场景;②实现飞行安全、能耗优化、路径平滑与实时避障等多目标协同优化;③为智能无人系统的自主决策与环境适应能力提供算法支持; 阅读建议:此资源结合理论模型与MATLAB实践,建议读者在理解ACO与MLP基本原理的基础上,结合代码示例进行仿真调试,重点关注ACO-MLP融合机制、多目标优化函数设计及参数自适应策略的实现,以深入掌握混合智能算法在工程中的应用方法。
MySQL SQL如下: SELECT t.set_up_time,t.set_off_time,t.borrow_hours,b.update_time FROM tb_mlcs_form_data t JOIN tb_mlcs_work_case_data b ON t.case_no = b.case_no WHERE t.fab_bu = 'CP' AND step_name = 'Close' AND t.update_time LIKE '2025-11-1%' ORDER BY t.update_time DESC; 数据如下: set_up_time |set_off_time |borrow_hours|update_time | -------------------+-------------------+------------+-------------------+ 2025-11-10 09:40:00| | |2025-11-11 06:14:21| 2025-11-11 02:34:44| | |2025-11-11 04:10:31| 2025-11-10 09:35:07| | |2025-11-11 03:19:29| 2025-11-09 20:57:00| | |2025-11-11 02:40:14| 2025-11-10 05:11:00| | |2025-11-11 01:51:21| 2025-11-10 11:20:00| | |2025-11-11 01:13:19| 2025-11-10 23:41:11| | |2025-11-11 01:03:02| 2025-11-09 10:46:00| | |2025-11-10 23:32:38| 2025-11-10 14:22:43| | |2025-11-10 22:55:55| 2025-11-10 15:20:45| | |2025-11-10 22:28:17| 2025-11-10 17:55:38| | |2025-11-10 22:19:10| 2025-11-10 11:55:14| | |2025-11-10 22:07:21| 2025-11-10 09:30:05| | |2025-11-10 22:03:54| 2025-11-10 09:36:42| | |2025-11-10 21:48:49| 2025-11-10 11:22:00| | |2025-11-10 21:43:34| 2025-11-10 18:48:26| | |2025-11-10 21:40:14| 2025-11-10 16:10:40| | |2025-11-10 21:37:52| 2025-11-10 10:17:10| | |2025-11-10 21:30:06| 2025-11-10 09:34:07| | |2025-11-10 21:09:30| 2025-11-10 11:49:43| | |2025-11-10 21:08:47| 2025-11-10 15:59:06| | |2025-11-10 21:00:19| 2025-11-10 10:03:53| | |2025-11-10 20:53:39| 2025-11-10 10:10:24| | |2025-11-10 20:50:48| 2025-11-10 12:39:38| | |2025-11-10 20:48:09| 2025-11-10 18:40:54| | |2025-11-10 20:38:04| 2025-11-10 11:17:34| | |2025-11-10 20:37:40| 2025-11-05 09:04:47| | |2025-11-10 20:31:58| 2025-10-29 09:13:20| | |2025-11-10 20:30:52| 2025-11-10 16:10:00| | |2025-11-10 20:30:13| 2025-11-10 10:59:37| | |2025-11-10 20:23:37| 2025-11-10 14:02:45| | |2025-11-10 19:54:56| 2025-11-10 10:39:26| | |2025-11-10 19:18:53| 2025-11-10 09:44:28| | |2025-11-10 19:16:20| 2025-11-10 09:04:13| | |2025-11-10 19:15:53| 2025-11-09 00:37:01| | |2025-11-10 18:45:31| 2025-11-07 11:36:42| | |2025-11-10 18:41:07| 2025-11-10 09:36:36| | |2025-11-10 18:37:48| 2025-11-10 09:39:55| | |2025-11-10 17:58:43| 2025-11-09 19:06:11| | |2025-11-10 17:57:15| 2025-11-10 09:17:00| | |2025-11-10 17:55:14| 2025-11-10 15:56:00| | |2025-11-10 17:53:23| 2025-11-10 15:36:56| | |2025-11-10 17:53:03| 2025-11-10 10:15:22| | |2025-11-10 17:44:30| 2025-11-10 07:34:01| | |2025-11-10 17:44:05| 2025-11-10 09:45:52| | |2025-11-10 17:38:46| 2025-11-10 15:10:54| | |2025-11-10 17:34:20| 2025-11-10 17:00:00| | |2025-11-10 17:30:46| 2025-11-10 13:31:40| | |2025-11-10 17:28:58| 2025-11-10 14:06:00| | |2025-11-10 17:26:54| 2025-11-10 09:13:52| | |2025-11-10 17:25:31| 2025-11-10 13:15:34| | |2025-11-10 17:24:52| 2025-11-10 09:33:30| | |2025-11-10 17:24:23| 2025-11-09 13:25:41| | |2025-11-10 17:22:00| 2025-11-10 14:42:55| | |2025-11-10 17:17:10| 2025-11-10 11:05:58| | |2025-11-10 17:14:43| 2025-11-10 13:40:18| | |2025-11-10 16:57:03| 2025-11-10 11:22:00| | |2025-11-10 16:51:39| 2025-11-10 09:14:19| | |2025-11-10 16:49:43| 2025-11-10 09:10:49| | |2025-11-10 16:33:10| 2025-11-10 10:56:13| | |2025-11-10 16:32:27| 2025-11-10 13:32:11| | |2025-11-10 16:32:24| 2025-11-10 10:56:03| | |2025-11-10 16:31:25| 2025-11-09 17:31:42| | |2025-11-10 16:29:52| 2025-11-09 09:56:17| | |2025-11-10 16:29:26| 2025-11-10 09:34:25| | |2025-11-10 16:19:30| 2025-11-10 13:10:48| | |2025-11-10 16:13:27| 2025-11-10 13:32:41| | |2025-11-10 16:02:51| 2025-11-10 11:47:03| | |2025-11-10 15:45:20| 2025-11-09 15:59:05| | |2025-11-10 15:38:39| 2025-11-10 13:52:00| | |2025-11-10 15:24:04| 2025-11-10 10:29:00| | |2025-11-10 15:22:28| 2025-11-10 14:55:01| | |2025-11-10 15:05:32| 2025-11-10 09:49:46| | |2025-11-10 14:53:31| 2025-11-09 09:49:18| | |2025-11-10 14:51:56| 2025-11-10 10:27:31| | |2025-11-10 14:28:43| 2025-11-09 09:59:07| | |2025-11-10 14:26:31| 2025-11-09 13:26:53| | |2025-11-10 14:06:45| 2025-11-09 13:26:41| | |2025-11-10 14:01:01| 2025-11-10 10:34:14| | |2025-11-10 13:46:10| 2025-11-10 09:37:11| | |2025-11-10 13:42:25| 2025-11-09 10:26:36| | |2025-11-10 10:51:52| 2025-11-09 09:48:42| | |2025-11-10 10:32:22| 2025-11-08 09:25:15| | |2025-11-10 10:25:45| 2025-11-03 10:46:16| | |2025-11-10 10:18:54| 2025-11-09 11:02:00| | |2025-11-10 09:55:51| 2025-11-10 07:42:30|2025-11-10 09:38:12| 1.93|2025-11-10 09:38:12| 2025-11-09 10:58:16|2025-11-10 08:51:25| 21.89|2025-11-10 08:51:25| 2025-11-09 21:16:47|2025-11-10 07:56:58| 10.67|2025-11-10 07:56:59| 2025-11-10 03:30:13|2025-11-10 07:12:04| 3.70|2025-11-10 07:12:04| 2025-11-10 03:21:11|2025-11-10 06:27:43| 3.11|2025-11-10 06:27:43| 2025-11-09 10:54:02|2025-11-10 04:56:51| 18.05|2025-11-10 04:56:52| 2025-11-09 14:10:00|2025-11-10 02:46:00| 12.60|2025-11-10 02:46:01| 2025-11-09 22:58:00|2025-11-10 00:26:11| 1.47|2025-11-10 00:26:11| 现在需要把b.update_time赋值给t.set_off_time,t.borrow_hours的值为下面的Java计算 Date setUpTime = tbMlcsFormDataNew.getSetUpTime(); Date setOffTime = new Date(); // 当前时间作为关闭时间 // 转换为 LocalDateTime LocalDateTime start = setUpTime.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); LocalDateTime end = setOffTime.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); // 计算时间差毫秒数 Duration duration = Duration.between(start, end); long millis = duration.toMillis(); // 计算小时差(保留两位小数) double hours = (double) millis / (1000 * 60 * 60); tbMlcsFormDataNew.setSetOffTime(setOffTime); tbMlcsFormDataNew.setBorrowHours(String.format("%.2f", hours));
11-12
根据你的需求,我们需要将 `b.update_time` 赋值给 `t.set_off_time`,并计算 `t.borrow_hours`,即从 `t.set_up_time` 到 `b.update_time` 之间的时间差(以小时为单位,保留两位小数)。 ### ✅ SQL 修改建议: 由于你希望在 SQL 中完成赋值和时间差计算,可以使用 MySQL 的日期函数 `TIMEDIFF` 和 `TIMESTAMPDIFF` 来实现: ```sql SELECT t.set_up_time, b.update_time AS set_off_time, ROUND( TIMESTAMPDIFF(MICROSECOND, t.set_up_time, b.update_time) / (1000 * 60 * 60 * 1000000), 2 ) AS borrow_hours, b.update_time FROM tb_mlcs_form_data t JOIN tb_mlcs_work_case_data b ON t.case_no = b.case_no WHERE t.fab_bu = 'CP' AND step_name = 'Close' AND t.update_time LIKE '2025-11-1%' ORDER BY t.update_time DESC; ``` #### 说明: - `b.update_time` 被直接作为 `set_off_time` - 使用 `TIMESTAMPDIFF(MICROSECOND, ...)` 可以获得更精确的毫秒级差值 - 除以 `(1000 * 60 * 60 * 1000000)` 将微秒转换为小时 - `ROUND(..., 2)` 保留两位小数 --- ### ✅ Java 代码逻辑(用于插入或更新数据): 如果你需要在 Java 代码中处理 `set_off_time` 和 `borrow_hours` 的赋值,可以参考如下代码: ```java SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); // 获取 setUpTime 和 update_time Date setUpTime = sdf.parse(tbMlcsFormData.get("set_up_time")); Date setOffTime = sdf.parse(tbMlcsWorkCaseData.get("update_time")); // 计算时间差 LocalDateTime start = setUpTime.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); LocalDateTime end = setOffTime.toInstant() .atZone(ZoneId.systemDefault()) .toLocalDateTime(); Duration duration = Duration.between(start, end); double hours = (double) duration.toMillis() / (1000 * 60 * 60); // 毫秒转小时 // 设置字段 tbMlcsFormData.setSetOffTime(setOffTime); tbMlcsFormData.setBorrowHours(String.format("%.2f", hours)); ``` --- ### ✅ 如果你想更新表中的字段: 你可以使用如下 SQL 更新语句: ```sql UPDATE tb_mlcs_form_data t JOIN tb_mlcs_work_case_data b ON t.case_no = b.case_no SET t.set_off_time = b.update_time, t.borrow_hours = ROUND( TIMESTAMPDIFF(MICROSECOND, t.set_up_time, b.update_time) / (1000 * 60 * 60 * 1000000), 2 ) WHERE t.fab_bu = 'CP' AND step_name = 'Close' AND t.update_time LIKE '2025-11-1%'; ``` --- ### ✅ 总结: - 使用 SQL 可以直接完成字段赋值和时间差计算 - Java 代码用于业务逻辑处理时,也可以实现相同功能 - 注意时间格式的解析和时区处理(推荐统一使用 `LocalDateTime`) --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值