TCDT Chapter 3

TCDT Chapter 1 TCDT Chapter 2 TCDT Chapter 3

3. 其它元素

现在我们已经能够进行我们的第一个模拟了,我们也应该相当理解一点TCDT建议我们定义问题的方法,我们应该更紧密地看一下元素的其它部分.我们将在画面一步一步修改小的例子,用这种方法,我们可以学习关于TCDT元素的更多的东西.如果你认为例子还不够真实,你可以试下面的一些例子.为了更多的理解全部元素,请看参考部-分的叙述.

首先,让我们完成按钮的介绍.

3.1 按钮(II)

在前面的一些篇章,我们对按钮已经有了初步的印象,正是在我们开始试第一个模拟之前.现在,让我们看一下一个按钮的全部特性.我们为什么需要按钮呢?---因为我们必须在模拟其间能够产生信息.按钮则是一个信息转换器,它可传送

在按钮面敲鼠标,能输入一个信息到信息线上,或
一个要输入的信息进入另一个信息.

在按钮左上角,发送出发的信息的点是粉红色的点;粉红色,因为此点只限制信息线路使用.在模拟运转其间,当你在按钮方框形面敲鼠标按钮时,就会产生一个信息,并通过信息线离开粉红色点;一个信息吗?我们还没有较多的谈信息,是的?一个信息是一个字条字条可以由信息线传送.纸条可以包含一切---甚至空的纸条,如果这个信息是你想要送出去的---但要接收的元素不理解每一件事情.当你用按钮考虑你要发出的课文,所以要肯定你的信息在系统中被别人理解(我们将解释什么信息,什么元素能理解).

如果你送一个信息"C"(请不要送引号)到一个点,此点碰巧是一个源点,它将产生一辆灰色汽车.如果你送一个"C1"到这样一个点,也将产生一辆车,但这辆车有一个ID鉴别号与值1.

现在,假设你要在相同的源产生带ID1和ID2的汽车.因此你应该能发出指令"C1"或"C2"到源点.通过画面,你可以由绘的两个不同的按钮进行下列操作,当你敲两个中一个时,一个传送"C1",一个传送"C2",并将两个连接到交通源点.这是多么的有趣!一个按钮不仅仅是一个单一的按钮,而是一套到10个的按钮.这将允许你用一个,相同的按钮为相同的信息线产生不同的信息打开排列画板请加一个按钮,要加一个按钮,按"INS"按钮中的一个,写"C1:10"指令到第一个"指令"-区,"C2:12"在第二个区.你的画面现在像这个样:

Steps, model 2

为了在按钮面显示它们,你也可以在"课文"-区写一些字.随便说一下,粉红点不是信息线的唯一点,还有更多的点,但隐藏在按钮下面!---你不相信吗?试一下,将一条信息线连接到模拟工作的按钮面,不是粉红色点.看见了吗?我们怎样可以使用这个特点?当一个信息到达这样一个"按钮点"时,它被认为在按钮上击了一下鼠标,无论这是什么信息.这样,你可? 源兔恳桓鲂畔⒌狡渌拿恳桓鲂畔⒗?

删除全部到按钮面的信息线,除留在按钮上粉红色点外.开始模拟,观看绿红色车在银屏上行驶.

3.2 特殊点

当你将信息线连接到街道上时,由两种线共有的点可以认为是特殊点.特殊点有:

源点:当一个拥有"C"或"T"的指令到达起点,并且在产生区的地方没有其它车辆堵塞(如以前我们已经解释过)时,产生车辆的点.
街框:当它们收到"H"(为"停止")指令时,起堵塞作用,收到"G"(为"走")为打开.街框为堵塞车辆.
分叉口: 为指引车辆.
探测器:当车辆在探测器上驶过(开始占领)时产生"1",当离开探测器时,产生"0",
空穴:当车尾到达此点时,车辆消失.当一个点变成什么有意思呢?很容易.
如果一条信息线遇到一条街,一个信息可以影响街上的车辆:不是产生一辆车(源点),就是现存的一辆车被堵塞(街框)或现存的车辆被导向(分叉口).
如果一条信息线离开一条街,车辆可以发送信息(探测器).
如果没有街跟着以前的街,车辆就会消失(空穴).

