在Anylogic建立自己的智能体

制作自己的智能体

在Anylogic中有很多模块,但是如果是想要一个自己需要的模块或者是实现与这些模块功能完全不同的模块因该怎么弄呢?

首先建立你自己的智能体

有过Anylogic学习的读者大多应该都建立过简单的工作人员的智能体,如最开始的银行排队的智能体,当然除了这样简单的实现人物展示的功能以外,还可以实现和Anylogic模块功能一样或者更强的模块。
在建立这样的模块的第一步都是建立一个新的智能体
在Agent库里有一个Agent,将其拖入Main里面,就会出现如下的图像:
在这里插入图片描述
这个图像表示你要建立的智能体的种类:智能体群、单个智能体和智能体类型。
那么这三种分别代表什么呢?
智能体群代表你要建立一个包含某种智能体的群体,其实就是创建一个储存智能体的一个链表。
单个智能体就是建立一个智能体。
智能体类型就是建立一个新的智能体的类型。
这三个的区别和相同点是什么呢?
首先,这里最大的区别是前面两个都会建立在Main里面建立智能体实体,而智能体类型只会建立一个智能体类型,这个智能体的类型并不会在任何地方创建实体。
如果把建立智能体比作建房子,前两个就是建立设计加建房,而最后一个只是进行设计。
其次,其实这三个本质上是一样的都是可以建立新的智能体,只不过前面两个比后面一个多进行了几步,这些都可以在之后进行改变,也就是说这三个在建立以后是可以进行转换的。
文章的重点不是这个,如果有兴趣可以继续关注我,我会在后面写一篇文章详细的讲一下我的理解。

这里我选择建立后面两种
步骤如下:
1、建立智能体类型
选择Agent type only
在这里插入图片描述
然后出现如下的选择框:
在这里插入图片描述
你可以选择不同的名字,这里我就使用这个名字,其它的不要改动,选择Next
然后就会出现如下的框:
在这里插入图片描述
这个框是创建智能体动画的,你可以直接选择你想要的3D或者是2D的动画直接创建也可以选择None先不创建任何动画。
在这里我选择不创建,因为我要在后面自己定义,然后点击Next。
出现如下的框:
在这里插入图片描述
这个是创建智能体的参数,点击add new 就可以添加你需要的参数。同样的,由于本文想要在后面建立,这里直接点击Finish不建立任何参数。
然后我们就可以看见在工程树下面会添加一个新的智能体MyAgent,并且Main里面没有任何的智能体。
在这里插入图片描述
然后我们双击工程树里面新创建的智能体MyAgent,进入智能体内部。里面是空白的,我们可以根据自己的智能体需求添加需要的元素。
在这里插入图片描述
对于这个类型的智能体,我将他设定为一个人:
它只需要完成最简单的功能——展示人的3D模型。
所以说,这个智能体代表的类型就是人,它只能实现人的3D模型展示。
但是到目前为止我只是建立了一个空的智能体类型,并没有在建立的过程中添加任何其它的东西。
为了实现我之前所说的3D展示的,我需要在这个空的智能体里面加入一些东西:

为智能体添加3D模型

在Anylogic的库(Palette)中有一个3D Objects 库,里面有各种领域的3D模型。找到People ,在里面的3D模型随便选一个你喜欢的人物模型,拖入MyAgent里面。
在这里插入图片描述
然后会出现下面的窗口,yes和no都可以,我选择了no。
在这里插入图片描述
选择完了以后,在MyAgent里面出现了一个3D人的模型。你点击一下这个人的模型,在Anylogic的右边会有一个Properties的菜单,这里可以对该3D模型的各种属性进行设置。
首先是名字(Name),你可以根据功能和爱好进行设置,比如说这里可以设置为3Dbody表示3D实体,
然后是三个选择方框,Ignore、Visible on upper agent 、Lock
Ignore代表忽视,简单的说就是忽视它的存在,相当于将其注释,在运行的时候就相当于没有建立。这个很方便,如果你想去掉模型中的某个东西,但又不想删除,害怕自己以后会用到就可以勾选这个选项,
Visible on upper agent 就是说 是否可以在上层的智能体里面看见,举个例子来说就是,比如我将这个智能体添加到main里面,main是一个智能体,MyAgent是它里面的智能体,要是想让这个人的3D在main里面显示就需要勾选这个选项。
Lock 就是锁定,当勾选了这个选项了以后就没办法修改了。你可以试一试,勾选了这个选项以后随便点一下Anylogic的其它位置,然后你再去选择这个时就发现选不上了。这时候你想要再选择这个的时候就需要到工程树里面,在MyAgent的Presentation的Level找到它,点击它把Lock去掉。
Visible 选项是指在运行时是否可见。
File 是指 该3D模型的源文件,这个文件在你将3D模型添加到你的模型里面时,会被复制到你的工程文件夹的3d里面你可以在你建立的工程文件夹里面去看一下。如果你将该文件架删除时,3D模型就会因为没有源文件出现问题,什么样的问题你可以操作试一下。
根据这个我们发现其实也可以添加一些3D库里面没有的3D模型,只要有3D源文件就可以设定为任意的3D模型。当然其实Anylogic是有这样的空白的选项让你定义自己的3D模型的。
在Presentation里面3D菜单栏 有一个3D Object将这个拖入你的智能体里面然后为其指定你的3D源文件就可以进行完成你的3D模型了。添加了的图在下面,你可以把这个与删除了3d文件夹的模型对比一下。
File 下面又是一个选择方框,是不是感觉似曾相识? 这个就是之前在将3D模型添加到智能体的选择方框,如果想修改之前的选择就可以在这修改,但是这个到底是什么意思呢? 其实这个就是说3D模型是否会随着模型的比例尺进行自动变化。
Additional scale 就是修改3D模型的比例,就是修改大小。
Orientation 就是朝向,默认是垂直站在桌面方向的(第一个)
后面的就不细讲了,讲一下现在需要用到的——Position。
在这里插入图片描述
在这里插入图片描述
Position 是对3D模型位置的设定:
Level 是指层,有的模型会建立多层的模型,Level可以设置位于的层
x,y,z就是模型位于的位置。
这个位置指的是,3D模型在智能体的位置,不是 upper agent(上层智能体)的位置,而智能体在上层智能体的展示是关于其坐标原点对称的,所以如果想要让智能体对称的出现在上层智能体,就需要按照原点建立,在标轴上原点就是位于(0,0,0)的位置
Rotation Z,°就是围绕Z轴旋转,可以设置人物的朝向。
这里将x,y,z 设置为(0,0,0),让其位于原点上。
在这里插入图片描述

然后回到main里面为MyAgent添加一些活动:

在Pedestrian里面添加一个pedSource,一个pedGoTo ,一个pedSink。 如下图
在这里插入图片描述

然后添加两根TarLine 如下图:
在这里插入图片描述
然后分别在pedSource和pedGoTo的Tar Line 添加 target和target1
然后设置pedSource的New Pedstrian 为我们之前建立的MyAgent
最后为我们的模型添加一个3D展示窗口
在Presentation 里面将3D window 拖入main里面
在这里插入图片描述
然后运行,开始运行,向下滑动页面或者在右边的窗口选择3Dwindow就可一看见人移动,如果看不见可以滑动鼠标试一试。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值