57
离散动力学系统

离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

  • Upload
    others

  • View
    32

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

离散动力学系统

Page 2: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

0、连续系统(Continuous Systems)

系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor models)进行建模,映射这些方程的等价参量。

系统的重要性能

1)李亚普诺夫稳定性 :x(t)的解保持在平衡点附近。2)渐近稳定性 :x(t)的解保持在平衡点附近最终达到它。

CPS(嵌入式系统)模型包括连续(continuous)组件和离散(discrete)组件。

简单来说,连续组件是平滑变化的,通常可以用常微分或积分方程

而离散组件是突变,并不方便利用常微分方程进行建模。

离散组件如何建模?或离散动力学系统如何建模?

Page 3: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

离散系统概念

Page 4: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

1、离散系统(Discrete Systems)

一个实例:停车场车辆计数系统

设:

1)当有一辆车到达时,产生一个事件,用角色ArrivalDetector描述;

2)车辆离开时,产生一个事件,用角色DepartureDetector描述;

3)以上均产生一个计算事件,用角色Counter描述——从初始值 i开始不断计数。每次当计数有变化,则产生一个输出事件来更新显示。

Page 5: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

积分(Integrator)与计数Counter

Counter与Integrator都是累积(accumulate)计算,但

Integrator的输入为这样一个函数: x : R→ R或者 x : R+ → R, 是一个连续的时间信号。

实例中的输入信号 u:R→ {absent, present}.

即,对于任何时间 t ∈ R ,输入u(t)或者为absent,表示该时刻没有事件(event);或者为present,表示有事件发生。

假设计数器Counter按如下规则运行:

1)当一个事件在up输入端口为present时,递加计数(count),并产生新的计数值作为输出。

2)当事件在down输入端为present时,递减计数,并产生新的计数值作为输出。

3)其它所有时间里(即两个输入都为absent时),不产生输出(count没有输出)。因此,信号

c : R→ {absent} ∪ Z

Page 6: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

角色模型

Counter的输入是一对离散信号,在特定时刻有一个事件(处于present状态),而在其它时刻没有事件(处于absent状态)。

Counter的输出也是一个离散信号,当输入为present时有一个自然数的输出值,而其它时刻间则没有2。显然,当输入为absent时,Counter没有必要做任何事情。

Counter的角色模型:

但是,输入信号是离散的,并不一定意味着输出也要是离散的。

Page 7: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

角色Integrator与Counter的比较

角色 Integrator

x : R→ R或者

x : R+ → R,

角色Counter

u :R→ {absent, present}.,输入为“纯信号”

c : R→ {absent} ∪ Z,输出为一整数。

Page 8: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

离散系统概念

离散系统,即离散时间系统,是将离散时间输入信号变换为离散时间输出信号的系统,对于控制系统来说,有一处或几处信号是一串脉冲或数码的控制系统是离散系统。采样和量化是离散系统中十分重要的两个信号处理过程。

离散信号,即离散时间信号,和连续时间信号并列为两种基本信号类型,是定义在离散时刻点的信号,或者说是自变量仅取在一组离散值上的信号。

Page 9: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

离散信号

离散信号由时间上的一系列即时事件组成。

考虑具有形式 e:

R→ {absent} ∪ X的一个信号, 其中X是任意一组值。

如果多数时刻没有信号,而有些时刻有信号,可以按顺序计数,那么它是一个离散信号。每次出现的信号,就得到一个离散事件。

如果对于所有有理数t,e都为present,那么这个信号不是离散的。它出现的次数无法按顺序计数。

时间序列:

令T ⊆ R为e出现的次数集:T = {t ∈ R : e(t ) ≠ absent}.

如果存在一对一的序列函数 f : T → N,那么e是离散的。

对于所有的t1, t2 ∈ T ( t1 ≤ t2),都有 f (t1) ≤ f (t2)。这样的一对一函数可以确保按时间顺序对事件进行计数。

Page 10: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

离散事件系统

离散事件系统是指其状态变量只在某些离散时间点上发生变化的系统。

大多数离散事件系统本质上属于人造系统,即包含人为规则或人为机制的“非物理型”系统。