当然,一个点同时可以具有这些特性的一个以上;例如,一个点可以在同时是一个街框和一个分叉口,或一个街框和一个源(它不是很有用的),或甚至一个街框和一个探测器,当一条信息线在相同的点到达,另一条信息线离开.

一个分叉口是一个相当复杂的元素,因此,为了要讨论它的特性,它应得它的小标题:

3.2.1 分叉口

当一个点由三条街共有时,它形成一个分叉口.没有任何需要进一步定义的分叉口(当车辆从任何进入的街道是清楚的,并要驶往什么地方,如两条单向的街汇到一起),一个分叉口需要一个内在状态.在银屏上绘的街第二个点上加一条街,以便这个点形成一个分叉口:

Steps, model 3

只要第三条线共有这个点,你就会注意到几个变化:这个点由一个方框变成一个圆点,颜色变成黄色,在点的近邻,三条线的两条也变成黄色.这些黄色线显示开关的实际位置.

如果你打开这个点的排列画板,为了改变开关从左边到右边的位置,你要找到发射按钮(当闭合时,用绿灯).在发射按的左边,你可以告诉分叉口的状态将考虑是"左",一个是在"右".如果这个点(实际上是分叉口)在模拟其间,收到"r"信息,它将转到右边位置,如果收到"l"信息,则转到左边位置.我们怎样告诉点这些信息呢?-好,定义一个新按钮,将按钮排列成两个,在上面的按钮里写一个小写字母"l"为课文和指令,在按钮的下面写入一个"r".为了实际应用缘故,将粉红色点转换到右上角,用一条信息线将按钮连接到分叉点:

Steps, model 4

打开模拟,将分叉口从左边转换到右边位置.产生车辆,观察由分叉口位置决定车辆行驶的街.

不需左右按钮,由分叉口指引车辆的其它方法.记住,车辆有ID1和2的鉴别号,要根据按钮传送信息吗?我们要用这个数据指引车辆.当你打开一个交叉点的排列画板时,你找到比较分叉口状态的检查逻辑框.当它们闭合时里面有一个红灯.为"ID-选择"按此按钮.在按钮的右边,你必须指示哪一个IDS将被驶向左边.全部其它的IDS驶向右边.因为几个IDS可以驶向左边,所以IDS必须输入一组表示号.写"l"到输入的地方,舍弃画板.

因为分叉口总是在两个位置,所以分叉口位置线消失,单一的位置取决车辆使用分叉口的ID.左右按钮没有更多的意思.又打开模拟,用IDS1和2产生车辆,看它们被指向不同的街.

最后,第三种用概率指引车辆的方法.如果,你将概率60%的车辆指向左边,按相应的发射按钮,每一辆到达叉口的车辆被自由地指向左边或右边.如果你不想在源点由ID决定车辆的目的地和车辆今后要行驶的地方,在较大的系统里,这种指挥方法可能是有用的.你的导向决定由每一个分叉口本身作出.

3.3 车辆

如上面提到的,车辆是由源点产生的.你可以用不同的IDS(鉴别号)产生不同类型的车辆和不同的颜色.类型决定车辆的长度,ID可以用来评估和导向的目的,颜色是为了你好看,你可以都用颜色来模拟---不,或许你想通过系统用眼睛来跟踪不同类型的车.

TCDT具有两种不同类型的车:汽车(长5米),火车(每一个车厢14米).汽车是小点,火车是矩形的.一般,你用汽车.如果你想在系统中显示公共汽车或火车,用火车的形状.对每一辆火车你可以加几个车厢.

目前,我们并不兴趣火车或排(汽车互相连在一起的组数).

关于汽车在系统中要做什么有两种草案:等时草案是为ID不等于零的汽车写的,检测草案,由特殊的检测元素写的.关于它们的格式叙述请参看在参考部分里的"草案格式".

3.4 交通灯

或许在分叉口我们想停止交通(我们的小叉口)?要到达这个目的,我们应该使用交通灯.试一下:做一个交通灯.你将在银屏上清楚的看见它,正显示红灯状态.这个元素也有一个粉红色的点.它显示在灯杆的脚底.它是由外部指令转换灯的信息入口,和灯告诉它的指定街框停止或释放在等候的交通.

