动态雕塑控制系统分析与应用

2018-07-18 09:14侯鹏强唐伟向飞
演艺科技 2018年3期

侯鹏强 唐伟 向飞

[摘要]阐述动态雕塑控制系统实现的技术方案及构成、软件功能,重点给出编程实现表达式的解析。

[关键词]动态雕塑;可编程;系统构成;伺服;步进;表达式解析

动态雕塑,也称矩阵球、悬浮球阵列,是由数百到数千个悬浮体组成的阵列,每个悬浮体通过一根拉线受控可做垂直运动,每个悬浮体的运动组成一体化的动作。

悬浮体阵列在计算机的控制下,以三维方式展现图案、文字、变换的曲线曲而,伴随音乐舞动,或灵动,或柔美,带给观众极强的视觉冲击感,具有超乎想象的展示效果,在科技馆、展厅、大型商场、舞台等演艺娱乐场合迅速应用。图1所示分别为动态雕塑在宝马博物馆、上海世博会、新加坡机场等场合的应用。

目前,动态雕塑的实现主要有两种技术方式。

(1)一般应用于高速高精度场合,系统运行结构采用伺服电机,每个伺服电机问通过高速工业以太网来布置控制网络,每个运动部件的速度可达到几米每秒的运行速度。系统针对雕塑的编程采用专业的编程软件来实现,编程方式相对灵活多样。

(2)一般应用于要求相对较低的场合,方案采用DMX512信号来控制每个点,电机一般采用步进电机,软件编程通常采用现成的灯光控制台进行编程,运行速度较慢,编程较为繁琐。

为了实现高动态特性和易操作特性,动态雕塑控制系统采用伺服+高速工业以太网的方案来实现,悬体阵列由一个个一体化模块组成,运用r分布式实时控制、伺服控制等技术。每个模块安装简单,通过标准化的紧固件固定在吊顶钢架上,电气部分只需要多芯插座连接,一般的工人即可完成安装;整体采用无机柜无机房设计,简化运维成本,用户通过计算机软件可以灵活控制悬浮阵列的场景变换。

2 系统构成

动态雕塑控制系统采用分布式架构,主要由三层构成:控制层、管理层、执行层。

控制层:指上位机或操作台,通过上位机或操作台,操作人员可选择单个设备或执行对应的轨迹操作。

管理层:主要包含可编程逻辑控制器(PLC),主要用于接收计算机下发的控制指令,通过指令解析后下发控制指令给伺服驱动,同时接收伺服驱动传来的设备状态等数据,上传给操作层。

执行层:主要用于执行控制层或管理层传来的控制命令,通过对命令的解析,完成控制功能。

如图2所示,系统控制层主要由操作台构成,可采用多个操作终端来控制设备;管理层主要由PLC系统构成,PLC系统由一到多个PLC组成,根据实际的负载情况来测算需要多少个PLC,管理层作为核心环节,一方而负责通过以太网接收来自操作终端的指令,一方而又通过实时以太网下发控制指令给执行层;执行层则主要由支持EtherCat总线的伺服驱动构成,通过EtherCat接口接收来自管理层的控制命令。层与层之间均通过以太网互联,区别之处在于操作层和管理层采用普通以太网的方式通信,管理层和执行层采用实时以太网的方式通信。

系统采用德国倍福系列的PLC,稳定可靠,相比西门子、施耐德等PLC,具有如下特点:

(1)运行速度快,对于常规PLC,系统的扫描周期一般在5ms以上,而倍福的PLC运行速度能达到500μs甚至更短,方便进行运动计算,实时性高;

(2)总线速度快,倍福PLC主要采用倍福EtherCAT总线,扫描100个轴能控制在100μs以内,对于底层驱动设备调节速度快,设备响应精度高;

(3)應用范围广,倍福PLC目前广泛应用于需要运动控制的行业,包括最新的迪斯尼等秀场全部采用其控制系统;

(4)多级PLC构成技术,多个PLC可通过内部的工业以太网实现快速同步。