离散事件动态系统是由异步、突发的事件驱动状态演化的动态系统。这种系统的状态通常只取有限个离散值,对应于系统部件的好坏、忙闲及待处理工件个数等可能的物理状况,或计划制定、作业调度等宏观管理的状况。而这些状态的变化则由于诸如某些环境条件的出现或消失、系统操作的启动或完成等各种事件的发生而引起。

这类系统中有许多事件时而出现,时而消失,时而动作,时而停止,而启动和停止都发生在一些离散的时刻,并带有一定的随机性。例如,港口中船舶的停靠码头、生产线上机床的启停、电话的接通和断开、计算机系统中某项作业的进行和退出,

Page 11: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

反应式(响应)系统

离散系统的动力学可以描述为反应系统,且每个响应都是实时的。离散系统的响应是由离散系统运行的外部条件引发的。

实例中,出现一个或多个输入事件时,Counter角色响应被引发。也就是说,这个实例中,响应是事件触发的。当计数器的两个输入都不出现时,则没有响应发生。

Page 12: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

功能 vs 反应计算

1)经典的计算模型: 功能的

(1)给定输入,程序产生输出

(2)Desired functionality described by a mathematical function

(3)用数学函数描述功能需求

例如:分类,有权图的最短路径

(4)计算理论为这些问题的求解提供了基础

(5)正则模型: 图灵机

2)Reactive计算

(1)系统通过输入输出以某种方式与环境交互。

(2)期望行为:哪一种观察到的输入/输出的相互作用序列是可以接受的?

例如:汽车的巡航控制。

Page 13: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

端口(变量)和估值

从一个特定响应可以得到特定时刻t的输入值,并计算同时刻t 时刻的输出值。

假设: 1)一个参量有输入端口P = {p1, · · · , pN },其中 pi 为第i个输入端口。

2)对于每个输入端口 p ∈ P ,集合 Vp 表示有输入时端口 p接收的值。Vp 称

为端口 p 的类型(type)。

在反应系统中,将每个p ∈ P 看作一个属于p ∈ Vp ∪ {absent}值的变量。对于每个输入 p ∈ P 而言,输入P取Vp中的值或者判断p为absent。

如果端口p接收到一个信号,那么Vp = {present}为单元素集合(singleton set),

则,信号不缺损时,唯一可能值为present。

因此,在反应系统(响应)中,变量p取集合{ present, absent}中的一个值。

同样适用于输出。假设一个离散系统有输出端口Q = {q1, · · · , qm },且类型为Vq1 , · · · ,Vqm 。在每一个响应里,系统对于每一个 q ∈ Q 分配一个值 q ∈Vq ∪ {absent} , 产生个输出值。

存在一组输入,使得此系统在有限时间内,可以由初始状态转移到终止状态。可以依一系统的输出得知其系统内部的初始状态。

Page 14: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

二、状态的概念

Page 15: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

状态

状态:

系统的状态(State)是指它在特定时间点的状况。状态会影响系统对输入做出怎样的响应

系统过去、现在和将来的状况

系统理论所是指在系统中可决定系统状态最小数目变量的有序集合。

Page 16: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

状态变量

状态变量:确定动力学系统状态的最小一组变量。

能够完全表征系统运动状态的最小一组变量:

表示系统在 时刻的状态

若初值 给定, 时的 给定, 则状态变量完全确定系统在 时的行为。

0 0 ( ) ( )) t tx t x ta = =

0( )x t 0t t ( )u t 0t t )b

Page 17: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

状态空间

状态空间:

对于确定的某个时刻,状态表示为状态空间中一个点。

状态随时间的变化过程,构成了状态空间中的一条轨迹。

以状态变量 为坐标轴构成的n维空间

系统全部可能状态的集合。状态空间表示法即为一种将物理系统表示为一组输入、输出及状态的数学模式,而输入、输出及状态之间的关系可用许多一阶微分方程来描述。

状态向量:以系统的n个独立状态变量 作为分量的向量,即

状态方程:描述系统状态与输入之间关系的、一阶微分方程(组)

T

1( ) , ,( ) ( )nx t x xt t=

1 , ,( ) ( )nx xt t

( ) ( ) ( )x t Ax t Bu t= +

Page 18: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

积分器Integrator

积分器Integrator在一个连续的时间内运行,累加连续的输入信号,在初始状态的基础上通过输入生成各个时间的曲线累积面积作为输出。任何给定时间的状态是初始状态基础上的累积面积。

