1. 引言
我国是制造业大国,迫切需要大量的、各层次的工程技术人员。远程工程教育在我国工程教育中发挥了重要作用,培养了大量社会急需的人才。然而,实践能力的培养一直是现有的远程工程教育的薄弱环节。实践环节的不足,不仅制约了学生对理解理论知识的理解掌握,更制约了学生实践能力的提高。为了加强工程教育的实践教学,大量虚拟实验 [1] 和远程控制实验系统 [2] 被开发并投入到教学环节。对于自动化、电气工程、测控技术与仪器、机械电子工程等专业学生来说,自动控制原理、控制工程类课程是这些专业的核心课程,该类课程以理论为主,内容有一定的抽象性,为了帮助学生更好掌握理论知识,该课程多会辅以仿真实验以达到更全面的教学效果 [3] [4] [5] [6] 。国内外众多研究团体也相应开发出了功能形式多样的实验仿真系统 [7] [8] [9] [10] ,然而这类实验系统绝大多数由于存在实验系统通用性不足、缺乏技术标准等问题导致系统扩展性低,可移植性差 [11] 。另一方面,常用的支持自主配置进行实验的仿真软件,如Matlab、LabVIEW等由于软件使用配置较复杂,多运行于实验室本地机器上,且还存在软件授权等问题,导致远程教育学生很难采取这种方式开展实验。此外,现有的远程实验系统多数部署在学校的实验室,学生的访问受到一定的限制。
本文基于云平台搭建技术与Python语言,设计了基于数学仿真的虚拟运动控制实验并提供了自由组态实验环境。系统具备完善的实验设定与实验评价体系,支持学生利用基本模块自行独立设计控制系统的各个环节及系统结构。由各个模块组成的闭环控制系统的仿真运算全部用Python语言开发,并把实验系统部署在阿里云上。测试表明,该系统可以开展一系列控制类仿真实验,且在云平台的运行架构下,系统具有共享性高、接入方便、使用灵活等特点,较好地满足了学生自主开展远程虚拟实验的教学要求。
2 远程虚拟实验系统结构设计与开发工具选择
2.1. 远程实验系统结构与功能
基于云平台的远程虚拟运动控制实验系统结构如图1所示。系统主要包括实验用户端、接入端、实验云服务器3个部分。其中实验用户端和接入点主要是学生通过Internet接入到实验系统,以支持学生开展远程实验操作。实验云端主要包括用HTML5开发的页面模块,用Python语言开发的云后台实验任务处理、各类虚拟实验的创建和仿真管理等。实验云端是该系统的核心部分。它面向远程用户的实验访问,提供实验构建与仿真、实验在线帮助、实验数据管理、用户管理、实验操作与在线实验评价等服务。整个实验平台部署在阿里云上,用户可选择用电脑或手机访问实验云平台,云端服务器可以与实验用户互动,并将仿真的实验数据呈现给用户。由于实验前端采用了浏览器这样的瘦客户,不需要在用户端电脑安装其他软件,因此,实验易于开展,具有用户友好特性。

Figure 1. Remote virtual experiment system structure based on cloud platform
图1. 基于云平台的远程虚拟实验系统结构图
为了满足实验系统无人值守要求,实验系统融入了一定的智能化功能,特别是在学生的实验考核环节上,根据学生的操作过程和结果两个方面进行动态评判。例如,对学生在实验组态过程中、参数设置、系统结构设计、实验过程参数调节、实验结果等环节进行自动评判等,即兼顾实验过程与实验结果两个方面对学生的实验技能进行考核,从而提高考核的科学性与准确性。
2.2. 远程虚拟实验系统开发工具选择
虽然目前远程实验依赖的远程实验网站搭建所使用后端编程语言以及网络框架类别有不同选择,但本实验系统选择了基于Python语言的Django网络框架以实现云平台的搭建,从而能更好地处理远程实验系统开发与应用的如下需求:
1) 适应不同操作流程与性质的各类虚拟实验。
2) 教师配置与实验管理功能需要一定灵活性。
3) 支持实验系统快速开发、调试、部署与跨平台移植,维护方便。
Python拥有规模庞大的支持库,可以实现丰富的功能开发,具有很高的扩展性与移植性,其编程语法简练,在维护更新上具有更高的效率,适宜于不同实验的定制与管理。Django作为Python语言常用网络框架之一,具有用户友好的后台管理体系,利于提高实验系统的管理功能。Django遵循MVC (Model-View-Controller)构造思想,具有易于模块化、独立化开发的特性 [12] [13] ,并在此基础上发展为MVT (Model-View-Template)设计模式,使得开发维护更为简洁高效。在本系统设计中,用户在页面上涉及的实验操作指令经由用户端将相应的实验操作指令参数提交给云服务器后端,后端的业务逻辑视图层(View层)根据模型层(Model层)的数据,进行数据正确性合法性的审核,并进行计算处理后转化为适用于通信的数据内容,经由通信操作模块进行远程实验环境的访问,并将访问与数据处理结果结合模板表现层(Template层)返回给用户浏览器侧,具体处理流程如图2所示。

