控制多头秤(如机器)的逻辑

问题描述 投票:0回答:1

我需要帮助创建一种算法来控制机器,该机器的功能与多头秤的功能非常相似。 我将有 192 个可用“头”的数组来进行组合。

我不需要找到所有可用的组合。机器需要一些时间来处理组合,所以如果我每次找到 30 个组合就足够了。

我想优化它,首先使用需要仅使用1个头的组合,然后仅使用2个头的组合,然后使用3个头的组合,以此类推,这样机器的产量会尽可能高。

这将在 PLC 上实现,因此我没有像 PC 那样的“无限”资源。例如,递归就是一个问题。

我将使用 codesys 进行编程

我想看看关于如何实现这一点的建议

例如机器需要输出3KG至3.2KG的负载。我有多达 192 个重量,范围从 0.5 到 4KG(是的,它可以有超载)。我每次都需要找到 30 个最佳组合。

EX

组合1 = HEAD1 = 3.1Kg 组合2 = HEAD5 (1.5) + Head8 (1.6) = 3.1Kg

combinations plc codesys structured-text
1个回答
2
投票

您描述的问题听起来类似于 背包问题,但有一些修改。

GeeksforGeeks 有一些不同语言的实现,具有不同的复杂性和内存占用。我会尝试选择其中之一并根据您的问题修改它并将代码移植到 CODESYS。

如果精确解对于您的系统来说太慢,您可以尝试使用 Knapsack 的近似算法

如果这还不能解决问题,也许可以考虑使用更快的 PLC。

© www.soinside.com 2019 - 2024. All rights reserved.