基于MATLAB和S函数的复杂系统设计
1引言
1.1课题研究背景
随着我国工业自动化水平的不断提高,在机械加工与制造领域,以及各种装配与包装自动化生产线上,机械手的应用已相当普遍。机械手通常担负着上料、下料,搬动或装卸零件的重复动作等,以实现生产自动化。
机械手在国内主要是逐步扩大应用范围,重点发展铸造、热处理方面的机械手,以减轻劳动强度,改善作业条件,在应用专用机械手的同时,相应的发展通用机械手,有条件的还要研制示教式机械手、计算机控制机械手和组合机械手等。同时要提高速度,减少冲击,正确定位,以便更好的发挥机械手的作用。国外机械手的发展趋势是大力研制具有某种智能的机械手。使它具有一定的传感能力,能反馈外界条件的变化,作相应的变更。如位置发生稍许偏差时,即能更正并自行检测,重点是研究视觉功能和触觉功能。目前已经取得一定成绩。
随着机械手的小型化和微型化,其应用领域将会突破传统的机械领域,而向着电子信息、生物技术、生命科学及航空航天等高端行业发展。
1.2 机械手的发展概况和趋势
1.2.1机械手的研究现状概述
机械手是一种模拟人手操作的自动机械[6]。它可按固定程序抓取、搬运物件或操持工具完成某些特定操作。应用机械手可以代替人从事单调、重复或繁重的体力劳动,实现生产的机械化和自动化,代替人在有害环境下的手工操作,改善劳动条件,保证人身安全,因而广泛应用于机械制造、冶金、电子、轻工和原子能等部门。
20世纪40年代后期,美国在原子能实验中,首先采用机械手搬运放射性材料,人在安全间操纵机械手进行各种操作和实验。50年代以后,机械手逐步推广到工业生产部门,用于在高温、污染严重的地方取放工件和装卸材料,也作为机床的辅助装置在自动机床、自动生产线和加工中心中应用,完成上下料或从刀库中取放刀具并按固定程序更换刀具等操作。
机械手主要由手部和运动机构组成。手部是用来抓持工件(或工具)的部件,根据被抓持物件的形状、尺寸、重量、材料和作业要求而有多种结构形式,如夹持型、托持型和吸附型等。运动机构,使手部完成各种转动(摆动)、移动或复合运动来实现规定的动作,改变被抓持物件的位置和姿势。运动机构的升降、伸缩、旋转等独立运动方式,称为机械手的自由度。自由度是机械手设计的关键参数。自由度越多,机械手的灵活性
1
基于MATLAB和S函数的复杂系统设计
越大,通用性越广,其结构也越复杂。一般专用机械手有2~3个自由度。
机械手的种类,按驱动方式可分为液压式、气动式、电动式、机械式机械手;按适用范围可分为专用机械手和通用机械手两种;按运动轨迹控制方式可分为点位控制和连续轨迹控制机械手等。
机械手通常用作机床或其他机器的附加装置,如在自动机床或自动生产线上装卸和传递工件,在加工中心中更换刀具等,一般没有独立的控制装置。有些操作装置需要由人直接操纵,如用于原子能部门操持危险物品的主从式操作手也常称为机械手。 1.2.2发展趋势
随着科学与技术的发展,机械手的应用领域也不断扩大。目前,机械手不仅应用于传统制造业如采矿,冶金,石油,化学,船舶等领域,同时也已开始扩大到核能,航空,航天,医药,生化等高科技领域以及家庭清洁,医疗康复等服务业领域中。在技术发展上也有了很大提高。
(1)重复高精度
重复精度是指如果动作重复多次,机械手到达同样位置的精确程度。重复精度比精度更重要,如果一个机器人定位不够精确,通常会显示一个固定的误差,这个误差是可以预测的,因此可以通过编程予以校正。重复精度限定的是一个随机误差的范围, 它通过一定次数地重复运行机器人来测定。随着微电子技术和现代控制技术的发展,机械手的重复精度将越来越高,它的应用领域也将更广阔, 如核工业和军事工业等。
(2)模块化
有的公司把带有系列导向驱动装置的机械手称为简单的传输技术,而把模块化拼装的机械手称为现代传输技术。模块化拼装的机械手比组合导向驱动装置更具灵活的安装体系。它集成电接口和带电缆及油管的导向系统装置,使机械手运动自如。模块化机械手使同一机械手可能由于应用不同的模块而具有不同的功能,扩大了机械手的应用范围, 是机械手的一个重要的发展方向。
(3)无给油化
为了适应食品、医药、生物工程、电子、纺织、精密仪器等行业的无污染要求,不加润滑脂的不供油润滑元件已经问世。随着材料技术的进步,新型材料(如烧结金属石墨材料)的出现,构造特殊、用自润滑材料制造的无润滑元件,不仅节省润滑油、不污染环境,而且系统简单、摩擦性能稳定、成本低、寿命长。
(4)机电一体化
由“可编程序控制器- 传感器- 液压元件”组成的典型的控制系统仍然是自动化技术的重要方面;发展与电子技术相结合的自适应控制液压元件,使液压技术从“开关控制”进入到高精度的“反馈控制”;省配线的复合集成系统,不仅减少配线、配管和元件,
2
基于MATLAB和S函数的复杂系统设计
而且拆装简单,大大提高了系统的可靠性。而今,电磁阀的线圈功率越来越小,而PLC的输出功率在增大,由PLC直接控制线圈变得越来越可能。
1.3课题研究的内容
主要用S函数编写程序来实现一个非线性系统的控制仿真,本文选择两关节机械手模型进行试验,两关节机械手是简单的一类关节型机器人,通过对两关节机械手[12]的控制,了解关节的输出位置,估计通常难于准确测量的不确定摩擦力和外部扰动的影响,这样才能保证全局的渐进稳定。因此本文针对两关节机械手的轨迹跟踪问题,通过已建立的数学仿真模型,用MATLAB语言中的S函数编制仿真程序进行位置和速度跟踪来验证该模型是否稳定。
2 S函数在系统仿真中的应用
MATLAB下提供的Simulink环境是解决非线性系统建模、分析与仿真的理想工具,本章将介绍Simulink建模与仿真方法及在控制系统中的应用。首先简要介绍Simulink的概况,并介绍了Simulink提供的S-function模块和常用模块的应用,以及S函数的编写格式与方法,为后面搭建系统仿真模型打下基础。
2.1仿真基础知识
2.1.1 MATLAB及Simulink简介
本文的仿真实验是在MATLAB软件[7]环境下进行的。MATLAB是MathWorks公司于1984年推出的一套数值计算软件,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图像处理等若干个领域的计算和图形显示功能。它提供了神经网络工具箱,其中包含了大多数常见神经网络类型,可以方便地以图形界面或函数调用的形式进行仿真。由于本文的研究方法无法直接利用工具箱实现,所以相关的程序都是参考工具箱中的程序自行编制的。
仿真就是用物理模型或数学模型代替实际系统进行实验和研究。仿真所遵循的基本原理是相似原理,即几何相似和数学相似。依据这个原理,仿真可分为物理仿真和数学仿真。所谓物理仿真,就是应用几何相似原理,制作一个与实际系统相似但几何尺寸较小的物理模型进行实验研究;所谓数学仿真,就是应用数学相似原理,构成数学模型在计算机上进行实验研究。
根据仿真使用的计算机分类,又可把仿真分为模拟计算机仿真、数字计算机仿真和模拟-数字计算机仿真。有时必须有部分实物介入,则称为半物理仿真。
3
基于MATLAB和S函数的复杂系统设计
本论文采用的是计算机仿真,它的优点是:用一套设备可以对物理性质截然不同的许多控制系统进行仿真研究,而且进行一次仿真的主要准备工作是数字计算机的程序。这比在实际物理模型上安装、接线、调整等准备工作的工作量要小得多,周期短,耗资少。
仿真要求抓住事物的本质,在计算机上再现事物的基本特征。仿真过程可以简单分为四步:
(1)建立系统的数学模型; (2)建立仿真模型; (3)编制仿真程序;
(4)进行仿真实验并输出仿真结果。
具体的讲就是,将一个能近似描述实际系统的数学模型进行二次模型化,变成一个仿真模型,然后将他们放到计算机上进行运算的过程就称为仿真。本文用的仿真语言是MATLAB语言。所用的软件版本为MATLAB(R2007a)。 2.1.2 MATLAB主要功能简介
MATLAB发展至今,已不仅仅是单纯矩阵运算的数学处理软件,其开放式结构吸引了许多优秀人才编写M函数和工具箱,目前已经渗透到了工程计算和设计的各个领域。其中在本文中用到的且与控制系统设计与仿真相关的功能大致有以下各项:
(1)数值计算及分析 ? 向量,矩阵饿运算分析; ? 微分方程的求解; ? 特殊函数的计算机分析;
? 快速傅里叶变换及信号处理矩阵计算; ? 数据分析及统计计算。 (2)MATLAB的绘图功能 ? 二维图的绘制;
? 特殊坐标图形的绘制与修改。 (3)Simulink建模与仿真 ? Simulink加速器; ? 实时工作空间; ? 非线性控制系统设计。 (4)M文件及M函数的编写与运行 2.1.3 Simulink的功能及部分模块介绍
Simulink是MATLAB为模块动态系统而提供的一个交互式程序。它允许用户在屏幕
4
基于MATLAB和S函数的复杂系统设计
上绘制框图来模拟一个系统,并能动态地控制该系统。它采用鼠标驱动方式,能够处理线性、非线性、连续、离散等多种系统。Simulink的存在使MATLAB得功能得到进一步扩展。这种扩展的意义表现在:一是实现了可视化建模,用户通过简单的鼠标操作就可以建立起直观的系统模型,并进行仿真;二是实现了多工作环境间文件互用和数据交换,如Simulink与MATLAB、Simulink与C和Fortran、Simulink与DSP、Simulink与实时硬件工作环境等的信息交换都可以方便地实现;三是把理论研究和工程实际有机地结合在一起。近几年来,在学术界和工作领域,由于Simulink的强大功能和简便的操作,他已经成为在动态系统建模和仿真方面应用最广的软件包之一。
概括的说,Simulink是一种可视化动态系统仿真环境。一方面,它使MATLAB得扩展,保留的所有MATLAB的函数的特性:另一方面,它有可视化仿真和编程的特点。借助可视化的特点,使用Simulink可分析非常复杂的控制系统。一般来说,Simulink的功能有两部分,其一是系统建模,其二是系统分析。当然,对于控制系统的设计者来说,这两部分是一个连贯的整体。但是从解决问题的方法上来讲,还是有区别的。因为建立好模型之后,可以在Simulink环境下直接分析,也可以在MATLAB命令窗口下使用MATLAB函数进行分析。
在Simulink环境下特别适应于相同的方框图模型,可以直接建立相同的方框图进行仿真。并且,Simulink的命令基本上都由鼠标驱动的。仿真结果可以在Simulink下观察,也可以在MATLAB Workspace中观看。
在仿真建立仿真设计图时用到了Simulink元件库,无论是线性系统还是非线性系统,无论是系统建模还是系统仿真,主要都是使用该元件库提供的各种元件模块。因此,在这里就有关的元件作简单地说明。
标有“To Workspace”的模块,是输出到工作空间去。
标有“Mux”的模块,是多路开关模块。该元件可以将多路的输入向量以某种方式合并后从一路输出,具体得到合并方式可由双击该元件来设置。
标有“Demux”的模块,是多路解耦模块。该元件可以将单路的输入向量以某种方式解耦后多路输出,具体的解耦方式可由双击元件来设置。
S-function最广泛的用途是定制用户自己的Simulink模块,更具体的讲,它的作用体现在以下几点:
(1)用户可以用它来创建新的通用性的Simulink模块; (2)将已存在的C代码合并到仿真中; (3)将一个系统描述成一个数学方程; (4)便于使用图形仿真。
在调用模型中的S函数时,Simulink会调用用户定义的S函数方法来实现每一个仿真阶段要完成的任务。这些任务包括:
5