当前课程知识点:Petri网:模型、理论与应用 >  第四章 网论 >  4-10 实例与方法——电梯控制 >  第三部分

返回《Petri网:模型、理论与应用》慕课在线视频课程列表

第三部分在线视频

第三部分

下一节:第四部分

返回《Petri网:模型、理论与应用》慕课在线视频列表

第三部分课程教案、知识点、字幕

但是刚才我已经说了

这个电梯有些我们人控制不了的

系统控制不了的因素就是故障

我们这个性质

能够提供服务 能够安全

它的前提是什么

没有硬件故障

硬件故障这个软件系统管不了

另外没有人为的干涉

刚才我讲了反复的按电梯不让电梯走

这个我们可以处理它

你按几次以后我就不理你了

我就上去了

但是如果有人

硬是把电梯那儿堵一块东西不让门关起来

这你就控制不了

你的软件系统无能为力

你就没有办法让人少等待

也没有办法完成有求必应了

所以在排除了这些

电梯系统 控制系统无能为力的故障之外

我们保证能够提供服务有求必应

而且是少等待

这个你看不见电梯从你这儿过

在你需要去的方向它不听

看不到这个现象

性能分析 少等待我们是能保证的

有个楼层顺带这个原则

所以只要从这过我就把你带走

不会让兔子在那待着我这搂草都不打是不是啊

少空驶我们知道运行起来是一定有目标的

它是分解了某一个button以后

然后再去提供服务

所以只要它在运行它一定有目标

所以这就不是空驶

那么如果它找活

这个时候它没有活可干

这个时候它是停在那儿的

并不运行

所以在这个意义上就没有空驶

只要它动它就一定有目标

另外这个一部电梯呢

就可以独立的完成整个的服务

n部电梯的作用是什么

大家共享这些楼层button

可以你不服务我服务

我不服务它服务

所以提供这个并行的服务

提高效率让少等待性能更好

等的时间更短

所以如果我只开一部电梯没问题都能够服务

我开两部电梯无非是有两部电梯为楼层button服务

对不对

所以这个n部电梯的作用的就是这个

好现在咱们把电梯控制系统的设计过程做一个小结

我们从用局部确定代替全局控制

结果复杂度就从(M,N,2)变成了(1,1,1)

我们把每一层楼14个变迁找出来了

然后把它们通过共享的S元素连成了整体

但是我这儿没有给出那个整体的图17个的图

书上有

因为那17个变迁的图如果出现在这一张ppt上

就谁也看不清楚了

所以我这儿就不给出这样的ppt了

我们这个过程从(M,N,2)到(1,1,1)

我们有一个反过程

我们要反过来组合的过程就是从(1,1,1)再到(M,N,2)

那么在教材里面我们可以找到那个图

从一个方向到两个方向

其实呢就是一个镜面对称

我说过了 把7个上升方向一层楼的7个变迁

把(i+1)换成(i-1)

把U换成D

把那个u换成d

然后把u_d就是改向变成d_u

这样就把下降方向的7个变迁也有了

然后通过它们共享的u_at(i)或d_at(i)

就把这个一层楼上的14个变迁变成一个整体了

所以从1到2这是一个镜面对称的问题

也很容易做

然后楼层一共有m层

我们现在只找到了一层

这个i层和(i+1)层是怎么连在一起的呢

是通过U_at(i+1)连在一起的

因为上升一层从U_at(i)变成U_at(i+1)了

然后U_at(i+1)又引出在(i+1)层的7个变迁

所以这样两层就是i层和(i+1)层

上升方向就连在一起了

那么通过(i+1)层的改向

又把(i+1)层的下降方向引进来了

那么由i层经过转向变成D_at(i)

就变成下降方向在i层

然后呢刚才我们讲了怎么镜面对称把它找出来

所以两层的上升 下降方向就都有了

那么U_at(i)还通过下降的变迁

和U_at(i-1)联系在一起

这个U_at(i-1)

通过上升又跟U_at(i)联系在一起

所以通过这个共享的U_at(i)

U_at(1) U_at(2) U_at(3)一直到U_at(m)

然后D_at(m)一直到D_at(1)

就把这m层联系在一起了

所以从1到m也很容易

