simulink及模型转换_第1页
simulink及模型转换_第2页
simulink及模型转换_第3页
simulink及模型转换_第4页
simulink及模型转换_第5页
已阅读5页,还剩91页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

通常用颜色来区分程序内容的类别 绿色 注释部分程序不执行黑色 程序主题部分红色 属性值的设定蓝色 控制流程 比for if then等语句 t 0 0 1 7 x sin t plot t x k title 正弦曲线 xlabel x轴 ylabel y轴 s 0 a 12 13 14 15 16 17 18 19 20 21 22 23 fork as s k senddisp s 输出行向量 Simulink在系统仿真中的应用 Simulink是一种用于在MATLAB下建立模块化的集成软件工具包 Simulink建模的基础知识 Simulink含两层含义 Simu 表示仿真 simulation 而link表示它能够进行系统连接 即 把一系列模块连接起来 构成复杂的系统模型 正是由于它的这些功能和特色 使得它成为计算机仿真领域首选的仿真环境 前面涉及到的仿真都是较为简单的静态仿真 为了处理更复杂的和时间有关的动态系统 就必须学习simulink的使用 Simulink是matlab提供的实现系统建模和仿真的一个软件包 它让用户把精力从编程转向模型的构造 启动simulink 只需要在matlab命令窗口输入 simulink或者单击命令窗口里工具栏上的按钮 Simulink库浏览器 模型窗口 Simulink最让人振奋的一点就是支持图形用户界面 SIMULINK的基本操作 1 SIMULINK窗口 库浏览器 SIMULINK模型窗口 2 SIMULINK模块操作 模块是建立SIMULINK模型的基本单元 用适当的方式把各种模块连接在一起就能够建立任何动态系统模型 选取模块 放大或缩小模块 改变模块名字 双击某一模块或在模块上单击鼠标右键 选择BlockParameters可以对参数进行设置 选择BlockProperties可以设置和查看模块的特性 模块的连线 移动鼠标到某一模块的输出端 鼠标的箭头会变成十字形光标 按住鼠标左键移动鼠标到另一模块的输入端 当十字光标出现重影时 释放左键即可 P115 2SIMULINK的基本模块 在SIMULINK中包含 连续系统模块库 Continuous 离散系统模块库 Discrete 数学运算模块库 Math 非线性模块库 Nonlinear 信号与系统模块库 Signal System 接收 输出 模块库 Sinks 输入源模块库 Sources 等 每一个模块又包含很多子模块 连续系统模块Continuous功能 模块名 功能简介 Integrator积分环节Derivative微分环节State Space状态方程TransferFcn传递函数Zero Pole零 极点模型Memory把前一步的输入作为输出TransportDelay把输入信号按给定的时间做延迟VariableTransportDelay按第二个输入指定的时间把第一个输入做延迟 离散系统模块Discrete功能 模块名 功能简介 Zero OrderHold零阶保持器UniteDelay采样保持 延迟一个周期Discrete TimeIntegrator离散时间积分DiscreteState Space离散状态方程DiscreteFilter离散滤波器 IIR FIR DiscreteTransferFcn离散传递函数DiscreteZero Pole离散零 极点模型First OrderHold一阶保持器 非线性模块库 RateLimiter限制输入变化率的变化大小Saturation让输出超过某一值时能够饱和Quantizer把输入转化成阶梯状的量化输出Backlash由deadband设定 输出依据输入的改变而改变DeadZone死区特性Relay限制输出值在某一范围内变化Switch根据临界值自动判断选择所接受的输入端ManualSwitch人工判断选择所接受的输入端MutiportSwitch在多输入中选一个输出Coulumb ViscousFriction当输出值达到一定值时 输出才会根据输入而改变 接收模块sink功能 模块名 功能简介 Scope示波器XYGraph两个信号的关系图 用MATLAB图形显示Display实时数值显示ToFile保存到文件ToWorkspace输出到当前工作空间的变量StopSimulation输入为非零时停止仿真 用示波器模块来观察输出Sinks库Scope示波器窗口XYgraph绘制二维的图形Display将数据以数字的形式显示出来使用Workspace模块将信号输入至Workspace模块 该模块将数据输出到Matlab的命令窗口中 以 simout 变量名保存下来 也可以改变变量名用另外的名字保存时间数据用sources中的clock模块使用返回值将输出返回Matlab命令窗口中out1 输入源模块source功能 模块名 功能简介 Constant常数SignalGenerator信号发生器Step阶跃信号Ramp线性增加或减少的信号SineWave正弦波RepeatingSequence重复的线性信号 类似锯齿形DiscretePulseGenerator离散脉冲发生器 和采样时间有关PulseGenerator脉冲发生器 和采样时间无关ChirpSignal频率不断变化的正弦信号Clock输出当前的仿真时间 DigitalClock按指定速率输出当前仿真时间 用于离散系统仿真FromFile从文件读数据RandomNumber高斯分布的随机信号UniformRandomNumber平均分布的随机信号Band LimitedWhiteNoise带限白噪声 3仿真模型参数的设置 建立模型之后 就可以对模型进行动态仿真 但在仿真前必须对模型的仿真参数进行相应的设置 1 输入信号的参数设置双击信号源对象 改变其可设置值例如 阶跃信号的可设置参数有Steptime阶跃时间Initialvalue初值Finalvalue终值2 示波器参数的设置双击示波器 则出现示波器窗口 用于显示波形 在示波器上端可设置属性 包括显示时间 采样周期等 3 其他环节的设置与输入信号的设置一样 通过双击对象弹出属性窗口 设置不同的参数 2 运行模型 用户在选择适当的算法并且设置好仿真参数后 就可以运行Simulink仿真模型了 有两种方法可以启动仿真 1 选择Simulation Start 2 点击图标 注意 缺省时 示波器历史数据只保存最后的5000个 如果我们希望显示完整的仿真曲线 就需要将 Limitdatatolast5000 前面复选框中的 去掉 4 仿真参数的设置 主菜单Simulation选项下的Parameters选项用于设置仿真参数 主要包括 1 仿真算法 分别为 Euler欧拉法Runge Kutta3三阶龙格库塔法Runge Kutta5五阶龙格库塔法 缺省 AdamsAdams算法Gear基耶算法Adams GearA G混合算法Linsim线性系统仿真算法 2 仿真时间与仿真步长的设置starttime开始时间stoptime结束时间RelativeTolerance相对精度AbsoluteTolerance绝对精度Max min stepsize最大 最小 允许的步长 最大步长 停止时间 起始时间 50 若仿真时间很长 有可能会出现失根 这时可根据需要设置较小的步长 输出选项outputoptionsrefinedoutput细化输出produceadditional产生附加输出producespecifiedoutputonly只产生指定输出 1 简单例子 例1 双击SignalGenerator跳出属性窗口 SignalGenerator模块的位置在模型库的simulink的source下 Scope模块的位置在模型库的simulink的sinks下 未进一步设置时的仿真图线 双击Scope 可见 正弦图线不够连续 这是因为显示的采样步长参数没有调整到最好的结果 在模型窗口选择菜单中的simulation下的ConfigurationParameters 进一步设置 将maxstepsize设置为0 01 将minstepsize设置为0 001 再次仿真得到新的图线 步长为auto时 步长调整后 设置步长的窗口 2 火炮随动系统 稳定的情况 开环比例系数增大5倍 3 最 复杂的例子 F14 在matlab命令窗口中输入 f14 默认的方波仿真结果 5 2 3Simulink在控制系统仿真研究中的应用举例 例1 某一SISO的线性定常如图所示 试用MATLAB观测其单位阶跃响应曲线 解 建立一个Simulink模型文件 构造如下图所示的仿真模型 仿真运行结果 例5 2 某一非线性控制系统如图5 20所示 判断该系统是否有稳定的极限环 并且分析该系统的稳定性 运行仿真模型就绘制出该非线性控制系统相轨迹 从相轨迹可以看到该非线性系统具有稳定的极限环 再建立另一种形式的系统仿真模型 并且得到仿真结果 下图所示 可以看到极限环对应的等幅振荡的振幅大约为0 6 周期大约为6秒 例有初始状态为0的二阶微分方程x 0 2x 0 4x 0 2u t 其中u t 是单位阶跃函数 试建立系统模型并仿真 方法1 用积分器直接构造求解微分方程的模型 方法2 利用传递函数模块建模 方法3 利用状态方程模块建模 例分别采取细化输出 产生附加输出和只产生指定输出这三种方式仿真正弦输入输出系统 细化系统为2 仿真时间10s 正弦波频率为8 signal systems mux把向量或标量组合为大的向量 mux 子系统的建立两种方法 通过Subsystem模块建立子系统和通过已有的模块建立子系统 两者的区别是 前者先建立子系统 再为其添加功能模块 后者先选择模块 再建立子系统 1 通过Subsystem模块建立子系统操作步骤为 1 先打开Simulink模块库浏览器 新建一个仿真模型 2 打开Simulink模块库中的Ports Subsystems模块库 将Subsystem模块添加到模型编辑窗口中 3 双击Subsystem模块打开一个空白的Subsystem窗口 将要组合的模块添加到该窗口中 另外还要根据需要添加输入模块和输出模块 表示子系统的输入端口和输出端口 这样 一个子系统就建好了 创建一个简单的三角函数方程作为子系统 Ports subsystemssubsystem Ports subsystemsIn1 out1 mathoperationssourcesconstant 2 通过已有的模块建立子系统操作步骤为 1 先选择要建立子系统的模块 不包括输入端口和输出端口 2 选择模型编辑窗口Edit菜单中的CreateSubsystem命令 这样 子系统就建好了 在这种情况下 系统会自动把输入模块和输出模块添加到子系统中 并把原来的模块变为子系统的图标 选中要压缩的子系统 压缩成子系统以后 子系统封装技术 模块封装方法 创建一个封装模块的主要步骤如下 1 创建一个子系统 2 选中该子系统模块 执行模型窗口菜单中的 Edit Masksubsystem 命令 将子系统转化为封装模块 这时系统弹出封装编辑对话框 右图所示 3 使用封装编辑对话框设置封装文本 对话框和图标 我们以简单的三角函数方程的子系统为例 学习如何封装一个子系统 见教材87页 Icon 图标 设置 Parameter 参数 设置 该页分为两个区 对话框参数区 Dialogparameters 和已选择参数选项区 Optionsforselectedparameters 对话框参数区用于选择和改变封装参数的主要性质 已选择参数选项区用于设置已选择参数的其他选项 Initialization 初始化 设置 初始化页分为两个区 对话框变量区 Dialogvariables 和初始化命令区 Initializationcommands 对话框变量区显示在参数页中设置好的子系统封装参数 初始化命令区中可以输入MATLAB语句 如定义变量 初始化变量等 Documentation 文本 设置 文本编辑页分为3个区 封装类型区 Masktype 封装描述区 Maskdescription 和封装帮助区 Maskhelp 封装类型区中的内容将作为模块的类型显示在封装模块的对话框中 封装描述区中的内容包括描述该模块功能的简短语句 该区中的内容将显示在封装模块对话框的上部 封装帮助区的内容包括使用该模块的详细说明等 当选择对话框中Help选项时 MATLAB的帮助系统将显示该区的内容 5 3 3模块库构造 要构造一个模块库 在Simulink库浏览器的窗口上选择 File New Library 这时打开一个空白的模块库窗口 将需要的模块 用户创建的模块或Simulink本身的系统模块 复制到新的库中 然后给这个模块库命名 例如 mylibrary mdl 并且保存 这样就创建了自己的模块库 以后创建仿真模型需要用到该模块库中的模块时 首先打开该模块库 再将需要的模块拖拽到新的模型编辑窗口即可 实验二MATLAB符号计算及绘图一 实验目的掌握符号表达式的微分 积分运算以及极限和方程求解的运算等2 掌握MATLAB二维 三维的绘图函数 并利用不同的色彩 线型和绘制出自己满意的图形 3 掌握MATLAB的图形处理 网格 标记 坐标系的控制等 1 计算 二 实验内容 4 求解方程组 2求函数展开到含的项 3求函数关于的一阶导数 实验三Simulink仿真 控制系统数学模型及其转换一 实验目的1掌握Simulink的建模方法 1 模块的建立 连接 仿真参数的修改和子系统的创建及封装 2 熟悉系统以结构图形式描述的连续系统的数字仿真方法和步骤 3 学会分析环节参数变化对系统动态特性的影响 2熟悉各类数学模型的表示方法3掌握模型间转换的技巧4灵活应用各种数学模型 1 有初始状态为0的二阶微分方程 其中u t 是单位阶跃函数 试用两种方法建立系统模型并仿真 3 将2题中的闭环控制系统封装成一个子系统 4某系统的传递函数为 5某单输入单输出系统 试求该系统状态空间表达式的对角线标准形 6求出以下系统的传递函数 使用MATLAB求出状态空间表达式和零极点模型 第4章控制系统数学模型及其转换 在线性系统中 常用的数学模型有微分方程模型 传递函数模型 状态空间模型以及零极点模型等 不同的模型应用于不同的场合 掌握模型间的转换才能灵活应用各种数学模型 本章将主要介绍系统数学模型及转换 系统环节模型的连接及标准型实现等内容 4 1控制系统类型 1连续系统和离散系统 2线性系统和非线性系统 3时变系统和定常 时不变 系统 4确定性系统和随机系统 4 2控制系统常用数学模型 4 2 1连续系统数学模型 1 系统微分方程形式模型 对于线性定常系统单入单出 简称SISO 系统 可用以下方程描述 2 系统传递函数形式模型 输出拉氏变换与输入拉氏变换之比 即为单输入 单输出系统的传递函数 传递函数分子 分母多项式系数向量可以分别定义如下 这里分子 分母多项式系数向量中的系数均按s的降幂排列 用printsys tf来建立传递函数的系统模型 其基本格式为 例 已知系统的传递函数如下 利用MATLAB建立其相应的传递函数系统模型 运行命令 结果为 注 printsys只能在命令窗口中显示模型 不能将模型输入到workspace中 num 5 203 den conv conv conv 100 31 conv 12 12 5038 printsys num den s tf num den 3 系统的零极点 ZPK 形式模型 在MATLAB中零极点可以分别定义为 使用zpk 函数建立零极点形式的系统模型 其基本格式为 如果已知传递函数 可按以下方法求得z和p 运行命令 结果为 z 4 p 1 2 3 k 5 sys zpk z p k 4 系统的部分分式形式 传递函数也可以表示成为部分分式或留数形式 如下式 例 写出以下传递函数的部分分式形式 运行命令 结果为 这表示 residue 余数 5 系统的状态空间 statespace 模型 在MATLAB中建立系统模型的基本格式 例 某线性定常系统的状态空间表达式如下 请输入到MATLAB的workspace中去 运行命令 结果为 4 2 2离散系统数学模型 离散系统常用的数学模型通常可以用差分方程 脉冲传递函数 或Z传递函数 状态空间表达式三种形式对系统加以描述 1 系统差分方程形式模型 函数tf 也可建立脉冲传递函数的系统模型 其基本格式为 其中 Ts为系统采样周期 对于离散系统 也可以用zpk 函数建立零极点模型 基本格式为 3 系统的状态空间模型 在MATLAB中建立系统模型的基本格式 printsys num den z 例 假设某离散系统的脉冲传递函数为 采样周期为T 0 1秒 将其输入到MATLAB的workspace中 并且绘制零 极点分布图 并且将该离散系统脉冲传递函数模型转换成状态空间表达式 再输入 输入下列语句 运行结果为 num 0 310 570 380 89 den 13 233 982 220 47 Gyu tf num den 0 1 计算机绘制出零极点分布图pzmap 再输入 得到 4 2 3系统模型参数的获取 对于连续系统 调用格式为 对于离散系统 调用格式为 V 表示返回的数据行向量 只适用于单输入单输出系统 4 3系统数学模型的转换 4 3 1系统模型向状态方程形式转换 直接利用MATLAB函数实现所需要的系统模型向状态方程的转换 基本格式为 注意 在英语中 2 和 to 谐音 例4 2 已知系统传递函数如下 应用MATLAB的函数将其转换为状态方程形式的模型 可以将任意线性定常系统模型转换为状态方程 MATLAB求解m文件如下 运行结果为 num 1224020 den 24622 A B C D tf2ss num den 4 3 2系统模型向传递函数形式转换 1 状态空间模型向传递函数形式转换 MATLAB提供了函数ss2tf 实现将状态空间方程转换为传递函数形式 基本格式为 其中 iu用于指定变换所使用的输入量 还可以采用下面的方式 即 例4 3 某线性定常系统的状态空间表达式如下 求该系统的传递函数 编写m文件如下 运行结果为 A 010 001 10 17 8 B 0 0 1 C 561 D 0 num den ss2tf A B C D G tf num den 例 某线性定常系统的状态空间表达式如下 求该系统的传递函数矩阵 输入并且运行以下程序 计算机输出 计算机输出的计算结果表明 传递函数矩阵为 2 零极点增益模型向传递函数形式转换 其基本格式 或 例4 4 对于例4 3题中的线性定常系统 将其转换为zpk形式 编写m文件如下 运行结果为 例 某线性定常系统的状态空间表达式如下 将其转换成ZPK形式 输入并且运行以下程序 计算机输出 计算机输出的计算结果表明 传递函数矩阵的ZPK形式为 4 3 4传递函数形式与部分分式形式的转换 MATLAB提供函数residue 实现极点留数的求取 其基本格式为 例4 5 某系统的传递函数如下 求它的部分分式形式 编写m文件如下 运行结果为 表示 如果此时在命令窗口中输入 则计算机返回 可见 residue 函数 既可以将传递函数形式转换成部分分式形式 也可以将部分分式形式转换成传递函数形式 4 3 5连续和离散系统之间的转换 如果对离散化处理结果提出具体的转换方式要求 则可以采用c2d或c2dm函数进行 基本格式为 其中 Gc表示连续系统模型 Ts表示系统采样周期 method指定转换方式 zoh 表示采用零阶保持器 foh 表示采用一阶保持器 例4 6 某连续系统的状态空间表达式如下 采用零阶保持器将其离散化 设采样周期为0 1秒 求离散化的系统方程 编写m文件如下 运行结果为 计算结果表示离散化后的系统方程为 Ad Bd Cd Dd C2DM A B C D Ts method NUMd DENd C2DM NUM DEN Ts method SYSD C2D SYSC Ts METHOD A 010 001 10 17 8 B 0 0 1 C 561 D 0 Ad Bd Cd Dd c2dm A B C D 0 1 模型转换的函数小结 residue 传递函数模型与部分分式模型互换ss2tf 状态空间模型转换为传递函数模型ss2zp 状态空间模型转换为零极点增益模型tf2ss 传递函数模型转换为状态空间模型tf2zp 传递函数模型转换为零极点增益模型zp2ss 零极点增益模型转换为状态空间模型zp2tf 零极点增益模型转换为传递函数模型 状态空间SS 传递函数tf 零极点ZP 极点留数 ss2tf tf2ss zp2ss ss2zp zp2tf tf2zp residue ss2ss SYS SS2SS SYS T performsthesimilaritytransformationz Txonthestatevectorxofthestate spacemodelSYS Theresultingstate spacemodelisdescribedby 1z TAT z TB u 1y CT z Duor inthedescriptorcase 1 1 TET z TAT z TB u 1y CT z Du SS2SSisapplicabletobothcontinuous anddiscrete timemodels ForLTIarraysSYS thetransformationTisperformedoneachindividualmodelinthearray 4 4控制系统模型的连接 系统模型连接的方式主要有串联 并联 反馈等形式 MATLAB提供了模型连接函数 4 4 2模型并联 对于SISO系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论