怎样要车辆听从这个交通灯呢?---把灯连接到街上的一个上,通过这个操作,这个点变成了一个街框.为到达这个目的,首先我们需要在街上有一个额外的点.当然,关于分叉口 我们可以用相同的点,但这个点变得有点小.所以,为了连接交通灯我们用一个新点.你记得在街上如何产生一个额外的新点吗?---从"绘画"下拉菜单里选择"点"的条款,将鼠标放在你要产生点的线上,然后敲鼠标.用一条信息线将灯连接到此点.

你也可以在灯上反复将灯从红色打到绿色,或反过来("反复"触发灯).但在适当的地方有一个按钮更好:现在产生一个双按钮(或复制一个现存的按钮)并为信息能转换灯排列按钮:

"H"为"停止"转换灯到红灯,
"G"为"行驶"转换灯到绿灯.

那么我能建议你用上面的按钮转换红灯,下面的按钮转换绿灯吗?

请从指令如"R"为红灯,"G"为绿灯写一个不同的课文,并且,上面的颜色为红色,下面的颜色为绿色.

用一条信息线将这个按钮连接到灯的脚底:

Steps, model 5

打开模拟.如果你在"G"按钮上敲鼠标,灯将从红色变成红-和-黄,过一会儿变成了绿色.在"R"按钮上敲鼠标,灯又变回黄色然后到红色.在交通灯上敲,你也将在两种状态中变化.在由交通灯控制的街框点前,可以看见行驶的车辆怎样停止.

3.4.1 一个简单的信息处理

为了产生新的车辆,如果我们能避免总是按着左按钮,那不是很好吗?不管怎样,我们应轻松地只观看模拟多好!我们知道,当汽车驶过探测器时能产生一个信息.我们更知道任何一个信息通过信息线到达按钮下的隐藏点时,可以触发一个鼠标敲击.-OK,让我们继续下去,将空穴连接到第一个按钮!

为了将分叉口转换到左边或右边,删除这个按钮(你将看见,这个按钮删除了粉红色点,因为这个粉红色点是一条信息线的起点,信息线与这个点一起被删除),排列分叉口,用ID=1的汽车全部指向上面的街,用ID=2的车全部指向下面的街.

现在:用一条信息线将上面的空穴连接到你要产生车的按钮上面的区域.然后,将下面的空穴连接到按钮的下面区域.这样-打开模拟,通过自动按按钮产生汽车了!

Steps, model 6

你将看见,只要一辆车通过空穴离开系统,一辆新车就会在源点产生.为什么不会产生两辆呢?

我们知道每一辆车,一个探测器总是发出两个信息:一个"1"和一个"0"信息(到达和离开).但是-这两个信息之间的间隔正好等于这辆车的长度.你想一想:指引问题!改变这条街的最大速度从13米/秒到10米/秒又开始模拟:在这种情况下没有指引问题!-当第一辆车现在离开空穴的时候,在源点产生两辆新车.当这排车离开系统时,三辆新车又产生,因为当第二辆车到达时,第一辆车离开,所以后面的指令被忽略;等等.

请避免这样一种情况,因为模拟的结果不是正好要定义的!为了不是"1"信息就是"0"信息停止,我们应该在空穴和按钮之间用一个信息转换器.但是在介绍这种转换器之前,为了避免用手敲汽车产生器按钮,我们应该看一下一个更重要的元素:源.

3.5 源

每产生一辆车要敲一次按钮很烦人.那么为什么不引进一种自动的元素为我们做呢?这种元素叫做源.再一次清楚地叙述它:一个源不能产生汽车,但是,一个源能自动产生指令.为了产生汽车,这些指令将被送到源点.虽然一个源是一个自动按钮,但由源送出的信息必须被排列.默认信息是"C",不需要ID能产生一辆白车.

Steps, model 7

从空穴到汽车产生按钮删除信息线.靠近这个按钮,定义一个源,一个带X-形的白方框出现.你能看见粉红色点吗?用一条信息线把它连接到源点,开始模拟.