就通过这个反折叠

就是把一层跟下一层粘在一起

粘什么地方就是那些at的元素 共享的元素

就把m层也找出来了

一部电梯这样一来两个方向m层就都有了

那么它的初始状态是什么呢

一般来讲我们都是在一层

上升方向给它一个token

表示电梯现在处在上升状态在一层

然后呢由一部电梯变成n部电梯

这个就是通过共享的楼层button把它们连在一起了

所以这个1呢就恢复到n了

通过楼层button Fu和Fd就把它们联系在一起了

所以我们那就从一部电梯一个楼层一个方向

就恢复成m层楼n部电梯两个方向了

刚才我已经说过了Petri网固有的缺点

就是变迁的外延太固定

所以需要很多的变迁来描述一个动作

像stop需要五个

那么解决办法呢刚才我们看了一个

就是Cyber net自控网

自控网系统是一个办法

我们的这个目的是要找一个

计算机的程序来控制这个电梯

Cyber net离程序还比较远

我们现在呢就是想要

能够把我们设计出来的控制系统用Petri网表示的

怎么能够跟程序联系在一起

那么跟程序靠近一点

比方说有这个有色网系统

它的变迁会少

下面我们看看怎么用有色网表示这些变迁

会减少变迁的个数

另外一个就是用C_net

C_net本身就已经是并行的程序

所以呢我们还要用C_net

来把刚才我们找到的这个控制方案

或者说没有控制的控制方案

那么用C_net来表示出来

实际上那就已经是程序了

另外在咱们参考书

就是Petri网原理和应用那本书在附录当中

有一个用并行程序语言unity写的电梯控制程序

如果你有兴趣大家可以去参考

这个unity是一种并行设计语言

它主要是偏向于理论研讨的

所以这个并没有用于实际的程序设计

知道的人可能比较少

我们现在看看这个C_net

从这个网模型怎么到C_net

然后从C_net呢

实际上本身就已经是个程序了

这一个呢就是C_net的一个变迁

这个变迁呢

引进了一种新的s元素

这个前面我已经说过

这儿呢我们因为用到这个控制电梯

所以我们再回忆一下

这个C_net的变迁

它的外延可以有库所

也可以有变量

我们这个例子里面呢

就是一共有四个变量

一个变量是l一个变量是u

一个变量是x一个变量是y

l u x呢是布尔变量

这个y呢是一个整型变量

然后s′和s呢是库所

那么这个C_net变迁什么意思呢

这个l u这两个变量呢

是没有箭头的一条直线

跟这变迁联系在一起的

这表示什么

表示既读又写

这个x呢是用一个类似约束弧的

跟这个变迁连在一起

也就是说这个变迁呢只读x不改变x

然后这个y呢

是用一个圆圈做箭头

跟这个变迁连在一起的

这圆圈在变量这一边

表示什么呢

表示它只写不读

我们看这个变迁

这个大框里面又分成两格

上面一格呢

写的是l或者u and x

表示什么

l要成真或者u要成真

同时x成真

因为这三个都是布尔变量嘛

所以在这个布尔表达式成真的时候

那么这个变迁呢

就有了变量发生权

就是它的变量使它可以发生

然后这个s′或s呢

s′是输入库所

这个库所发生权呢

要求s′里面有一个token

所以s′里面如果有一个token的话

那么这个变迁呢就有了

库所发生权或者叫做token发生权

如果这个变迁既有变量发生权

也有库所发生权

那么这个变迁呢就能够发生

它发生的后继是什么呢

这个库所就按照库所的发生

在输入库所里面去掉

权上要求的token数

按照那个权来去掉它那么多

然后再输出弧那个库所里面呢

加上相应的

这个地方都是1

所以去掉一个加上一个

去掉的是s′的加的是s的

然后这个l u和y是要写的变量

怎么写呢

我们底下变迁的下面一个方框里面

就是写怎么写

这写的l的上面一个欧尔拔

就是有一横在它头顶上

然后后面跟着的是个小括号

里面写的是零

就表示这个l呢

要用零来写它

也就说这个布尔变量不成真了

然后这个u呢用1来写

u的上面有一拔表示这是写动作

然后这个y呢也是写