Figure 2. The processing flow of the network architecture
图2. 云平台网络框架处理流程
3. 可组态的远程虚拟控制系统实验开发
3.1. 控制系统实验内容与原理介绍
本远程虚拟实验系统面向广大控制类学生,设计了多种控制与仿真的教学实验内容,以满足对该类课程的实验教学需求,提高对理论知识的理解。这些实验内容包括:
1) 过程控制类仿真实验,包括简单控制系统仿真、串级控制系统、比例控制系统等。
2) 运动控制类仿真实验,包括当闭环调速、双闭环调试等。
3) 控制原理类实验。
以双闭环调速实验 [14] 为例,为了开展这类实验,学生需要设置两个反馈,分别称为电流环与转速环。学生在开展实验时,需要给出相应的电机参数,如额定电流、额定转速、过载倍数等,实验前和实验中,学生需要用工程设计方法进行控制器参数的设计与验证,使被控制系统输出能够满足相应的性能指标要求,如超调量、调节时间、峰值时间等。
实验平台设计了各类开展这些实验的组件,学生可以自由选择这些组件,设置不同组件的参数,设置这些组件的组合方式,以构成期望的控制系统。这些操作类似于在Matlab的Simulink图形化编程环境进行仿真实验。例如,在双闭环调速实验中,学生可以改变各种参数,了解这些参数变化对控制系统性能的影响,从而加深对控制理论的认识。
3.2. 可组态实验平台功能需求
本实验系统的核心模块是各类传递函数构建及用户实验组态。在系统设计时,系统仅对最基本的功能单元进行封装,而将处理顺序逻辑的安排完全交给用户。用户通过选取需要的功能块并输入参数值,即可如操作Matlab中的Simulink模块一样实现仿真。这样的实验优势还在于不需要学校的硬件实验平和以及安装任何实验软件或插件,完全由云平台提供计算。
根据控制类实验的教学要求分析,可以知道这类可组态实验平台的基本功能需求:
1) 提供常用传递函数的计算功能块,如积分环节、比例环节、惯性环节等。
2) 可以自由添加与删除功能块。不同功能块可由规定方式进行关联,如并联、串联、反馈等,从而构成各类简单控制、复杂控制系统。
3) 教师可以指定实验内容,考察学生完成指定实验的能力。
4) 用户(学生)可以自主的控制整个实验流程,如实验组态、实验启动、实验停止、实验数据分析等。
5) 实验过程中,系统能自动根据实验进展进行必要的实验评核。
6) 与实验相关的所有数据在云端进行仿真后都能即时送到实验操作前端。学生在前端的操作也能即时送到云端仿真系统中。
3.3. 可组态实验模块的前后端交互及处理计算
为了提高用户操作的灵活性和实验过程的交互性,本实验系统精心设计了平台前端以及后端之间的任务分配和关联。主要分为三个部分,分别为前端的页面操作部分、交互处理部分以及后端的计算部分。其交互流程如图3所示。在该交互流程中,利用java script编写的交互处理部分实现了数据的传递以及页面效果的动态调度,用户的页面操作可以得到即时高效的反馈,同时系统对于实验结果数据则实现了动态可视化。

Figure 3. Self-built transfer function experiment interaction process
图3. 传递函数自搭建实验前后端交互流程
用户通过页面操作触发js相应函数实现html页面各标签元素的添加、删除、样式控制以及数据的提交与响应。用户完成系统搭建与参数输入并确认实验开始后,前端将所有数据整合为一个数据集,该数据集由后端计算逻辑根据特定方式进行分割与解析后分为三个部分的数据,包括了块类型数据、参数数据以及计算与处理辅助信息数据。
块类型数据在用户调用生成功能块时自动产生,参数数据、计算与处理辅助信息数据由用户输入产生并由js进行整合排列。参数数据用于为后端提供函数块模型中的参数信息,如时间常数、增益等,计算与处理辅助信息数据则用于确定系统结构与计算流程,主要包括了块的计算端口、计算循环次数等信息。
在计算过程中,除了前端提交的数据信息外,还包含了根据计算端口号而进行分配生成的计算层信息、计算过程中产生的历史输入输出信息、反馈信息等。计算过程中,数据根据计算端口确定流向,而计算层则根据计算端口的分配情况生成并用于实现串联、并联等计算结构,从而实现复杂系统的搭建。另外,由于积分、微分等环节的计算特性,计算过程中将对每一次循环产生的块输入输出进行暂存以满足之后的计算需要,每个计算循环完成后,相应计算环节暂存列则被新的数据所替换,同时由于反馈结构的特殊性,该结构的产生的数据则会额外被分配一个反馈暂存列。最后完成全部计算后,后端每一次计算结果输出值等数据组成的结果数据集进行返回,提供给前端用于产生图表的js函数进行解析。
4. 实验平台部署与验证
用户可登录实验平台首页http://47.101.194.89/,以授权账号登录并进入实验中心,选择进入需要的实验模块进行操作实验(图4)。以双闭环调速系统为例,系统提供了具有完整配置与评价机制的实验流程,同时学生可以利用传递函数自搭建部分实现组态搭建,自行进行系统设计与调试,二者结合从而帮助学生加深对控制运行流程的理解与掌握(图5)。

Figure 4. Self-built transfer function experiment interface
图4. 传递函数自搭建界面

Figure 5. Double closed-loop speed control system experiment interface
图5. 双闭环调速系统实验结果界面
5. 结束语
针对目前控制类远程实验存在的灵活性与可用性等方面的不足,以及结合以及云平台在存储、计算与服务上的优势,采用Python语言开发了用户可以自由组态的远程虚拟控制实验系统。现场测试表明,由于整个实验系统部署在云端,可以提供24*7*365全天候的跨时空实验服务,符合接受远程教育学生的学习特点,能更好满足远程控制类实验教学需求,有利于提高学生的实践能力,促进对理论知识的理解。同时,该解决方案还能有效提高实验资源的利用率,减少实验投入。
基金项目
华东理工大学网络教育教学项目,继续教育学院教学研究项目。