你将看见由源点时时有一辆白车产生.这辆白车驱向叉口的右边(要肯定有交通信号灯显示绿的),因为它的ID不是1.你仍然可以敲鼠标按钮用IDS1和2触发你原来的车.在源点上敲没有作用.

关断模拟,靠近第一个源,产生第二个源.现在排列一个源的"指令发出"-参数(排列画板的一个地方),发出指令"C1:10"和其它的一个源发出"C2:12".现在你的两个源能像按钮样发出相同的指令,在模拟其间你将看见,车根据它们的ID分别驶向叉口的左边和右边(也用它们的颜色显示).

抱歉,你刚刚在上图绘的情形称为"不正确".为什么不正确?像你所知道的,当在街上实际放车的地方有足够的空间时,由源点产生的只是一辆车.如果源2正好在源1后发出它的指令,以前的车还不能离开车的产生区,现在又会发生什么呢?-源2的指令被忽略,且不会产生车.

对于要记住旧指令,如此没有记忆的源点,以致它们不能完成,这以后的车决不会被产生.这肯定是违反源的统计特性!

Steps, models 8 and 9

如果你想避免这种错误,用重绘画面的方法,显示在图的"正确"边(如果此刻你不再需要按钮,现在可以删除它).通过加入两条街,像点一样的一个叉口 又产生了,但你将注意到,这个点还没有把它的颜色变成黄色,同样它应是一个好的叉口.你知道它的道理吗?-分叉口没有内在状态,因为没有东西要从左边打到右边.车辆总是驶向右边相同的街.

车辆知道怎样在分叉口分流.

3.5.1 统计特性

源根据统计特性产生车辆.你可以在排列画板里定义它们.最重要的参数是互相到达时间分配功能.互相到达时间是在产生两辆车之间的时间量.在实际交通里,这个功能主要是一个 ---分配或像不受阻挠交通的一切病毒和如果交通在从其它交叉点来一切别的.

在城市里多半交通形成排.你可以将源排列产生车排,而不是单个的车.互相到达时间功能然后在一个排里决定互相到达时间.在排之间你将需要一些附加参数决定互相到达时间,排的长度,在一个排里互相到达时间的模糊因素.关于分配功能的详细介绍,请看参考部分的"源"术语.

3.6 转换器

OK,现在让我们介绍转换器.转换器传送到达信息线上的信息.按钮也可以传送到达信息线上的信息,但是你不能击鼠标在转换器上产生信息.第二个不同点是转换器可以从一条信息线上来的一个信息分裂进两个不同的信息线上:

一个转换器有一个输入点,两个输出点.在银屏上产生一个转换器.它是一个三角形状.标准排列是如果输入点收到一个"1"信息,转换器通过上面的点传送一个信息(没有内容,空信息条),如果输入点收到一个"0"信息,转换器通过下面的点传送一个信息.所以我们能让转换器重复一个源:

Steps, model 10

拿出这个源,将按钮移动到左边一点,在这个源点之后离开一定的距离在街上加一个点,产生一个转换器,用信息线将街上的新点连接到转换器的输入点,用另一条信息线将转换器的输出连接到按钮下的隐藏点之一.

打开模拟.一旦你产生了一辆车,只要该车驶过(实际离开)探测器要触发的转换器,在街的起点就会有另一辆车产生 .如果你把灯打到红的,将很快有一个交通干扰,不会再有车产生.

3.7 框