它是个整型变量用2来写y

y的上面也有一拔

这种方式来写赋值语句来写程序

那么这个语言呢叫做OESPA

现在呢这个赋值语句

已经是一个数学操作了

你看有操作符就是这个欧尔拔

有两个操作数

一个是这个欧尔拔下面的这个变量名字

一个是小括号里面的表达式

我们这表达式都是常数

就是数学表达式

所以这就是新型OESPA来写程序的话

它就变成一个表达式

就是变成一个数学对象

这个以后这次课如果时间允许的话

我会给大家讲一讲这个

总之这个变迁本身就是一个程序

有赋值

有赋值发生的条件

如果这个变迁跟库所没关系

只跟变量有关系

那它本身就是一个

这个程序的赋值语句

在C_net里面呢

这个库所呀一般起着控制流的作用

假定我们是一个顺序程序

那我可以用库所呢

来传达这个顺序的变化

这就是C_net它的这个一个变迁

用C_net来描述变迁up

就是上升一层

它会是个什么样子呢

我们知道上升这个变迁

跟几个有关系啊

跟一个U_at有关系

它要在i层才能上升到i+1层

必须要有上升一层的需求

也就是说U_req(i+1)要有要求

另外这个停在i层要没有这个要求

这个变迁发生的条件

就是b是什么呢

这个地方啊

我们把这个所有的这些

电梯有关的库所都理解成变量了

所以这个U_req U_at U_halt都是变量

up这个变迁发生的条件是什么呢

U_at成真

U_req(i+1)成真

说我在i一层有让我上升一层的需求

同时U_halt不成真

那就说不需要我停在i一层

这样一来我就有了发生的条件

所以这就是b

因为里面写不下我写在外面

用一个小b来表示这个发生的条件

就是U_req(i+1)成真

U_at(i)成真

这个U_halt(i)不成真

那么底下这个a呢就是赋值部分

赋值部分呢

这个U_halt当然不需要赋值

因为它只是读的

U_req当然就变成不成真了

因为电梯已经来了

这个U_at(i)呢就不成真啦

因为成真的是U_at(i+1)

它到了上一层了

所以下面这一层呢就不成真

而上一层呢就成真了

所以你看我们如果用C_net

来表示这个电梯控制的变迁的话

它本身就已经是一个

有条件的赋值语句了

用变量把它们联系在一起

就是一个程序

这个程序是个并发程序

哪个变迁能发生

哪个变迁就发生

而且大家知道

电气控制系统里面的所有的变迁

它的发生条件都是互斥的

没有两个是能够同时发生的

所以我们不需要额外的控制

这就是把这些变迁放在一起

不用网的形式 图示的形式

用程序语言OESPA的形式把它写出来

就是一个OESPA的程序

这是上升一层

下面这个呢就是stop

就是停下来

这个也很容易读

这个条件就是说

我要在U_at(i)要成真

U_halt要成真

就是要求我停下来要成真

然后就可以了

这个U_halt要成真呢

我现在把细节引进来了

U_halt是什么呢

要么l(i)梯内的batten

要么是Fu(i)就是楼层的batten

要么Fu′就是有人要求我顺带服务

这里面只要有一个成真

就是要我停下来

然后呢这个就能成真了

这个变迁就能发生

发生了就执行赋值语句

赋值语句呢

就是把要求停下来的都变成零

就是不需要了

然后U_at(i)呢变成U_open(i)

就是从停下来变成开了门了

所以我现在呢用这个C_net呢

我就举这两个例子给大家看看

你如果把我们的变迁

用C_net表达出来

它本身就已经是一个

并行的OESPA程序

就如果有了OESPA的编译器

或者什么就可以执行了

我要在前面就没有提到的

还没有讲的东西

就是C_net的变迁呢

不是只有这两部分

就是一个发生的条件一个赋值语句

它由三部分组成

一个呢是发生状态

这个图里面没有看到

一个是发生条件

一个是发生的后果就是赋值

为什么需要发生状态

就是它一般的来讲一个程序啊

它有可能涉及到变量

使得这个发生的条件呢成真

但是当它发生以后呢

这个发生的条件呢

还是成真没有改变

而这个变迁呢跟库所也没关系