积分器Integrator,在时刻 t 的状态 y(t)是一个实数。因此, Integrator的状态空间(State space)可以看作为States = R。

Integrator的状态空间是无限的,不可数的。

Page 19: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

计数器Counter

计数器Counter,时刻 t 的状态s(t)是一个整数,所以 States ⊂ Z。实际上停车场有一个有限且非负的M个空位。因此,参量Counter的状态空间可以表示为:

States = {0, 1, 2, · · · , M} .

计数器的状态空间是有限的。有限状态空间的离散模型称为有限状态机(FSMs)

Page 20: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

三、有限状态机

Page 21: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机简述

状态

一个系统的状态是指它在特定时间点的状况。

状态机

是一个具有离散动态的系统模型,每个响应都是基于现状态的从输入值到输出值的映射

有限状态机(FSM)

是一个状态集为有限的状态机。

状态转移

决定状态机的动力学行为以及输入值到输出值的映射。

数学描述

(为什么这么定义?比较y=f(x))

Page 22: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机简述(续)

图形表示

状态:用一个“气泡”来表示,

初始状态:用一个悬空箭头来表示。

转移:用一个弯曲的箭头表示,从一个状态连到另一个状态,

或自转移。

标记:决定响应时是否有转移发生,如图,

标记为“guard / action”。其中判定式(guard)决定响应时是否有转移发生。动作(action)表明每个响应得到怎样的输出。

判定式是一个谓词,有转移发生时为真,从转移开始到结束改变状态。判定式为真时,有转移发生(enabled,使能)。动作是对输出端口的赋值(或absent)。有转移时没有提及的输出端口为absent。如果没有任何动作,则所有输出都为absent。

Page 23: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机(FSA)

一个五元组:

M=(Q,∑, q0,δ,F)

Q——状态的非空有限集合;

q为M的一个状态,q∈Q;

∑——输入字母表,输入字符串都是∑上的字符串;

q0——q0∈Q,是M的开始状态(初始状态或者启动状态);

δ——状态转移函数(转换函数或移动函数),

δ:Q×∑→Q,对(q,a)∈Q×∑,δ(q,a)=p表示:M在状态q读入字符a,将状态变成p,并将读头指向输入字符串的下一个字符。

F——FQ,是M的终止状态集合, q∈F,q称M的终止状态(接受状态)。

状态转移图

Page 24: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

M1=({q0,q1,q2},{0},δ1,q0,{q2})

其中 :δ1(q0,0)= q1

δ1(q1,0)= q2,δ1(q2,0)= q1

识别 {(00)n|n>=1}

Page 25: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

停车场计数器的FSM模型

状态的集合为: States = {0, 1, 2, · · · , M}。

判定式:从状态0到1的转移,为 up ∧ ¬down。当up为present而down为absent时,谓词的值为真。如果响应时,当前状态为0且判定式的值为真,则有转移发生,且下一个状态为1。

此外,该动作表明输出应该为1。由于输出端口count是唯一输出端口,不会产生歧义,所以没有明确命名。

从0转移到1时,如果判定式只表示为up,则当down也为present时谓词为真,这样一来,如果有一辆车到达同时有一辆车离开,会发生车辆计数错误。

Page 26: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机图示(一)

谓词

up—有;down—无

Page 27: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机图示(二)

(初始状态)

Page 28: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机图示(三)

(输出值)

Page 29: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机图示(四)

图中定义了更新功能——谓词逻辑(标记)

Page 30: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

“标记”的运行规则

设离散系统的输入为p1 、 p2 (都是纯信号)

则:

true ——总有转移发生。

p1——当 p1 为present时,有转移发生。

¬p1——当p1 为absent时,有转移发生。

p1 ∧ p2——当p1 和 p2都为present时,有转移发生。

p1 ∨ p2——当p1 和 p2有一个为present时,有转移发生。

p1 ∧ ¬p2——当 p1为present且 p2为absent时,有转移发生。

这些标准逻辑运算符,利用true和false来替代present和absent。

符号 ¬ 表示逻辑非。

运算符∧ 表示逻辑与(逻辑AND)

∨ 是逻辑或(逻辑OR)。

Page 31: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

恒温器FSM模型

