Anylogic:如何将单选按钮链接到 double 类型的变量?

Posted

技术标签:

【中文标题】Anylogic:如何将单选按钮链接到 double 类型的变量?【英文标题】:Anylogic: How to link a radio button to a variable with type double? 【发布时间】:2019-02-14 17:06:55 【问题描述】:

我想在我的 Anylogic 模型中使用单选按钮,以便在模拟之前更轻松地更改值。我正在运行不同的方案(方案 A:冬季电价(Strompreis Winter);方案 B:夏季电价(Strompreis Sommer),方案 C:秋季电价(Strompreis Übergang),我不想更改我的模型在使用另一个电价时。相反,我想在我的公式中使用变量“electricityprice”,然后使用单选按钮更改该变量的值。 我尝试使用单选按钮设置变量“electricityprice”(Strompreis)的值/将其链接到变量“electricityprice”(Strompreis)。这是因为我有几个类型周的每小时电价(例如电价冬季),这些电价由从 excel 文件中读取的动态变量显示。

Anylogic screenshot

excel file

在我输入的单选按钮的操作字段中:

   if (value==0) 
    Strompreis = StrompreisWinter;

else if (value==1) 
    Strompreis = StrompreisSommer;

else if (value==2) 
    Strompreis = StrompreisÜbergang;
    

但是,电价是双倍的(例如 4.45 欧元)。只能将单选按钮链接到 int 类型的变量。知道如何解决这个问题吗?谢谢!

【问题讨论】:

也许是为了澄清我以前的答案:您的代码在这里 100% 没问题。但我不确定你是否理解它的作用:如果用户选择单选按钮选项 1 (value==0),那么变量“electricityprice”将设置为“electricitypriceWinter”具有的任何值。 "electricitypriceWinter" AND "electricityprice" 都可以翻倍,没问题。 这正是我想要的。不幸的是,anylogic 抱怨错误。在单选按钮的属性中有一个“链接到”字段。当我在 variables 属性中选择 int 类型时,我只能将单选按钮链接到变量。如果选择了双,我无法链接它。错误是“错误的参数类型”。 如果我选择 int 作为变量的类型,它会为单选按钮属性中的字段“Action”显示错误“类型不匹配:无法从 double 转换为 int”。我错过了什么? 看来我可以忽略错误“参数类型错误”。模拟正在运行。并且该变量确实具有动态变量的值。但是,它仅在我单击按钮时才采用当前值,然后保持不变。如何定期/每小时更新一次? 您不应该在您的情况下使用“链接”功能。它只能链接到一个 int 变量,该变量可用于存储最后一次单击的用户选择或以编程方式更改单选按钮选择。它与您的代码没有任何关系,这很好。 【参考方案1】:

这里有几件事是“关闭”的:

当 AnyLogic 说您只能对单选按钮使用 Int 值时,他们的意思是:该值与用户所做的选择有关。您的单选按钮在您的示例中有 3 个选项,因此值只能是 0、1 或 2。没有别的。你如何将它们映射到任何行动是你的事。

下一步:您的问题应该以不同的方式解决。或者,您希望在一年中动态更改变量值(案例 1)。或者您希望用户在运行时更改变量值(案例 2)。

案例一:动态改变变量值

有几种方法可以做到这一点:如果您只有 4 个季节,可能最简单的方法是使用一个简单的映射函数“getCurrentElecPrice”,它会根据当前季节返回不同的 dbase 值:

案例2:让用户改变值

您始终可以在运行时直接更改变量:单击它,然后单击值进行编辑,见下文:

更优雅的是,您可能想要使用滑块或编辑框。或者一个选项有限的单选按钮,但你不会像你的情况那样使用它来支付价格。

希望对你有帮助

【讨论】:

感谢您的回答。案例1:我只有个人学习版,不能用数据库对吗?案例2对我也不起作用。该模型“运行一周”,电价每小时变化一次。你能解释一下为什么我不使用单选按钮吗? 我的意思是我只能将单选按钮链接到 int 类型的变量。我尝试使用 double 类型的变量,但它不起作用 重新单选按钮:完全正确。它只能是一个 int 数字,因为单选选项是单独的选项,它可以是 0、1 或 2。你不能选择 1.5! 你的情况:你能重新解释一下你想要收音机做什么吗?具体一点,发送屏幕等,我可以为您创建一个示例模型。 (用更多细节编辑你原来的问题) 好的。只是这样做了。希望现在更清楚了。如果还有问题,请告诉我。【参考方案2】:

这是一个示例模型,可以满足您的需求,希望对您有所帮助:-)

download

【讨论】:

以上是关于Anylogic:如何将单选按钮链接到 double 类型的变量?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 xampp 将单选按钮值提交到数据库

如何将单选按钮添加到菜单项?

将单选按钮关联到各个组

将单选按钮数据发送到下一个活动

如何将单选按钮创建为按钮?

将单选按钮从一个 PHP 表单添加到另一个 PHP 表单