Simulink应用于PLC运动控制系统初探

来源:万方数据 作者:张国亮 陈健 徐威挺 何衎

点击:2212

A+ A-

所属频道:新闻中心

关键词:Simulink PLC 运动控制

    引言

      PLC控制系统以其可靠稳定、通用性强、操作简便的优势,成为在工业控制领域使用最广泛的控制系统之一。PLC产品均支持符合IEC 61131-3标准的编程语言,包括梯形图(LD)、功能块图(FBD)、顺序功能图(SFC)、指令表(IL)、结构化文本语言(ST)等。IEC61131-3标准极大地改进了PLC的编程软件质量及提高了软件开发效率,但在实际使用中仍存在一些问题。

      1)编程环境的功能弱:PLC用户程序的编程环境大都集成在配套组态软件中,与专业编程软件相比,编写、调试、验证各环节在易用性、功能丰富程度等方面均有明显差距。

      2)复杂系统的程序实现困难:上述编程语言仍采用结构化的编程方式,编写时需要由设计人员将控制过程抽象为具体的执行步骤。在实现复杂的程序时,还需要将其分解为不同的子程序,并清晰地定义各子程序的接口。这对设计人员提出了很高的要求。另一方面,随着计算机仿真技术的飞速发展,

      出现了以Simulink为代表的交互式仿真平台,拥有可视化的建模仿真环境和各种功能的专业工具包,在系统建模的过程就可以完成程序编程、调试、验证等工作。如果能够将通过Simulink仿真的算法直接应用于PLC系统,那么工程人员就能摆脱繁琐的控制逻辑调试和验证工作,从而大幅度提高工作效率。

      本文以一个三环控制的交流伺服系统作为实例,研究使用Simulink平台进行仿真并完成PID参数整定,通过Simulink PLC Coder生成符合IEC 61131-3标准的结构化文本,最终应用于PLC系统的实现方法。本文涉及到的开发环境如下:

      · Matlab R2011b
      · 中控G5控制系统
      · 中控GCSContrix组态软件

    1 交流伺服系统

      伺服来自英文单词Servo,指系统跟随外部指令进行人们所期望的运动,运动要素包括位置、速度和力矩。三环控制的交流伺服系统,是在转速、电流双闭环调速系统的基础上,再增加一个位置环,具有跟随性好、响应快速、抗扰性强的优点,广泛地应用于数控机床、食品包装、纺织、电子半导体、机械人等制造业。其结构框图如图1所示,包括伺服电机、反馈装置和控制器等,从内到外分别组成电流环、速度环、位置环,这样就形成了三环控制的交流伺服系统。

    图 1 交流伺服系统结构框图

    2 模型建立和参数计算

      交流伺服系统的控制原理图如图2所示,其中ACR、ASR和APR分别为电流调试器、速度调节器和位置调节器。在工程实践中,一般电流环和速度环采用PI调节器,位置环采用P调节器,这样可以使系统取得较好的动态跟随性和抗干扰性。

    图 2 交流伺服系统控制原理图

    3 Simulink仿真并生成PLC代码

      根据上面对交流伺服系统的建模和参数计算结果,在Simulink中构建系统原理图如图3所示。首先通过Simulink仿真来确定位置环比例调节器系数Kp,即把Kp由小到大逐步仿真,直至系统发散,然后把Kp减小至系统无超调,最后得到整定值0.49。之后按下述步骤即可生成PLC代码。

    图 3 仿真模型

      (1)仿真模型离散化

      由于Simulink PLC Coder只能转换离散模型,而上述模型为连续模型,因此在生成PLC代码还需进行离散化。在菜单栏选择Tools→Control Design→ModelDiscretizer,调出Simulink Model Discretizer工具将所有环节离散化,转换方式为Tustin,采样时间选为0.1s。

      (2)创建子模块

      之后将模型中除Step和Scope外的部分全部框选,创建为1个子模块,并在其参数选项中选中“Treat as atomic unit”。为将子模块的输入输出参数更清楚直观,在子模块内将输入参数名In1、In2改为Order、Load,Out1、Out2、Out3改为Current、Speed、Position,把子模块名改为Servo。

      (3)生成PLC代码

      右键点击创建的子模块,在右键菜单中选择PLCCode Generation→Generate Code for Subsystem,生成PLC代码并保存为独立的文件。

    4 PLC系统的应用及效果

      在完成上述步骤后,就可以将Simulink生成的PLC代码载入到PLC控制器中运行,这里以浙江中控的G5系列PLC系统为例进行说明。打开配套的组态软件GCSContrix,创建新工程,之后在主菜单栏上选择“导入ST文件”,将Simulink生成的PLC代码文件载入,这样就在工程内自动生成了一个名为“Servo”的自定义功能块。该自定义功能块有3个输入引脚、3个输出引脚,其中5个引脚分别名为Order、Load、Current、Speed、Position与之前Simulink中子模块的输入输出参数对应,均为LREAL型变量(双精度浮点型变量);另一个输入引脚名为“ssMethodType”,为SINT型变量(短整型变量),该引脚输入0时,该功能块的内部变量全部初始化为0,输入1时该功能块运行。

      为验证该功能块的运行效果,可以在上述工程中新建一个周期为100ms的周期性任务,之后在这个任务下新建一幅功能块图程序;添加自定义变量并连接到功能块的引脚,自定义变量的默认值设为0,如图4所示。

    图 4 功能块程序示意图

      将工程编译并下载到GCS控制器后,进入控制器调试模式,依次将TAG_Order和TAG_Type的值改为1,获得3个输出变量的阶跃响应曲线,如图5右侧所示。并与在Simulink仿真获得的阶跃响应曲线进行对比,如图5左侧所示,可以发现PLC实际控制效果符合Simulink仿真的预期结果。

    图 5 Simulink和PLC运行单位阶跃响应曲线对比

    5 结束语

      本文介绍了三环控制的交流伺服系统在Simulink平台下进行建模仿真,将控制算法通过Simulink PLCCoder自动生成了符合IEC61131-3标准的结构化文本,继而导入PLC系统编译为控制程序。这种基于建模仿真的PLC控制程序设计方法,通过自动化生成PLC代码的方式,使工程人员能够通过仿真环节检验控制算法的正确性,可以大幅调减少系统调试时间和工程实施周期,是一种高效的PLC复杂控制算法实现方法。

    (审核编辑: 沧海一土)