所以这样一来

这个变迁呢就可以反复的发生

因为它发生的条件并没有改变

有可能这样反复的发生呢

是毫无意义的

因为不会改变它的结果

也不是我们希望的

所以我们呢

就引进一个发生状态

就是表示在这个条件底下

它发生过没有

如果已经发生过了

就不需要发生第二次

因为你发生第二次不会改变变量

不会有什么新的结果发生

如果你的条件被别的变迁

发生改变了

那么这个时候发生状态呢

就会改变改成没有发生过

因为我有了新的变量

这个条件呢

再一次成真了

但是这个时候条件成真

已经不是原来的那个条件了

所以它的发生就有意义了

所以这个发生状态这一项呢

因为在我们的电梯控制里面不需要

所以我就没有引进

免得把东西搞复杂了

在一般来讲C_net里面是有这个的

所以这样一来

不仅仅每一个变迁有外延

而且每个变量也有外延

因为一个变量值的改变

它会改变跟它相关的

就是读它的那些变迁的

这个发生状态

会让它状态改变成没发生过

这个我就不去细说了

那么电梯系统因为不需要

但是你要去看那个C_net的书呢

是有这一部分的就是发生状态

Petri网:模型、理论与应用课程列表:

第一章 概述

-概述

--Video

第二章 有向网

-有向网

--Video

第三章 Petri网

-3-1 Petri网定义

--Video

-3-2 Petri网层次系统

--Video

-3-3 基本网(EN)系统

--第一部分

--第二部分

--第三部分

--第四部分

-第三章 Petri网--3-3 基本网系统课后思考题

-3-4 条件-事件(C-E)系统

--Video

-第三章 Petri网--3-4 条件-事件系统课后习题

-3-5 库所-变迁(P-T)系统

--Video

--Video

--Video

--Video

--Video

-3-5 库所-变迁(P-T)系统课后习题--作业

-3-6 网系统层次

--Video

-3-7 高级网系统

--Video

-3-8 化简网系统

--Video

-3-9 非线性网系统

--Video

-3-10 小结

--Video

第四章 网论

-4-1 前言

--Video

-4-2 网拓扑

--Video

-4-3 并发论

--Video

-4-4 网逻辑

--Video

-4-5 信息流网

--Video

--Video

-4-6 同步论

--Video

--Video

-4-7 同步论-合同实例

--Video

-4-8 同步论-婚礼教堂实例

--Video

-4-9 同步论 同步器

--Video

-第四章 网论--思考题1

-4-10 实例与方法——电梯控制

--第一部分

--第二部分

--第三部分

--第四部分

-4-11 建模方法论

--Video

-4-12 汉诺塔问题

--第一部分

--第二部分

-第四章 网论--思考题2

第五章 业务流程管理

-5-1 工作流管理联盟

--Video

-5-2 工作流网(WF_net)

--Video

-5-3 Artifacts

--Video

-5-4 BPMN2.0

--Video

-5-5 学界

--Video

-5-6 业务流程管理(BPM)

--Video

-5-7 BPM建模

--A of ARM

--R of ARM:物理对象相关性

--R of ARM:同步器回顾

--R+M of ARM:业务逻辑

--M of ARM:化简规则

--R+M of ARM:案例语义

--R+M of ARM:管理逻辑

--M of ARM:BPMA

-5-8 流程举例

--第一部分

--第二部分

-5-9 流程之外

--Video

-Petri网小结

--Video

--Video

第六章 过程挖掘

-6.1 过程挖掘基础

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-6.2 过程挖掘工具

--Video

--Video

-6.3 过程挖掘算法介绍

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

--Video

-6.4 未来研究方向

--Video

第七章 科研思考

-7.1 科研三要素

--Video

-7.2 Program today

--Video

-7.3 Program yesterday

--Video

-7.4 Theory of Programming

--Video

-7.5 A of ARM

--Video

-7.6 R of ARM

--Video

-7.7 M of ARM

--Video

-7.8 OESPA

--Video

-第七章 科研思考--习题

第八章 总结

-8.1 树个靶子

--Video

-8.2 八卦与自然

--Video

-8.3 结束语和感谢

--Video

-第八章 总结--习题

第三部分笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。