考虑一个恒温器的FSM模型,

其状态为States = {heating, cooling},

假设设定值为20摄氏度。

开启加热器,恒温器允许温度高于设定值到22度。

关闭加热器,它允许温度低于设定值到18度。

这种控制策略称为滞后。这可在温度接近设定值时,避免因加热器快速开启关闭而带来的抖动。

加热器有一个R型的单输入temperature和两个纯输出信号heatOn和heatOff。

仅当加热器的状态需要变化时,这些输出为present。

1)触发机制:状态机的定义里没有限制何时响应,由外部条件决定何时发生响应。如事件触发和时间触发。

2)时滞系统:恒温器“滞后状态”,是用来防止抖动的,滞后系统具有记忆性。

3)抖动与振荡

Page 32: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

FSM的更新函数(update function)与数学描述

图形描述的优缺点。

update function:更新函数(升级函数)

状态机的数学描述:(States, Inputs, Outputs, update, initialState),

•状态(States)是一个状态的有限集;

• 输入(Inputs)是一个输入值集(a set of input valuations);

• 输出(Outputs)是一个输出值集(a set of output valuations);

• 转移(update):States × Inputs → States × Outputs 是一个升级函数(update function),将一个状态和一个输入值映射到下一状态和输出值。

• 初始状态(initialState)。

状态机动力学

设 :x: N→ Inputs , y :N→ Outputs

(s(n + 1), y(n)) = update(s(n), x(n))

Page 33: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

停车场计数器的FSM数学描述

FSM的数学表示:

更新函数:

States = {0, 1,···,M}

Inputs = ({up, down}→ {present, absent})

Outputs = ({count}→ {0, 1,···,M, absent})

initialState = 0

其中, s ∈ States 和 i ∈ Inputs。值得注意的是,输出值o ∈ Outputs是一个形式为o : {count}→ {0, 1, ···,M, absent}的函数。在式中,第一个选择给出输出值 o = s + 1,称为常量函数(constant function),即对于所有的 q ∈ Q = {count}都有o(q) = s + 1。当输出端口多于一个时,需要明确哪个输出值分配给哪个端口。这种情形下,可以使用与图中表示执行相同的符号。

Page 34: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

有限状态机的局限

1)在多有限状态机系统中,系统的状态为所有状态机的状态的笛卡儿(同步、异步)积,因此系统的状态数具有状态组合复杂性问题。即使对于非常简单的情况,复合后系统的状态图的规模也会变得非常庞大,甚至无法进行;

2)有限状态机模型实质上存在一个限制性假定:在系统所处的每一个状态上,在任何时刻,最多执行一个操作。因此,有限状态机主要描述顺序系统,并发描述能力很弱;

3)有限状态机不能描述无限状态系统,同时,缺乏描述时间特性的机制。有限状态机也不适合于描述系统的功能和结构特性。

Page 35: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

四、扩展有限状态机

Page 36: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

36

基本概念

前面讨论的有限状态机,可以看作仅接受输入符号并发生状态改变,但无任何输出的自动机器。当状态的数目变大,FSM的标注将变得非常不方便。停车场计数器明白地说明了这点。如果M很大,这种圈和弧的表示将变得很不实用。这就是为什么图中采用了“…”的省略表达形式。即状态爆炸问题

现实生活中的许多有限状态系统,对于不同的输入信号,除内部状态不断改变外,还不断向系统外部输出各种信号。

将有限状态机进行推广,引出具有输出机制的自动机器模型。

带输出的自动机器模型,按照输出的不同分成两类:输出与状态有关—Moore机;输出与状态和输入有关—Mealy机。

Page 37: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

Moore型状态机

下一状态只由当前状态决定,即:

次态=f(现状,输入),

输出=f(现状),

在状态中产生输出,而不是在生转移发时产生输出。也就是说,输出是由当前状态,而不是当前转移所定义。

严格因果关系。

Page 38: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

Moore机形式定义

Moore机形式定义为六元组M = (Q, , , , , q0),其中

① Q = {q0,q1,…,qn}是有限状态集合;

② = {1,2,…,m}是有限输入字符集合;

③ = {a1,a2,…,ar}是有限输出字符集合;

④ :Q → Q是状态转移函数;

⑤ :Q → 是输出函数;

