我想使用“过程建模库”来模拟船舶从一个点到另一个点的移动(因为“道路交通库”不能现实地反映船舶的移动)。
但是,我坚持定义一种速度控制方式并保持两艘船之间的安全距离。我要实现的是将每个容器(代理)的速度限制在一个阈值[MaxSpeed,MinSpeed]中,并且所有容器都应保持安全距离/时间,且容器位于前面或后面。例如,如果速度为15节的船只抓住速度为10节的船只,它将在达到所需的安全距离/时间之前将速度更改为10节。
当前,我正在考虑将代理速度设置为“源”块或“ MoveTo”块,并创建一个避免碰撞的函数。有人知道该函数的外观吗?非常感谢您有任何想法或意见,谢谢!
答案 0 :(得分:0)
即使根据您的模型,可能会有一些聪明的方法来执行此操作,但我将向您展示一种通用的低效方法,以一种非常简化的方式来执行此操作,而不会减速或出现任何奇特的东西。
我还添加了一个事件,该事件将检查其他船只是否离该船只本身太近...因此,在这种情况下,您可以使这样的代码每分钟运行一次,例如:
<rule name="redirect-with-lang" stopProcessing="true">
<match url="en\/|es\/|mx\/" ignoreCase="true"/>
<conditions logicalGrouping="MatchAll" trackAllCaptures="true">
<add input="{HTTP_COOKIE}" pattern="langpref=\w{2}\/(\w{2});" />
<add input="{REQUEST_URI}" pattern="^(\/es\/|\/en\/|\/mx\/).+$" />
<add input="{C:1}" pattern="^((?!{C:2}).)*$"/>
</conditions>
<action type="Redirect" url="/{C:1}/{C:3}" />
</rule>
此代码检查安全节点内是否有任何船只,如果有,则该船只将立即将其速度更改为前面的速度。
此代码丑陋且效率低下,但是如果您想要更好的东西,则需要根据自己的情况来考虑它,以便使其变得更好...但是此解决方案应该使用Process中的moveTo块来工作建模库。