TCP/IP通讯_MATLAB与CCU之间的TCP/IP通讯技术开发与应用

  文章编号:1003-6199(2011)04-0126-04�       摘 要:介绍MATLAB/Simulink与CCU(中央控制单元)之间通过TCP/IP协议进行通信的程序开发及此通讯技术在电动机转速控制系统仿真中的应用。当TCP/IP通信时,采用MATLAB作为服务器及CCU作为客户端的serve/client模式。在MATLAB中,用M语言开发服务器程序,并将其封装到Simulink中的MATLAB Fcn模块中,在CCU编程软件multiprog上开发客户端程序,然后实现硬件在环的半实物控制系统仿真。
  �
  关键词:MATLAB;Simulink;CCU;TCP/IP通信;系统仿真�
  中图分类号: TN919.3 文献标识码:A
  ��
  The Development and Application of TCP/IP �Communication Technology Between Simulink and CCU
  
  ��
  LI Ying�jie�
  (School of Electronics and Information Engineering, Dalian Jiaotong University, Dalian 116028,China)
  
  Abstract:This paper describes a program development of theTCP / IP communication between MATLAB / Simulinkand CCU. The application of this communication technology inthemotor�speed controlsystem simulation is also described here. It uses serve/client mode when carrying out TCP / IP communication, MATLAB as a server and CCU as a client. In MATLAB environme�nt, it develops server program in M language and package the program into the MATLAB Fcn block of Simulink, and develops client program on multiprog software platform of CCU, then achieves hardwarein the loop’s semi-physical control system simulation.
  �
  Key words:MATLAB; Simulink; CCU; TCP/IP communication; system simulation
  �
  1 引 言�
  
   在工业控制领域,如何有效的实现控制算法一直是人们普遍关心的问题[1]。MATLAB/Simulink软件是由美国mathworks公司开发的,主要完成数值分析、矩阵运算及非线性动态系统建模和仿真等功能强大的软件,同时它还提供了一系列工具箱用于解决许多特定的系统仿真问题。CCU具有用户使用方便、可靠性高、逻辑运算能力强、抗干扰性强等优点广泛应用于网络控制领域,但其实现复杂的算法比较困难,因此,通过开发两者的通信接口软件的方法,将MATLAB/Simulink进行复杂控制算法运算与CCU进行实时数据采样、逻辑分析和输出控制结合起来,发挥各自的优点,用以实现高效的硬件在环控制系统仿真。虽然MATLAB/Simulink提供了仪器控制工具箱,可以实现TCP/IP的通信,但它只支持MATLAB/Simulink作为客户端的模式进行通信。鉴于模块配置的局限性,因此开发一个以MATLAB/Simulink作为服务器的通讯程序是必要的,最后将此程序应用于电动机转速控制系统仿真实验中。
  2 MATLAB/Simulink简介及服务端通讯�
  程序的开发
  2.1 MATLAB/Simulink简介�
  
   Simulink是一种针对动态系统进行建模、仿真和分析的工具,它被广泛应用于线性系统、非线性系统的建模和仿真,支持连续系统、离散系统或者两者混合的系统和多速率系统。�� [2]它也是MATLAB最重要的组件之一,是一种基于MATLAB的框图设计环境,为用户提供了友好的界面环境。Simulink为用户提供了一些基本模块,用户只需从库浏览器中选择所需要的功能模块,并对模块参数进行配置后将其各模块连接起来,就可得到用户所需要的动态系统的模型。另外,对于一些基本模块很难实现或不能实现的功能时,它还提供了用户自定义模块,如MATLAB Fcn模块、S�Function模块等,用户可以借助这些自定义模块,根据自己的功能需求,利用MATLAB语言、C、C++、FORTRAN、Ada等语言进行程序编写,然后将程序封装入这些自定义模块中,就能得到用户所需的新功能模块。�
  
  2.2 MATLAB上TCP/IP通信程序的开发流程及部分程序�
  
   MATLAB中TCP/IP通信程序主要完成Simulink中动态系统模型数据收发与CCU中逻辑控制输入输出操作。其开发流程图如图1所示:�
  
  根据上述流程图,编写的主体通讯程序如下,注:message是MATLAB发给CCU的数据,msg是CCU返回给MATLAB的数据。�
  while true�
  
   server_socket = ServerSocket(output_port);�
  
   server_socket.setSoTimeout(100);�
  
   output_socket = server_socket.accept();�
  
   output_stream = output_socket.getOutputStream;�
  
   d_output_stream = DataOutputStream(output_stream);�
  
   d_output_stream.writeBytes(char(message));�
  
   d_output_stream.flush;�
  
   input_stream = output_socket.getInputStream;�
  
   d_input_stream = DataInputStream(input_stream);�
  
   end
  
  3 CCU逻辑控制系统上TCP/IP客户端�
  通信模块配置
   CCU[3]是中央控制单元的缩写,是软逻辑控制系统的核心。CCU逻辑控制系统是基于嵌入式计算机的硬件和软件资源,利用软件技术来实现传统PLC功能的控制系统。其系统综合了数值运算及处理、逻辑运算、模拟量及开关量控制、网络通信和PID调节等功能,具有强大的逻辑分析、数据处理和网络通信的功能。CCU逻辑控制系统平台的软件结构由编程系统和目标运行系统组成:编程系统的主要任务是应用编程语言进行应用编程,程序编译与调试,资源配置和与目标系统联机通信等,这部分由开发软件multiprog完成;目标运行系统的主要任务是完成系统配置,输入信号处理,程序执行和控制信号输出等功能。�
  
   CCU系统有TCP/IP服务端程序和客户端程序。当CCU作为客户端时,TCP/IP客户端程序发送数据到PC机的以太网指定的端口,其访问的PC机的IP地址来自系统启动参数的主机IP地址。Multiprog开发环境中提供的固件库中有TCP/IP/通信功能块,设置TCP/IP通信程序步骤如下:�
  
   1)定义TCP/IP通信程序的数组为:�
  
  1 TYPE�
  
  2 TCPIP_DATA : ARRAY [0..99] OF BYTE;�
  
  3 END_TYPE�
  
   2)定义TCP/IP发送变量TCPIP_SendData和接收变量TCPIP_ReceiveData,选择数据类型为“TCPIP_DATA”。 �
  
   3)从编辑向导的固件库中,选择发送和接收TCP/IP数据的功能块“TCP_Receive_1”和“TCP_Send_1”,将步骤2)定义的变量与这两个功能块连接,如图2所示:
  
  4 利用通讯程序实现MATLAB/Simulink�
  与CCU的TCP/IP通信
   根据以上开发的通信程序,完成MATLAB Fcn模块的封装后,和CCU就可以进行TCP/IP通信了。MATLAB/Simulink动态模型系统中包含有Sine Wave模块、MATLAB Fcn模块和Scope模块,CCU系统中使用了TCP_Receive模块和TCP_Send模块等,通信过程如图3所示:��
  
   在上图所示的通信过程中,Sine Wave作为MATLAB/Simulink系统的输入向MATLAB Fcn模块中的发送数组发送数据,然后通过以太网传送给CCU,CCU再将数据通过以太网原样返回到MATLAB Fcn模块中的接收数组中,最后再通过显示器模块显示出输出波形,波形如图4所示,从显示器输出的波形可直观的看出其波形与输入端的波形基本一致,进而验证了通讯程序的正确性。
  
  5 TCP/IP通讯技术在硬件在环半实物仿真中的应用
  
   硬件在环仿真(Hardware�in�the�loop Simulation,HILS)是指将部分实际被控对象或系统部件用高速运行的实时仿真模型来代替,而控制系统则用实物(即硬件)与系统实时仿真模型连接成为一个硬件在环仿真系统(HILSS),通过仿真试验对控制系统的控制策略、控制功能及系统可靠性等进行测试和评估。[4]下面构造一个电动机转速控制硬件在环仿真系统,系统如图5所示,阶跃信号为转速给定值,该值与电动机的实际转速反馈值作差,得到速度偏差,然后通过MATLAB自定义模块传送到CCU中进行PI调节运算,得出控制量,再经过MATLAB自定义模块将控制量传送给电动机,控制电动机转速向着给定值靠近。其中电动机模型可以看成是典型的一阶系统,传递函数为典型的惯性环节,PI调节器的调节参数�K�p = 0.6,K�i = 0.2。 ����
  �
  通过动态系统的运行,显示器中输出的电动机转速调节仿真波形如图6所示,系统在3s内进入稳态,此输出结果基本达到了预期的效果。�
  �
  6 结束语�
  
   本文主要完成了MATLAB/Simulink与CCU之间通过TCP/IP协议进行通信的程序开发及此通讯技术在电动机转速控制系统仿真中的应用。其中通过正弦波的例子验证了通讯程序的正确性,并在电动机转速控制系统仿真中得到了预期的转速调节效果。该通讯程序具有通用性,只要将此程序封装到其它系统的自定义模块中,也可以完成其它系统的仿真实验。另外,该仿真系统中CCU的控制算法可以灵活编程,对硬件在环仿真实验具有广泛的意义。
  
  参考文献�
  [1] 张昆,段其昌,张从力. MATLAB与PLC之间的通讯技术[J]. 自动化技术与应用,2005,24(12):54-58.�
  
  [2] 赵晶,张伟. 基于MATLAB/Simulink的GPS卫星导航仿真设计[J]. 科技资讯,2011,20:11-12.�
  
  [3] 李常贤,邹积岩,赵明花,等. 一种基于MVB网络通信的中央控制设备设计方案及其实现[J]. 铁道学报,2010,32(2):125-130.�
  
  [4] 齐鲲鹏,隆武强,陈雷. 硬件在环仿真在汽车控制系统开发中的应用及关键技术[J]. 内燃机,2006,10:7-9.
  
  收稿日期:2011-10-10�
  
  作者简介:李英杰(1985―),男,河北唐山人,硕士研究生,研究方向:网络控制设计(E-mail:Andre.省略)。

推荐访问:技术开发 通讯 CCU 通信技术开发及应用信息网