⑥ q0 Q是初始状态。

Page 39: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

qs

0S

1

0

q0

0能被3整除

q1

1

0

1模3余1

00能被3整除

01模3余1q2

10模3余2

01

11能被3整除

100模3余1

1

101模3余2

二进制数的模3余数

Q = {q0,q1,q2}

= {0,1}

= {0,1,2}

(qj) = j, j = 0,1,2

在输入(0)10100 下,

输出为012212

实例

Page 40: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

Mealy型状态机

下一状态不但与当前状态有关,还与当前输入值有关,即

次态=f(现状,输入),

输出=f(现状,输入),有转移时产生输出。

Mealy机形式定义为六元组M = (Q, , , , , q0),

其中

① Q = {q0,q1,…,qn}是有限状态集合;

② = {1,2,…,m}是有限输入字符集合;

③ = {a1,a2,…,ar}是有限输出字符集合;

④ :Q → Q是状态转移函数;

⑤ :Q → 是输出函数;

⑥ q0 Q 是初始状态。

Page 41: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

Mealy机实例

状态转移函数为:

(q0,0) = q1, (q0,1) = q2,

(q1,0) = q1, (q1,1) = q2,

(q2,0) = q1,(q2,1) = q2。

输出函数为:

(q0,0) = n, (q0,1) = n,

(q1,1) = n, (q1,0) = y,

(q2,1) = y, (q2,0) = n。

1/y0/n

1/n

0/y

0/n

1/n

q0

q2

q1

在输入01100 下,输出为:

nnyny

Page 42: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

Moore机与Mealy机

任何Moore机都可以转换为一个等效的Mealy机。

Mealy机可以转换成大致等效的Moore机,差别只是输出产生于下一个响应,而非当前响应。

由于Mealy机往往更加精简,需要较少的状态来表示同样的功能,而且能够即时对输入产生输出,所以往往采用Mealy机。

Page 43: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

停车场计数器的Moore机

与FSM的不同:

1)图:利用一个斜线符号将输出显示在状态中,而不是在转移上。

2)动力学:假设第一个响应时,up = present 且 down = absent 。输出为0,而FSM图中为1。

Moore机的输出表示有一辆车到达时停车场中车的数量。而不是车到达后车的数量。假设第一个响应时, up = down = absent。输出为0,FSM的输出为absent。

响应时,Moore机始终报告与当前状态相关的输出,而Mealy机并不产生输出,除非有转移明确给出那个输出。

Page 44: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

停车场计数器的扩展状态机

Page 45: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

扩展状态机与FSM的区别

1)明确给出变量的声明。以便容易确定判定式或者动作中的标识符表示一个变量而不是输入或输出。

2)初始化时,已声明的变量可以被初始化,其初始值显示在标明为初始状态的转移上。

3 )转移的注释有如下形式:

判定式/输出动作(guard/output action)

设定动作(集)(set action(s))

判定式和输出动作(output action)都和标准FSM相同,这里可以指变量。动作集(set actions)是新加的。具体指转移发生时的变量赋值。这些赋值产生于判定式做出判定,且输出已经产生之后。因此,如果判定式或者输出动作涉及到一个变量,那么该变量的值取动作集赋值之前的值。如果有多个动作集,则按顺序进行赋值。

扩展状态机给出一个跟踪时间推移的方便途径。

Page 46: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

实例分析:交通信号灯的控制

问题描述:

设一个人行横道交通灯(只是个很简单的人行横道),

开始于红灯状态,计数60秒;

然后,转移到绿灯,保持到有行人按下按钮;

如有行人按一个按钮请求通行,如果状态机在绿灯状态下持续至少60秒,则转移到黄灯;

否则,停留以60秒为间隔的剩余时间。

确保一旦变为绿灯,至少会保持60秒。60秒结束时将在转移回红灯之前,先转移到黄灯并保持5秒。

Page 47: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

建模

用时间触发的状态机建模 ,该模型假定每秒一次反应,一类时间触发模型。

状态机输出:sigG表示绿灯亮,sigY表示黄灯亮,sigR表示红灯亮。

Page 48: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

时间触发的模型

反应在什么时候发生?

•当状态机本身未指定发生反应时。 这取决于环境。

•此交通灯控制器设计假定每秒一次反应。 这是一个时间触发的模型。

