一种将离散化状态方程映射为并行多处理器计算机的方法
摘要:针对大量存在的控制系统(通常包含多个微控制器)以及相应的仿真系统,本文提出了一种通用的理想化的基于共享内存的并行多处理器计算机的模型。为保证计算的确定性和可重复性,本文提出的这种并行多处理器计算机具备理论上的确定性的特点。本文在常规的数值离散化状态方程的基础上,考虑了目前计算机控制系统中大量存在的逻辑的和非数值的计算的情况,对离散化状态方程进行了进一步的抽象,提出了一种新的状态方程构型。并提出了一种将这种状态方程转换到理想计算机模型的方法。
关键词: 共享内存 并行计算 确定性 离散化状态方程
引言
现代化的控制系统中大量地采用了计算机/微处理器和通信设备,为实现复杂的控制功能和达到极高的控制性能,由计算机硬件和软件所构成的系统往往规模庞大、结构日趋复杂。在这样一种控制系统的设计过程中,大家经常会被各种不确定性所困扰,其中一种不确定性来源于计算机系统结构的本身。由于目前常见计算机的基本结构是串行化指令执行的,通过提高主频来加快指令执行的速度,其软件代码一般是按照尽可能快的方式来设计的,而对于准确的时间以及先后次序往往不是显式指定的。这种不确定性使得系统的行为难以被准确预期,使得系统的分析和测试的结果的说服力降低。
同时传统控制论着眼点主要在数量关系上面,而对于在实际计算机控制系统中大量存在的逻辑推理、字符串运算等缺少一个严谨的模型来加以描述,对其向计算模型的转变也缺少坚实的理论基础。而这与早期的数字电路的严格映射形成了鲜明的对比。因此非常有必要将控制理论从单纯的数值形式扩展到更一般的函数映射形式。同时这种函数映射又能够很方便地转换为计算。
换句话说,在构建一种更一般化的控制论模型基础上,提供一种将这种控制模型转换为一种计算模型的方式,而这种转换所带来的计算模型本身应该天然地具备确定性的特点。本文要讨论的就是这样一种体系。
关于状态方程
传统的差分状态方程有着非常简明的形式,如下:
在给定的时间间隔deltaT的情况下,
x(k+1)=Gx(k+Hu(k)---状态方程
y(k)=Cx(k)+Du(k)-----输出方程
其中x(k)、u(k)、y(k)分别是第k个时刻的状态、控制、输出向量。
G--系统矩阵、H--输入矩阵、C--输出矩阵、D --输出矩阵
该状态方程能够良好地适应基于数值的线性定常离散时间系统。然而在实际的控制系统中,特别是用计算机作为主控制器的系统,大量的存在非数值的,非定常的系统,那么有没有一种更一般的状态方程定义呢,
设想的形式如下:
在给定的时间间隔deltaT的情况下,
x(k+1)=f(x(k),u(k))
y(k)=g(x(k),u(k))
其中
x(k)、u(k)、y(k)分别是第k个时刻的状态、控制、输出向量。而向量中的每一个元素可以是数值、字符串或者任意确定的复杂结构类型。
f是状态函数,实现从x(k),u(k)到x(k+1)的映射
g是输出函数,实现从x(k),u(k)到y(k)的映射
理想计算机
现考虑一种理想计算机,其基本特征为,多处理器,基于共享内存,
其结构形式如下:
在共享内存中(假设容量无穷大),u 为输入变量,y为输出变量,x1,x2为状态变量(状态变量会保存两个x和x`两个变量,分别对应x(n)和x(n+1));
f1,g1,f2,g2分别为状态函数和输出函数处理器,其函数实现均为纯函数。这些处理器被统一的晶振所控制,且是完全并行工作的。每个处理器计算速度无穷大,也就是说,其计算时间接近于0.
在共享内存区域,每个变量最多只有一个写入者,可以有多个读取者。u作为输入变量,只能被外在环境写入,y作为输出变量,可以被外在环境读取。
主要的操作包括:
状态变量初始化
向输入变量u写入数据
读取变量x和u到处理器中
处理器进行计算
将计算结果写入到x`和y中
从y中输出数据
将x` 替换掉x
上述操作的每一步执行所需要的时间均可认为接近于0 ,也就是离散系统的行为完全取决于对于时间的设定,而并不存在物理上的限制。
其操作时序如下:
对于第1个周期,即周期0,存在初始化操作。
对于周期n,其执行次序如上图。
上述理想计算机可以方便地实现状态方程到计算机的映射。此种计算机每次计算的结果均完全相同,其在时间上的表现也完全相同。即使进行高倍速计算,其结果仍然完全可重复。
关于状态方程拼接
设想有两个系统串联,如下图所示
其状态方程和输出方程分别如下
对于系统1:
x1(k+1)=f1(x1(k),u1(k))
y1(k)=g1(x1(k),u1(k))
对于系统2:
x2(k+1)=f2(x2(k),u2(k))
y2(k)=g2(x2(k),u2(k))
同时,下述等式成立
u2(k)=y1(k)
则代入后,得到下列方程组
x1(k+1)=f1(x1(k),u1(k))
y1(k)=g1(x1(k),u1(k))
x2(k+1)=f2(x2(k), g1(x1(k),u1(k)) )
y2(k)=g2(x2(k), g1(x1(k),u1(k)) )
上述案例分析说明,即使对于复杂的组合型系统,我们仍然可以将中间变量消掉,并且映射到理想计算机模型上。
我们注意到,现代的函数式语言(比如javascript),可以容易地模拟上述语义。
结论
本文讨论了一种更为一般的离散化的控制论模型,并提出了一种非常简易的理想并行计算机模型,并对将控制论模型映射到理想计算机上的方法进行初步的探讨。
初步的分析表明,这种方式可以带来确定性的好处,并且容易实现控制论对象向计算的转移,对于进一步提高现代计算机控制系统的可验证性和加快设计,提供了一种新的途径。
参考文献
1. ExplicitlyParallel Programming with Shared-Memory is Insane: At Least Make itDeterministic! ---Joe Devietti, Brandon Lucia, Luis Ceze and Mark Oskin Departmentof Computer Science and Engineering University of Washington
2.javascript
3.URBI script
4.matlab
5.NI labview
作者
对此有兴趣的可以通过邮箱3454639457@qq.com联系作者
2018-4