让我们"滥用"交通灯.我们要在一个交叉点在一个时间只传送一辆车,只要这辆车一离开这个交叉口,我们就想把下一辆车开走.我们将做什么呢?-让我们连接街框点,街框由交通灯控制,用一根信息线从按钮的"R"区连接到控制的交通灯.会发生什么呢?假定绿灯亮,只要有一辆车驶过街框(同时它是一个探测器,因为一个信息线也在离开),这个探测器将产生一个"1"和"0"信息两个信息把灯打到红的(第二个信息被忽略,因为这个灯已经在显示黄的,因此在这个信息线上转换到红的.

正确吗?-是的,但要小心!因为这个按钮传送一个信息"H"到灯,这个灯又把这个信息转送到街框,街框将进一步传送这个信息,因为有一条信息线要离开(这条信息线是要传送探测器信号的,不是灯指令).这条信息线现在传送一个"H"信息到按钮的"R"区内,这个信息又将努力把信号转换到红的!

我们必须打破这个循环的信息,当然,为了到达这个目的我们必须用转换器!从上部分重新使用相同的转换器,因为它只传送"0"或"1"信息,全部灯的控制信息被成功的停止.

Steps, model 11

当车已经通过这个交叉点时,又把灯转换回来,例如在要离开街的拐弯处.由于在探测器点没有信息可以到达,所以在这里不需要转换器.对于这样一个堵塞功能,你不想使用灯,它可以用一个框!一个框看起来像一个有两个敏感区的按钮,但一个区是绿的,另一个是红的.如果绿区被照亮显示,这个框则是打开,如果红区被照亮,则框被堵塞.从输出点("粉红点")用信息线将要被堵塞的点连接起来.从街上的点拉一条信息线到内点(隐藏在红和绿区下),街将触发被堵塞和不被堵塞状态.

为了改变它的状态,也可以在模拟其间敲框元素的两个区.在下一个图里显示的,用一个框更换了以前的结构:

Steps, model 12

3.8 门

瞧一下反的情况-或更好:反转这个情况!改变交通流量,以便车可以从右边来,驶向左边(反转全部的街,将两个按钮连接到街的右端,交换框的堵塞和释放点)让一些车驶向街的结合点由框元素控制的街上在一个时间只有一辆车,但在街框前,当几辆车排队时,你不能控制哪一辆车下次走.框不管如何,应记住哪一辆车是第一.-为了这个目的,我们作一个简单的状态图:

Steps, model 13

3.8.1 装态图

让我们把上面的通道称为A,下面的称为B,我们的状态图将包括下列资料:

如果任何通道都没有车在等候,
如果在A或B通道有第一辆车(或下一次),
如果在其它通道也有一辆车在等候(已到达第二个地方).

状态图将有三个局部自动器(有值1或0),A(为A首先到达),B(为B首先到达),W(为在其它通道也有一辆车).有四个可能的信号,可能到达状态器:a(为车到达A),b(为车到达B),α(为车离开A),β(为车离开B).

state machine

在目前,当我们必须决定下一次哪一辆车是绿灯时,自动器A和B将告诉我们:不是A是1就是B是1,但绝不是两个都是1.在文的右边显示的是状态图.

对于三个自动器我们可以用框.除了是触发器外(如果它们不会计数),框不是别的什么东西.这个图使我们得到下面的状态图(注意有许多禁止的状态如我们只使用八个可能状态中的五个):

n+1 n

W

B

A

W

B

A

b

a

b

a

0

0

0

0

x

x

-

-

-

1

0

0

0

0

1

x

-

-

1

-

0

0

1

x

0

x

-

1

-

-

0

0

1

1

1

x

-

-

1

-

0

1

0

x

x

0

1

-

-

-

0

1

0

1

x

1

-

-

-

1

1

0

1

0

x

1

1

-

-

-

1

1

0

0

1

x

-

1

-

-

从这里我们可以为状态转换导出方程式:

W(0到1)=A +B "+"-功能(或)可以在一个点由两条信息线汇W1?0= 到一起完成.和功能必须用一个门完成.你需

B(0到1)=` A +W 要6个门.TCDT的门当收到一个"H"信息时,

B(1到0)= 一般往高走,当收到一个"G"信息时往低走.

A(0到1)=` B +W 无论如何,你想要门反应,你可以排列一个门

A(1到0)= (通过它的排列画板):在"G"信息的情况下,

通过告诉门往高走,很容易地反转一个输入,在"H"信息的情况下,告诉门往低走.从探测器传送的"1"来的信息为"H",探测器传送"0"为"G".

Steps, model 14

请用下图显示的方法排列门.靠近门输入点的字母表示使输入往高走的指令.当门往高走时,门只传送信息:为要往低走清除传送的信息.我们用框的"堵塞的"(红)状态作为"1","打开"(绿)状态作为"0".

因为状态图只存储1,确信为"在到达"信息的探测器总是被车堵塞,车已经发出了最后的信息,直到此车将发出了它"在离开"-信息(α或β).

在到达信息的模式"aa"或"bb"是不允许的(还有αα或ββ).

现在将输入a,b,α和β,还有输出A和B连接到原来的模拟状态:A和B现在决定哪一条通道将下一次让车开走.在模拟其间,你能看见绘在点上门的输入-和输出-状态,在该点的地方信息线结束或开始.如果一个输入或输出是高的,这个点是黄色的,否则它就是灰色的.请欣赏你的状态图一会儿:那是很艰难的工作!

Steps, model 15

3.9 控制器

这是很费力的!-实话说,你考虑你将在任何时候需要为交通控制有这样一个堵塞-和-门-结构吗?我意思:街道的交通控制,不是铁路的(看一个典型铁路的例子).

是和不.你可能想在一个交叉口的冲突点,在相同的时间避免两辆车,但你从来不想要它们作为单一的车辆行驶:车辆不是从A通道来,就是从B通道来.让我们绘两个交通灯代替自动框,与它相应的按钮.产生另一个按钮,此按钮产生信息"A"和"B",你传送一个信息到转换器:

Steps, model 16

任何A信息到达,灯A变成绿的,灯B变成红的;如果B到达,反过来也一样.

模拟它.你可以用"A-B"按钮一起转换灯.你也可以分别转换灯,但它将导致一种禁止状态.将灯A的街框更靠近分叉口(两条街汇到一起的地方),和分叉口很近,又开始模拟:总是将A态转换到B态,但当你将B态转换到A态时,当A态的车到达时,在交叉点仍然B态的车:我们需要一些定时!

我们需要一个控制器.加一个控制器到画面.以后,选择绘画元素控制线,并从三角点拉控制线到灯.在三交点小心的敲一下,它们将扩展.用"L"(为灯) 名字选择次-点作为控制线的起点.不要把它们连接到街框,而是到灯,因为你要看控制器怎样修改你的信息.

Steps, models 17 and 18

如果你现在打开模拟,将和以前不同,因为控制器是在空载方式里("没有监视").

3.9.1 否认监视器

现在排列控制器.打开排列画板,为了排列清除时间矩阵,按"矩阵值"按钮.控制器的状态"1"等于我们的通道A.所以写2秒钟从状态1到状态2为清除时间,4秒钟为状态2到状态1(像这种情况不是对称的).用OK舍弃画板.现在排列一些"状态参数":选择最小绿灯时间为3秒钟,最小红灯时间也为3秒钟.用OK舍弃画板,并为"否认监视"选择发射按钮.

同样,舍弃画板用OK,重新开始模拟.

"A-B"按钮不再转换绿信息!为什么?-因为你试图同时将一个灯打到红灯,另一个灯打到绿的,所以指令不遵守清除时间限制.这样只有红的指令被控制器接受.对每一个灯用局部按钮控制,并找出控制器怎样校对清除时间.由与控制器是在否认方式中,当指令不正确时,你的指令被堵塞(或豢刂破魑?.这就是为什么我们要用控制线:当一个信息到达控制线之一的一个端点时,它被传送回控制器.如果信息在目前时间不正确,则信息被舍弃;如果信息正确,则信息被进一步传送.

当两个灯已经红了一会儿时,又敲"AB"按钮,你将看见,控制器现在接受你的要求,转换其它的灯为绿灯.

3.9.2 更正监视器

现在排列控制器作为一个更正监视器.更正意思是当控制器在模拟当前时刻检测到你的信息是不可能时,控制器为你进行正确的信息计时.按"A-B"按钮,看通过控制器怎样进行转换灯的正确计时.随便说一下,因为你可以简单地按灯的"绿"-按钮,不再需要"A-B"按钮,控制器自己把其它的灯转换成红的.

3.9.3 循环控制器

让我们用一个正确的方法使用控制器:作为一个真正的控制器,而且不仅仅像一个监视器.将控制器排列成一个循环控制器.当控制器在起控制作用时,你不再需要按钮控制交通灯,因为你的指令决不会被控制线接受.所以要删除按钮.

定义循环控制器,必须进行下列步骤:

  1. 在状态模式窗口里定义状态.
  2. 定义模式.
  3. 定义循环.

在控制器排列画板按"排列循环控制"按钮.首先用上面的窗口工作,显示一个栅格.在栅格上按鼠标,当你保持一直按着左鼠标时,绘一条蓝线.当你保持一直按着按钮时注意蓝线的终点.一旦你松开按钮,你可以用另一条蓝线擦掉前面绘的线.你可以横竖绘图线.像前面的基本画面一样,你可以试着绘街.

现在给画的线指定状态号:在"状态号"窗口敲状态1,状态号将被一个绿矩形框起来.当你现在在"状态模式"区上画一根线时,这根线将是绿的.将这根绿线划过蓝线,蓝线那儿是你想要状态1被强调照亮的地方.现在敲状态2,状态1将保持框架,但要一个红的方块.红色是用于此刻没有效的状态.为状态2划线,然后选择状态1左边中立的地方.这个地方将显示一个蓝色的矩形.它像当你过去开始画基本状态模式样.

全部被指定状态的线现在将是红的,如果你已经指定一根线超过两个状态以上(或许在交通在交叉点后分流的地方),这样一条线画成黄色.

将模式指定到状态.像我们的交叉口一样非常简单,一个模式等于一个状态(当它们总是一起转换时,如在双向交叉口,则几个状态形成一个模式).选择模式号1,将它指定到状态号的一个,不是通过敲状态号 ,就是敲在"状态模式"画面里,指定状态号的线.为模式2做相同的操作.在模式1上敲,并与起作用的模式1停留.

现在定义循环:在"循环定义"窗口敲右鼠标按钮,一个模式变化线将出现.将此线拉到你想要你的循环结束的时间点(或许在30秒钟).现在用左鼠标按钮敲,这根线将稳定.

敲模式号2,用相同的方法,产生一个模式变化线或许为15秒钟的点上.对啦.用模式1又开始你的循环,并且在15秒后变化到模式2.当这个 定义区结束时,循环又开始(那就是为什么把它叫做一个循环!).模拟它!

3.9.4 模式选择控制器

最有效的控制方法是模式选择控制.如已经定义的模式,你马上可以模拟了-但停止,不要忘记给控制器相应的反馈信息!TCDT使用一个简单的模式选择方法:为每个模式计数车辆,并看哪一个模式在目前是最有效的方法(驶过叉口的车辆最多).如果这不是实际的模式,如果它比实际模式好一倍(这要使控制稳定),就把它转换到这个模式.我知道这个控制有些迟钝,但它显示了很好的结果,事实上,它几乎像用动态程序和分枝-和约束的真正适应控制一样好.

因为控制器必须知道在每一个通道在目前有多少辆车,在交通灯的街框前,在每一个通道上插入一个点.请为了其它状态"公正",从这点到街框的距离大约相等长.用普通的信息线将这些点与控制器的三角点连接起来:当这些点已经扩展的时候,选择点"1"为("第一个探测器")-不要忘记一直按住鼠标按钮,直到你已经为信息线选择了最后的点.

用另一条信息线将街框连接到控制器的已扩展点"N"(为"最后的探测器"),当一辆车离开这个交叉点时,告诉控制器.在"模式选择"方式中排列控制器,打开模拟.注意观察,看控制器怎样优化你用按钮产生的车辆通过交叉口.

Steps, model 19

3.10 检测器

如我们前面已经提到介绍的车辆,为每一辆ID不等于0的车收集了一些数据,并写进草案文件里.这可能不会使你满意.如果你要使一个叉口最佳优化,你不仅需要车辆的数据,而且,你更需要通道观察点的数据.因此,你可以在画面加一些检测器.检测器看起来像计时钟.上面的点是把它们闭合的(由一个到达的探测器信息),下面的点是起断开作用的.在钟的闭合点,"1"和"0"的时间被记录,还有钟断开的点.

一个检测器可以处理任意多的车.当车已经完全通过断开点时,,对每一辆车的评估数据被写入草案文件里(用进入码"m"进入口).

例如,对每种状态检测关于控制器排队长度的数据(直到车发出它"离开"-信息时,车对控制器通知的时刻).