Page 49: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

事件触发模型

反应在什么时候发生?

•假设所有输入都是离散的,并且当存在任何输入时会发生反应。 然后,只要当前状态为s1且x存在,就会进行上述转换。

•这是一个事件触发模型。

Page 50: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

事件触发模型转换条件

反应在什么时候发生?

如果x和y是离散的纯信号, 转换何时发生?

答案是:当环境触发反应而x不存在时。 如果这是一个(完整的)事件触发模型,则永远不会进行转换,因为只有当x存在时才会发生反应!

Page 51: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

状态机特性

1)确定性(Determinacy):

如果对于每个状态,每个输入值最多可激活一个转移,则称这样的状态机具有确定性。

在每个状态中,对于所有输入值,只启用一个(可能是隐式的)转换。

2)可接受性(Receptiveness):

如果对于每个状态,每个输入符号都有至少一个可能的转移,这样的状态机称为可接受的。换句话说,可接受性确保状态机对任何输入准备随时响应,且在状态都不出现“阻塞”。

对于任何输入值,都会启用某些转换。 我们的结构与隐式默认转换一起确保这些FSM具有接受性。

由此可见,如果状态机既是确定的又是可接受的,则对于每个状态,都有一个可能的转移对应一个输入值。

3)不确定转换:当输入不存在且产生缺少输出时,启用的隐式默认转换。

Page 52: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

五、不确定性与不确定的有限状态自动机(NFA)

人行横道交通灯控制器,行人到达人行横道前,交通灯保持为绿灯;

直到有行人到达且按下按钮pedestrian,称系统响应pedestrian事件;

有行人到达的一个“外部环境”,问题是如何去构建外部环境模型,可以为此构建一个城市人流模型。不过,这将是一个非常复杂的模型。

忽略无关紧要的细节,只:关注交通灯的设计,那么可以利用不确定状态机来实现:

从该状态引出的两个转移的判

定式都为true,表示这两个转

移都有发生。 由于有两个转

移发生,所以这个状态机是非

确定的。FSM可以保持同一

状态,不产生输出,或转移到

waiting 并 产 出 纯 输 出

pedestrian。

Page 53: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

非确定有限自动机

非确定的有限自动机(Nondeterministic Finite Automata)简记为NFA,是一个五元组

M=(Q,∑,δ,q0 , F)与确定有限自动机(DFA)相同:

Q、∑、q0和F与确定的有限自动机的含意相同,

与确定有限自动机(NFA)不同:

转移函数δ的定义不同,它是从Q×∑到2Q(Q的一切子集的集合)上的映射。

DFA中,δ的一般形式是δ(q,a)=p (q,p∈Q),

NFA中,δ的一般形式是δ(q,a)={p1,p2,…,pk}(pi∈Q,i=1,2,…k),或δ(q,a)=φ(空集)。

NFA中转移函数δ的取值是一个状态集,即使只有一个状态p,也要写成集合形式{p}。

Page 54: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

行为和迹

•FSM行为是一系列(非确定)步骤。

•跟踪是行为中输入,状态和输出的记录。

•计算树是所有可能跟踪的图形表示。•FSM适用于形式分析。

例如,安全性分析,可达性分析。

对于非确定性状态机,表示特定的

输入序列所对应的所有可能的迹,

甚至表示从所有可能的输入序列

所产生的所有可能的迹都是有效的。

Page 55: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

非确定性行为:计算树

对于固定输入序列:

•确定性系统表现出单一行为

•非确定性系统表现出一系列行为

•可接受性对非确定性状态机意味着什么?•非确定性≠概率

Page 56: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

FSM的角色模型

用这一模型可以组成状态机。

Page 57: 离散动力学系统 - hnu.edu.cnesnl.hnu.edu.cn/ecps2018/5_Discrete_dynamic_systems.pdf0、连续系统(Continuous Systems) 系统的动力学通常可以利用常微分方程或积分方程描述。本书用角色模型(actor

我们能用FSM做些什么

1)描述系统的方法:•数学分析,•这样就可以计算机程序来操控系统。

2)一种模拟系统环境的方法。3)一种描述系统哪些必须要做哪些一定不能做的规范。4)一种检查系统是否在其操作环境中满足其规范的方法