伺服驱动和伺服电机采用带有EtherCAT总线接口的产品,具有如下特点。

(1)性能:EtherCATIX习络的运行、通信速度快。1000个分布式IO数据的扫描周期为30μs。通过单一一个数据帧,可同时交换1 486字节的过程数据,其传输周期不高于300μs。与伺服的通信测试中,100个伺服轴的通信时间≤100μs。同时,由于采用分布式时钟,可保证轴与轴之间的同步时间误差<1μs。

(2)拓扑结构:该网络支持总线型、星型或树型等几乎所有拓扑结构。拓扑结构选择自由度高,布线灵活,是否采用总线拓扑结构,或是树型结构,均可任意选配组合。总线支持自动地址分配;无需手动设置IP地址。

(3)热连接:EtherCAT系统具备热连接功能,可将网络的每个部分任意连接或断开,或动态进行重新连接,组态方式灵活多样,可适应不同的组态需求。

(4)安全性:EtherCAT安全协议基于应用层,不影响低层。已通过IEC61508认证,可达到SIL3安全集成级别,在采取更多措施后可达到SIL4安全级别。

(5)开放性:EtherCAT技术不仅与标准以太网兼容,而且还具有设计开放性特点,协议可以与其他通信格式的以太网协议并存,所有协议并存于同一物理介质中,且只会对整个网络性能有比较小程度的影响。

3软件功熊

软件的操作方式借鉴国外控制风格,操作方式通过计算机选择,配合操作台上手柄进行控制,安全可靠。通过计算机软件的编程,可轻松实现编程、仿真、播放等功能。每个悬浮模块可组合使用,也可单独使用。

(1)操作方式:分为编辑模式、手动模式、自动模式等,操作方式灵活。

(2)固定模型编辑:该模式可编辑动态雕塑中的某个区域按照设定好的数学函数进行运行,如正弦余弦、直线、斜面等固定的模型。

(3)字符编辑:可将动态雕塑用于显示字符,如数字、汉字、英文字母等。

(4)图形编辑:可将动态雕塑用于显示固定的画而。软件可对图形进行预处理,包括调整灰度值等处理功能。

(5)自定义函数编辑:可用于任意函数编辑,显示用户指定的特殊函数,如特定的曲而曲线等信息。

(6)设备管理:设备管理可灵活设置设备的软限位、清零位置、当前位置等设备参数。

(7)系统状态、设备状态:可查看系统状态和设备状态,包括设备每个开关的状态信息。

(8)日志管理:可查看系统的报警日志、操作记录等信息。

图3所示为软件系统的截图,(1)为软件手动运行界面,三维视图和表格结合显示设备的运行状态,该界而卜^可通过操作台配置的手柄针对单个点或多个点进行单控或集控,该模式下可通过图形的方式快速选择所选设备;(2)为系统函数编辑整体界而,界而左侧主要为图形显示区域,右侧为属性区域,采用指令集的方式,可输入对应的函数,也可通过内置的数学模型快速生成,同时编辑界面内置仿真功能,可针对编辑好的界而进行仿真分析,并可在左侧窗口进行显示;(3)为特殊函数编辑界面,软件不仅可编辑任意函数,也可通过特殊图形插入特殊的模型,如直线、而、波浪线等;(4)为特殊的函数,可插入图像、高度、时间点等动态信息;(5)为函数手动编辑界而,可手工输入对应的函数,并针对函数进行仿真修改等,同时能指定函数的运行起始结束时间,指定时间是否采用往返等方式;(6)为系统自动运行界面,可将编辑好的数据下载到控制器中,让控制器执行对应的雕塑造型等。

4表达式的解析

对于动态雕塑编程软件,函数编辑作为一个核心功能,需要对用户输入的函数进行解析和识别,下面重点对函数解析和识别做出编程分析。

软件需要实现的功能之一是要识别用户输入的数学、字符,即接受输入的包含数字、字符等函数表达式的字符串,并对输入进行分析,转换为对应的计算机可识别的指令表达。此类将算术表达式转为计算机可执行指令的过程,称为表达式解析。

