UM软件入门系列教程03:自动控制系统仿真-pub
- 格式:pdf
- 大小:1.87 MB
- 文档页数:44
第六章控制系统仿真控制系统仿真一般采用如下两种形式进行仿真分析:针对单输入—单输出系统的信号流图形式面向多输入—多输出系统的状态空间形式控制系统仿真的主要研究内容是通过系统的数学模型和计算方法,编写程序运算语句,使之能自动求解各环节变量的动态变化情况,从而得到关于系统输出和所需要的中间各变量的有关数据、曲线等,以实现对控制系统性能指标的分析与设计。
一般地来说,实现控制系统的仿真有以下几个步骤:1、根据建立的数字模型以及计算机精度和时间等要求,确定采用的数值计算方法;2、将数学模型按算法要求通过分解、综合、等效变换等方法转换成适于在计算机上运行的公式、方程等;3、用合适的开发语言进行算法编程和实现;4、通过上机运行调试,不断加以改进,使之正确反映系统各项动态性能指标,并得到理想的仿真结果。
围绕以上步骤,控制系统仿真近年来不断发展,不断更新,基于MATLAB语言开发的专门应用于控制系统分析与设计的工具箱,对控制系统仿真技术的发展及应用起到巨大的推动作用。
本章主要是围绕着控制系统仿真实现的问题,研究仿真的几种常用方法,主要包括:基于状态空间法的系统仿真、非线性系统的仿真以及离散系统的仿真,并重点阐述了Simulink动态仿真软件的操作与应用。
希望通过本章的学习使大家能够较系统地了解目前控制系统仿真领域的研究方法和实现手段,并从中掌握基本的系统仿真实现的技巧和能力。
6.1 状态空间法系统仿真控制系统的动态模型经常是转化成以状态方程的形式给出的,一般采用四阶龙格-库塔数值积分方程算法进行求解与分析仿真,这就是状态空间法仿真的基本方法。
一、四阶龙格-库塔(Runge-Kutta)法闭环控制系统最常见的两种描述方式为:传递函数法和状态空间法,而且这128两种方法之间可以相互转换。
如果系统是由传递函数来描述的,则应用??的转换方法,可以方便地将传递函数表达式转换成状态空间表达式。
已知系统的状态方程为:=+=Cxy Bu Ax x(6-1)其中A 、B 、C 为系统的系数矩阵,由式(6-1)可知系统为一阶微分方程组的矩阵表达式,因此采用四阶龙格-库塔法进行求解和仿真,其求解步骤和方法如下:1、由Bu Ax x+= ,可知Bu Ax x t f +=),(; 2、根据四阶龙格-库塔法的递推公式:++++=++=++=++==+)22(6),()2,2()2,2(),(43211n 3423121k k k k h x x hk x h t f k k h x h t f k k h x h t f k x t f k n n n n n n k n n (6-2)其中,k ,k ,k 为对应n 维状态空间变量的四组导数,每组为n 维列向量。
第13章Multisim模拟电路仿真本章Multisim10电路仿真软件,讲解使用Multisim进行模拟电路仿真的基本方法。
目录1。
Multisim软件入门2。
二极管电路3. 基本放大电路4. 差分放大电路5. 负反馈放大电路6. 集成运放信号运算和处理电路7。
互补对称(OCL)功率放大电路8. 信号产生和转换电路9. 可调式三端集成直流稳压电源电路13.1 Multisim用户界面及基本操作13.1.1 Multisim用户界面在众多的EDA仿真软件中,Multisim软件界面友好、功能强大、易学易用,受到电类设计开发人员的青睐。
Multisim用软件方法虚拟电子元器件及仪器仪表,将元器件和仪器集合为一体,是原理图设计、电路测试的虚拟仿真软件。
Multisim来源于加拿大图像交互技术公司(Interactive Image Technologies,简称IIT公司)推出的以Windows为基础的仿真工具,原名EWB。
IIT公司于1988年推出一个用于电子电路仿真和设计的EDA工具软件Electronics Work Bench(电子工作台,简称EWB),以界面形象直观、操作方便、分析功能强大、易学易用而得到迅速推广使用。
1996年IIT推出了EWB5。
0版本,在EWB5.x版本之后,从EWB6.0版本开始,IIT对EWB进行了较大变动,名称改为Multisim(多功能仿真软件)。
IIT后被美国国家仪器(NI,National Instruments)公司收购,软件更名为NI Multisim,Multisim 经历了多个版本的升级,已经有Multisim2001、 Multisim7、 Multisim8、Multisim9 、Multisim10等版本,9版本之后增加了单片机和LabVIEW虚拟仪器的仿真和应用。
下面以Multisim10为例介绍其基本操作.图13。
1-1是Multisim10的用户界面,包括菜单栏、标准工具栏、主工具栏、虚拟仪器工具栏、元器件工具栏、仿真按钮、状态栏、电路图编辑区等组成部分。
目录1.模块功能简介 (1)2.柔性平台模型 (3)2.1模型简介 (3)2.2工作流程 (3)2.3动力学计算 (4)2.4应力载荷谱分析 (8)2.4.1载荷工况描述 (9)2.4.2初始化Sensor节点组 (15)2.4.3设置应力载荷谱评估参数 (17)2.4.4保存项目 (18)2.4.5计算应力载荷时程 (19)2.4.6应力载荷时程分析结果 (20)2.5疲劳耐久性分析 (25)2.5.1设置疲劳耐久性分析方法 (25)2.5.2选择控制区域 (27)2.5.3疲劳耐久性分析 (35)2.5.4结果分析 (35)1.模块功能简介UM Durability模块是专业的疲劳耐久性CAE分析工具,它基于UM FEM 刚柔耦合动力学计算的结果进行应力载荷谱分析和疲劳寿命预测。
其中,柔性体通过外部有限元软件导入(目前支持ANSYS和MSC.NASTRAN),刚柔耦合系统的动力学计算和疲劳后处理都在UM软件里完成。
首先,采用模态综合法将构件的柔性特性(包括模态振型和应力张量)从有限元软件导入UM,构成所需的刚柔耦合动力系统。
其次,在UM里设置好一个或多个仿真工况,计算得到一系列有限元节点的应力时程数据。
最后,根据材料的疲劳强度特性进行疲劳寿命预测。
疲劳耐久性分析有如下三个关键输入:⚫应力载荷数据:节点应力时程;⚫材料数据:材料在不同应力水平的循环载荷作用下的反应;⚫疲劳耐久性分析方法。
由于从有限元软件导入UM的柔性体模型包含完整的单元和节点信息,根据模态综合法理论可以直接求得节点在任意时刻的位移和应力。
只要选取足够的、合理的有限阶模态,就能快速地获得比较精确的响应。
在计算柔性体的弹性变形时采用模态叠加的方法,即可以通过一组模态振型的线性组合得到最终结果。
显然,只需要乘以适当的系数,就能将这种方法拓展到应力的计算。
这种系数,又称模态坐标,可以用来表征柔性体的瞬时应力状态。
试想,在动力学计算的每一步,对每一个有限元节点都执行模态叠加计算,那么就可以获得整个时间历程上的节点位移和应力曲线。
3、模型连接反馈连接 G s G1 s 1 G1 s G2 s Matlab 函数格式: [A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2 %将两个系统按反馈方式连接,系统1为被控对象,系统2为反馈控制器。
[num,den]=feedback(num1,den1,num2,den2,sign %sign用于指示是正反馈还是负反馈,默认为负,即sign= -1。
模型连接的验证程序见Exercise2 中国矿业大学信息与电气工程学院李会军 26
4、本章小结小结主要介绍控制系统的几种数学模型,如何使用Matlab描述控制系统,以及不同模型之间的相互转换。
需要重点掌握以下内容:①控制系统中常见的几种数学模型②使用Matlab实现数学模型之间的相互转化③使用Matlab求解系统串联、并联和反馈后的系统模型中国矿业大学信息与电气工程学院李会军 27。
控制系统的模拟试验和MATLAB 仿真1 MATLAB 简介MATLAB 是Mathworks 公司开发的一种集数值计算、符号计算和图形可视化三大基本功能于一体的功能强大、操作简单的优秀工程计算使用软件。
MATLAB 不仅可以处理代数问题和数值分析问题,而且还具有强大的图形处理及仿真模拟等功能。
从而能够很好的帮助工程师及科学家解决实际的技术问题。
MATLAB 的含义是矩阵实验室(Matrix Laboratory ),最初主要用于方便矩阵的存取,其基本元素是无需定义维数的矩阵。
经过十几年的扩充和完善,现已发展成为包含大量实用工具箱(Toolbox )的综合使用软件,不仅成为线性代数课程的标准工具,而且适合具有不同专业研究方向及工程使用需求的用户使用。
MATLAB 最重要的特点是易于扩展。
它允许用户自行建立完成指定功能的扩展MATLAB 函数(称为M 文件),从而构成适合于其它领域的工具箱,大大扩展了MATLAB 的使用范围。
目前,MATLAB 已成为国际控制界最流行的软件,控制界很多学者将自己擅长的CAD 方法用MATLAB 加以实现,出现了大量的MATLAB 配套工具箱,如控制系统工具箱(control systems toolbox ),系统识别工具箱(system identification toolbox ),鲁棒控制工具箱(robust control toolbox ),信号处理工具箱(signal processing toolbox )以及仿真环境SIMULINK 等。
(1) MATLAB 的安装本节将讨论操作系统为Microsoft Windows 环境下安装MATLAB7的过程。
将MATLAB7的安装盘放入光驱,系统将自动运行auto-run.bat 文件,进行安装;也可以执行安装盘内的setup.exe 文件启动MATLAB 的安装程序。
启动安装程序后,屏幕将显示安装MATLAB 的初始界面,根据Windows 安装程序的常识,不断单击[Next],输入正确的安装信息,具体操作过程如下:输入正确的用户注册信息码;选择接收软件公司的协议;输入用户名和公司名;选择MATLAB 组件(Toolbox );选择软件安装路径和目录;单击[Next]按钮进入正式的安装界面。
软件使用指南Multisim是一种适用于板级电子电路仿真和设计的EDA工具软件,是加拿大Interactive Image Technologies公司(简称IIT公司)电子线路仿真软件EWB(Electronics workbench)的升级版。
Multisim 7是IIT公司2003年推出的最新版本。
1.Multisim 7 操作界面1.1主窗口启动Multisim 7,就可以进入Multisim 7的用户界面,如图示。
Multisim的用户界面包括下列基本元素:1)菜单栏菜单栏中可以找到所有功能的命令。
2)工具栏包括常用的操作命令按钮。
3)元件工具栏包括各种元器件按钮。
4)仪器工具栏包括各种仪器仪表的图标。
5)电路窗口进行电路设计的工作视窗。
6)状态条指示当前操作的信息和鼠标所指条目的描述。
7)元件列表列出在电路窗口中出现的所有元件。
8)仿真开关启动、闭合电路的仿真。
2 建立电路2.1 开始建立电路文件运行Multisim,它会自动打开一个空白电路文件。
也可以单击按钮,新建一个空白电路文件。
2.2 在电路窗口中放置元件1)Multisim对元器件的管理Multisim以数据库的形式管理元器件,它提供了3种元件库:Multisim Master、User 和Corporate Library(仅在专业版提供)。
其中Multisim Master 库中存放的是系统本身提供的元器件,用户没有编辑权;User 库用于存放自己创建的元器件;Corporate Library 用于多人共同开发时存放共享的元器件。
电路中的元件可以来自其中任何库。
Multisim Master中的元件分为实际元件和虚拟元件。
实际元件的型号、参数、封装都与现实中实际的元件一致,采用实际元件可以使仿真结果与实际情况更接近。
虚拟元件不与实际元件相对应,使用时根据需要对参数值进行设置,其模型、符号等不能编辑,也没有封装形式,只用于仿真。
目录1.曲柄-滑块机构 (1)1.1配置ANSYS工作环境 (3)1.2准备连杆柔性体模型 (4)1.2.1在ANSYS里的工作 (4)1.2.2柔性子系统向导 (6)1.3刚柔耦合系统动力学建模 (12)1.3.1创建几何图形 (13)1.3.2创建刚体 (15)1.3.3创建柔性子系统 (16)1.3.4创建铰 (17)1.4刚柔耦合系统动力学仿真 (20)2.柔性平台-电机模型 (26)2.1准备柔性平台 (27)2.1.1在ANSYS环境里工作 (28)2.1.2在ANSYS Workbench环境里工作 (29)2.1.3柔性子系统向导 (36)2.2刚柔耦合系统动力学建模与仿真 (37)2.2.1导入柔性平台 (37)2.2.2连接柔性平台与大地 (38)2.2.3创建几何图形 (38)2.2.4创建力元 (42)2.2.5导入电机子系统 (45)2.2.6设置电机转子速度曲线 (47)2.2.7连接电机与柔性平台 (49)2.2.8计算系统平衡位置和固有频率 (51)2.2.9运动仿真 (53)1.曲柄-滑块机构本例模型为一个曲柄-滑块机构,如图 1.1所示。
在{UM Data}\SAMPLES\ Flex目录有一个名为slider_crank_all的模型。
这个模型里共有三个曲柄-滑块机构,其不同之处在于构件连杆的建模方式:⚫连杆为一个刚体;⚫连杆为一个子系统,由11个刚体通过铰和力元连接而成;⚫连杆为一个柔性体,从有限元软件导入。
图1.1 曲柄-滑块机构:1-机架,2-曲柄,3-连杆,4-滑块这里主要介绍第三个模型——刚柔耦合机构的建模流程:1.建立连杆的有限元模型;2.计算所需的模态,并转换保存为UM格式;3.创建几何图形;4.创建刚体(曲柄和滑块);5.导入连杆弹性体;6.创建铰和力元。
前两步在ANSYS里进行,后面四步在UM软件里进行。
备注:UM使用子系统技术处理外部导入的柔性体,每个柔性体都是一个独立的子系统,导入时选择Linear FEM Subsystem类型。
自动控制原理MATLAB仿真实验实验指导书电子信息工程教研室实验一典型环节的MA TLAB仿真一、实验目的1.熟悉MATLAB桌面和命令窗口,初步了解SIMULINK功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、SIMULINK的使用MATLAB中SIMULINK是一个用来对动态系统进行建模、仿真和分析的软件包。
利用SIMULINK功能模块可以快速的建立控制系统的模型,进行仿真和调试。
1.运行MA TLAB软件,在命令窗口栏“>>”提示符下键入simulink命令,按Enter键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK仿真环境下。
2.选择File菜单下New下的Model命令,新建一个simulink仿真环境常规模板。
图1-1 SIMULINK仿真界面图1-2 系统方框图3.在simulink仿真环境下,创建所需要的系统。
以图1-2所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。
点击simulink下的“Continuous”,再将右边窗口中“Transfer Fen”的图标用左键拖至新建的“untitled”窗口。
2)改变模块参数。
在simulink仿真环境“untitled”窗口中双击该图标,即可改变传递函数。
其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK,即完成该模块的设置。
3)建立其它传递函数模块。
按照上述方法,在不同的simulink的模块库中,建立系统所需的传递函数模块。
例:比例环节用“Math”右边窗口“Gain”的图标。
4)选取阶跃信号输入函数。
用鼠标点击simulink下的“Source”,将右边窗口中“Step”图标用左键拖至新建的“untitled”窗口,形成一个阶跃函数输入模块。
目录1.曲柄-滑块机构 (1)1.1配置ANSYS工作环境 (3)1.2准备连杆柔性体模型 (4)1.2.1在ANSYS里的工作 (4)1.2.2柔性子系统向导 (6)1.3刚柔耦合系统动力学建模 (12)1.3.1创建几何图形 (13)1.3.2创建刚体 (15)1.3.3创建柔性子系统 (16)1.3.4创建铰 (17)1.4刚柔耦合系统动力学仿真 (20)2.柔性平台-电机模型 (26)2.1准备柔性平台 (27)2.1.1在ANSYS环境里工作 (28)2.1.2在ANSYS Workbench环境里工作 (29)2.1.3柔性子系统向导 (36)2.2刚柔耦合系统动力学建模与仿真 (37)2.2.1导入柔性平台 (37)2.2.2连接柔性平台与大地 (38)2.2.3创建几何图形 (38)2.2.4创建力元 (42)2.2.5导入电机子系统 (45)2.2.6设置电机转子速度曲线 (47)2.2.7连接电机与柔性平台 (49)2.2.8计算系统平衡位置和固有频率 (51)2.2.9运动仿真 (53)1.曲柄-滑块机构本例模型为一个曲柄-滑块机构,如图 1.1所示。
在{UM Data}\SAMPLES\ Flex目录有一个名为slider_crank_all的模型。
这个模型里共有三个曲柄-滑块机构,其不同之处在于构件连杆的建模方式:⚫连杆为一个刚体;⚫连杆为一个子系统,由11个刚体通过铰和力元连接而成;⚫连杆为一个柔性体,从有限元软件导入。
图1.1 曲柄-滑块机构:1-机架,2-曲柄,3-连杆,4-滑块这里主要介绍第三个模型——刚柔耦合机构的建模流程:1.建立连杆的有限元模型;2.计算所需的模态,并转换保存为UM格式;3.创建几何图形;4.创建刚体(曲柄和滑块);5.导入连杆弹性体;6.创建铰和力元。
前两步在ANSYS里进行,后面四步在UM软件里进行。
备注:UM使用子系统技术处理外部导入的柔性体,每个柔性体都是一个独立的子系统,导入时选择Linear FEM Subsystem类型。
自动控制原理上机实验指导书目录Simulink仿真集成环境简介 (2)实验一典型环节的性能分析 (11)实验二二阶系统的性能分析 (14)实验三自动控制系统的稳定性和稳态误差分析 (17)实验四自动控制系统根轨迹的分析 (22)实验五自动控制系统的频域分析 (27)实验六控制系统的校正及设计 (32)实验七非线性系统的稳定性分析 (39)Simulink仿真集成环境简介Simulink是可视化动态系统仿真环境。
1990年正式由Mathworks公司引入到MATLAB中,它是Slmutation 和Link的结合。
这里主要介绍它的使用方法和它在控制系统仿真分析和设计操作的有关内容。
1、进入Simulink操作环境双击桌面上的MATLAB图标,启动MATLAB,进入开发环境,如图0-1所示:图0-1 MATLAB开发环境从MATLAB的桌面操作环境画面进入Simulink操作环境有多种方法,介绍如下:①点击工具栏的Simulink图标,弹出如图0-2的图形库浏览器画面。
②在命令窗口键入“simulink”命令,可自动弹出图形库浏览器。
上述两种方法需从该画面“File”下拉式菜单中选择“New/Model”,或点击图标,得到图0-3的图形仿真操作画面。
③从“File”下拉式菜单中选择“New/Model”,弹出图0-3所示的未命名的图形仿真操作画面。
从工具栏中点击图形库浏览器图标,调出图0-2的图形库浏览器画面。
图0-3用于仿真操作,图0-2的图形库用于提取仿真所需的功能模块。
图0-2 Simulink图形库浏览器画面图0-3 simulink仿真操作环境画面2、提取所需的仿真模块在提取所需仿真模块前,应绘制仿真系统框图,并确定仿真所用的参数。
图0-2中的仿真用图形库,提供了所需的基本功能模块,能满足系统仿真的需要。
该图形库有多种图形子库,用于配合有关的工具箱。
下面将对本书中实验可能用到的功能模块作一个简单介绍。
目录1.UM CONTROL模块 (1)1.1M ATLAB I MPORT工具 (1)1.2C O S IMULATION工具 (1)2.模型简介 (2)2.1倒立摆 (2)2.1.1模型简介 (2)2.1.2准备UM模型 (3)2.2直流电机 (4)2.2.1模型简介 (4)2.2.2机械系统 (6)2.2.3电路系统 (7)2.3限制条件 (7)3.使用MATLAB IMPORT工具 (8)3.1工作流程 (8)3.2倒立摆 (9)3.2.1从Matlab/Simulink输出模型 (9)3.2.2将DLL文件导入UM (12)3.2.3运动仿真 (17)3.3直流电机 (19)3.3.1Matlab/Simulink模型 (19)3.3.2从Matlab/Simulink输出模型 (21)3.3.3将DLL文件导入UM (22)3.3.4运动仿真 (25)4.使用COSIMULATION工具 (27)4.1工作流程 (27)4.2倒立摆 (28)4.2.1准备Matlab/Simulink模型 (29)4.2.2输出UM模型 (30)4.2.3连接UM模型和Matlab/Simulink模型 (35)4.2.4运动仿真 (36)4.3直流电机 (38)4.3.1准备Matlab/Simulink模型 (38)4.3.2输出UM模型 (38)4.3.3连接UM模型和Matlab/Simulink模型 (42)4.3.4运动仿真 (43)1.UM Control模块UM提供了多个工具实现机械系统与控制系统的联合仿真,其中与Matlab/Simulink相关的有两个。
1.1Matlab Import工具先在Matlab/Simulink中建立控制系统模型,并编译输出动态链接库(DLL 文件),然后通过UM的外部库向导Wizard of external libraries导入UM,在UM里进行计算。
1.2CoSimulation工具先在UM中建立机械系统模型,并通过专用工具Wizard of export生成m 文件,导入Matlab/Simulink作为一个S函数,在Matlab里进行计算。
下面的框图显示了模型传递方向和执行仿真的主程序。
实际上,对于两种方法,数据交互都是双向的。
2.模型简介在这一章,我们先介绍倒立摆和直流电机的机械系统模型及其参数。
2.1倒立摆2.1.1模型简介倒立摆模型如图 2.1所示。
该模型由一个小车cart和一个单摆pendulum组成。
模型参数见表 2.1。
机械系统的输出信号为角度ψ,控制系统的输出信号为力Force。
随角度变化而变化的控制力使得单摆能保持倒立平衡状态。
图2.1 倒立摆表2.1 模型参数2.1.2准备UM模型虽然Matlab/Simulink动态链接库是在仿真阶段才导入UM Simulation程序的,但我们必须在建模时就做好准备工作。
如果控制系统通过计算输出力或力矩给机械系统,我们必须先运行UM Input程序,在机械系统里先定义这么一个力元,并赋予参数符号。
对于本例的倒立摆模型,我们添加了一个T-force类型的力元。
这个力作用于小车上,方向为小车局部坐标系的Y向,命名为force,如图 2.2所示。
在之后仿真时,使用外部库向导可以将控制系统计算得到的力传递给force。
图2.2 用于连接控制系统的力元2.2直流电机2.2.1模型简介本例模型机械系统的主要元件是一个转动惯量为J0的传动轴,如图2.3所示。
传动轴相对于大地(惯性系)有且仅有一个转动自由度。
图2.3 模型简图模型的电路系统在Matlab/Simulink里建立,我们假设电机的转子和传动轴是刚性连接的。
电机有一个输入信号和三个输出信号。
输入信号:⚫传动轴(电机转子)的角速度输出信号:⚫电磁驱动力矩⚫电路中的电流⚫电路中的电压电磁驱动力矩M a是在UM模型里定义的T-force力元,而阻力矩M r则定义为传动轴转动铰的阶跃函数,如图 2.4所示。
表2.2 模型参数如前所述,为了能连接控制系统,我们需要在机械系统里预先创建一个参数化的力元。
这里,我们打开UM Input程序,添加一个T-force力元,命名为Driving torque,如图2.5所示。
这个T-force力元有且仅有一个分量Ma,表示绕Y轴转动的力矩,用于连接控制系统。
转动铰处的阻力矩表示如下:Mr = c1*heavi(t-t1) + (c2-c1)*heavi(t-t2)其中,t1,t2,c1和c2是模型参数,如图 2.4所示。
请注意,heavi函数定义如下:heavi(t)={1,t>0 0,t≤0为了在仿真时能观察电流和电压的时程曲线,我们可以添加两个参数符号:I(电流)和U(电压),如图2.5所示。
在仿真时,我们将Matlab/Simulink模型的另外两个输出信号分别指定给这两参数。
图2.5 驱动力矩、阻力矩和参数列表在本例中,我们将定义一个恒定磁通量的他励直流电机,其参数见表 2.3。
表2.3 直流电机参数2.3限制条件Matlab/Simulink与UM联合仿真时,存在一些限制条件:可以将Matlab/Simulink的输出信号传递给力元相关的符号:如力的作用点、刚度和阻尼系数。
根据UM软件的基本原则,不支持将Matlab/Simulink的输出信号传递给刚体的质量惯量参数、几何参数和铰坐标,因为这些参数只能在每次仿真开始前设置,而不能在仿真过程中随时间不断变化。
3.使用Matlab Import工具3.1工作流程从Matlab/Simulink导出控制系统到UM进行联合仿真的流程如下:⚫在Matlab/Simulink里搭建控制框图;⚫从Matlab/Simulink输出动态链接库(DLL文件);⚫在UM Input程序里创建机械系统模型;⚫在UM Simulation程序里加载机械系统模型,利用外部库向导(Wizard of external libraries)导入Matlab/Simulink DLL文件,并设置好连接;⚫进行动力学仿真。
UM将Matlab/Simulink模型考虑为一个具有若干个输入和输出信号的黑盒子。
输入信号为UM Simulation程序里变量向导(Wizard of variables)创建的变量;输出信号为UM Input程序里创建的参数符号。
为了实现力或力矩的主动控制效果,必须在UM里创建相关力元,并以参数化描述,这样才能与Matlab/Simulink的输出信号建立连接。
3.2倒立摆UM软件自带的不包含控制系统的倒立摆模型位于本地目录{UM Data} \SAMPLES\TUTORIAL\inv_pend。
在开始学习本课程之前,请先确认这个模型是否存在。
如果没有找到,可以从UM软件官方网站下载:/download/80/inv_pend.zip。
我们将直接使用它,这里就不再详细介绍其建模过程,而着重讲解有关连接Matlab/Simulink模型的方法。
包含控制系统的UM模型位于本地目录{UM Data}\SAMPLES\ simulink\inv_pend_ctrl。
3.2.1从Matlab/Simulink输出模型从Matlab/Simulink输出控制系统模型意味着将模型编译为动态链接库,用于连接UM模型。
备注:在学习之前,最好先熟悉Matlab/Simulink的基本操作,以保证能顺利地编译成功DLL文件。
不推荐直接使用软件自带的动态链接库pendpid_ctrl.dll文件,因为它可能是32位版本Matlab/Simulink编译的,不能用于64位UM软件进行仿真。
提示:Matlab/Simulink里的Derivative模块不支持导出使用,可用Transfer Fnc 模块代替。
Matlab/Simulink里的基本流程如下:1.准备一个控制系统模型;2.复制编译DLL所需的文件到模型目录;3.设置编译选项并执行编译。
准备控制系统模型首先,必须去掉Matlab/Simulink模型中不能被编译的模块/组件:所有的输入/输出组件,以及所有没有源代码的组件。
请注意模型必须有“IN”和“OUT”组件,用于与UM模型进行连接。
在本例中,分别有一个“IN”(单摆竖向摆角)接口和“OUT”(作用在小车上的控制力)接口。
Matlab/Simulink控制系统如图3.1所示。
图3.1 倒立摆模型的控制框图复制编译所需文件和设置工作目录1.为了将控制模型正确编译成UM所需的DLL文件,我们需要先从目录{UM Data}\simulink\R2013_2015\x64复制文件rsim.tlc、rsim_vc.tmf和um.tls三个文件到存放Matlab/Simulink模型的目录下。
2.点击Matlab窗口主页,设置要编译的模型位于当前工作目录。
编译1.先在Matlab命令窗口输入命令:mex –setup(注意mex后有一个空格),然后从列表中选择一个编译器。
备注:我们推荐使用Microsoft Visual C/C++编译器来编译生成动态链接库。
2.在Simulink模型窗口,选择菜单Code | C/C++ Code。
3.在Code Generation页面设置System target file为rsim.tlc。
4.设置Language为C。
5.设置Make command为make_rtw。
6.设置Template makefile为rsim_vc.tmf。
7.在Solver页面设置Type为Fixed Step。
8.选择求解器ode4(四阶龙格库塔法)。
9.回到Code Generation页面,点击Build,编译生成DLL文件。
图3.2 设置编译选项(Matlab R2011-R2015)编译成功后,会出现提示“Creating LIBRARY..\pendpid_cntr.lib and object ..\pendpid_cntr.exp”。
最后得到pendpid_cntr.dll文件。
备注:为确保正常计算,最好将Matlab R2011-R2015和UM软件安装在同一台计算机。
3.2.2将DLL文件导入UM加载Matlab/Simulink动态链接库1.运行UM Simulation程序。
2.加载模型{UM Data}\SAMPLES\TUTORIAL\inv_pend。
3.选择菜单Tools | External library interface,弹出外部库向导窗口。
图3.3 外部库向导4.点击按钮,添加一个外部库。
5.在右上角Path to external library处点击按钮,选择在Matlab里编译的动态链接库文件pendpid_cntr.dll,如图3.4所示。