表达式的组成通常包括:运算符、括号、函数、数字、变量,如6—3、5×2、120+(60-30)×3。在运算过程中,除要考虑运算符的优先级,也要遵循数学运算准则中关于优先级相等的运算符,按照从左到右的顺序计算。在分析表达式时,表达式解析器首先需要分离出表达式中的每个元素,如:12×3-(3+8),其中的独立元素有:12、×、3、-、(、3、+、8、)。这种表达式元素通常称为标识符。为了将一串字符串拆分为单个标识符,需要设计一个函数,该函数能从头到尾扫描表达式字符串,从而将每个字符分离出来,确定字符串中每个字符的类型,进行表达式的计算和数学分析。

首先定义表达式解析的变量类型Parser,并定义表达式元素函数getToken()。

变量定义如下。

public const Int32 c_NONE=0;

public const Int32c—DELIMITER=1;

public const Int32 c_VARIABLE=2;

public const Int32 c—NL'MBER=3;

其中,c_VARIABLE、c_NUMBER、c_DELIMITER三個常量分别表示这个解析器中的类型:变量、数值和分隔符。c_DELIMITER既可以是运算符,也可为括号;c_NONE作为一个未定义的标识符的占位符。

public const Int32 c_SYNTAX=O;

public const Int32 c_LNBALPARENS=1;

public const Int32 c_NOEXP=2;

public const Int32 c_DIVBYZERO=3;

String c_EOE=“\0”;

这几个常量主要用于表达错误,包括在解析和计算中产生的错误码。c_SYNTAX用于表示非正则表达式错误,c_LNBALPARENS用于表示括号不对称错误,c-N OEXP用于表示解析器未检测到表达式输入,c—DIVERYZERO用于表示零除错误;c_EOE用于表示表达式的结尾。

private String m_token;

String m_exp;

Int32 m_tokType;

Int32 m_expldx;

doubleLL m_vars= new double[26];

其中,m—exp变量用于存储被解析的字符串;m—expldx用于保存此字符串中的下一个标识符的索引,初始值为O;m_token存储当前获得的标识符;m_tokType用于存储解析字符的类型;m_vars用于存储26个字母。

编写getToken()的代码片段如下。

程序先进行函数初始化,接着查看m_expldx是否等于exp.Length,用来判断该字符串解析是否已经完成。而m_explclx作为一个索引,用于表示当前字符串解析的位置索引,如果该索引值等于需解析字符串的长度,即可表明该表达式已解析完成。

相比采用灯光台等的造型编程,该功能可使得人机交互系统可按受来自用户的函数输入,使得效果呈现更多的内容。

上述内容即为函数解析的主要部分。对于动态雕塑软件中三维视图编程、图像灰度处理等均为常见的软件算法编程,暂不详述。

5结语

动态雕塑控制系统已经成功应用于国内某演艺中心(图4)。该系统采用几十块亚格力材料,通过自带的编程软件,实现各种特殊的动态和静态造型,可动态运行,也可配合演员完成动态天街和飞天等造型。

动态雕塑控制系统采用时间线的方式来编程,具有高动态特性,有利于实现灯光系统和动态造型的相互配合,体现速度和力量结合的视觉效果,可用于舞台表演,也可用于展览展示。

参考文献

[1]朱福喜,唐晓军,等.Java程序设计技巧与开发实例[M].北京:人民邮电出版社,2004.

[2] David Flanagan著.JavaTM实例技术手册[M].何建辉,张洛玲译.北京:中国电力出版社.2001.

[3]黄晓东,等.Java课程设计案例精编[M].北京:中国水利水电出版社,2004.

[4][美]沃克(Wutka,M.)著.Java编程技巧[M].张森译.杭州:浙江科学技术出版社,1999

[5]于海生.多电机同步传动微机控制装置的研制[J].青岛大学学报,1999,14(1):41-44.