参考书目 《反馈控制系统设计与分析—— MATLAB语言应用》清华大学出版社,2000年,薛定宇

Slides:



Advertisements
Similar presentations
一、 一阶线性微分方程及其解法 二、 一阶线性微分方程的简单应用 三、 小结及作业 §6.2 一阶线性微分方程.
Advertisements

第五节 全微分方程 一、全微分方程及其求法 二、积分因子法 三、一阶微分方程小结. 例如 所以是全微分方程. 定义 : 则 若有全微分形式 一、全微分方程及其求法.
第五节 函数的微分 一、微分的定义 二、微分的几何意义 三、基本初等函数的微分公式与微分运算 法则 四、微分形式不变性 五、微分在近似计算中的应用 六、小结.
第九章 常微分方程数值解法 §1 、引言. 微分方程的数值解:设方程问题的解 y(x) 的存在区间是 [a,b] ,令 a= x 0 < x 1
2.8 函数的微分 1 微分的定义 2 微分的几何意义 3 微分公式与微分运算法则 4 微分在近似计算中的应用.
2.5 函数的微分 一、问题的提出 二、微分的定义 三、可微的条件 四、微分的几何意义 五、微分的求法 六、小结.
信号与系统 第三章 傅里叶变换 东北大学 2017/2/27.
第12章 SIMULINK动态仿真集成环境 Simulink操作基础 系统仿真模型 系统的仿真
Oracle数据库 Oracle 子程序.
一、原函数与不定积分 二、不定积分的几何意义 三、基本积分公式及积分法则 四、牛顿—莱布尼兹公式 五、小结
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
2-7、函数的微分 教学要求 教学要点.
§5 微分及其应用 一、微分的概念 实例:正方形金属薄片受热后面积的改变量..
C语言实验 第一课 标题:学号+姓名.
C++中的声音处理 在传统Turbo C环境中,如果想用C语言控制电脑发声,可以用Sound函数。在VC6.6环境中如果想控制电脑发声则采用Beep函数。原型为: Beep(频率,持续时间) , 单位毫秒 暂停程序执行使用Sleep函数 Sleep(持续时间), 单位毫秒 引用这两个函数时,必须包含头文件
在PHP和MYSQL中实现完美的中文显示
第八章 菜单设计 §8.1 Visual FoxPro 系统菜单 §8.2 为自己的程序添加菜单 §8.3 创建快捷菜单.
内容: 1. 库模块简介 2.基本建模方法 3.模型举例 4.子系统与模块封装技术 5.函数的编写与应用
Simulink建模与仿真.
Simulink模擬基礎 主要內容 Simulink簡介 Simulink模組庫 Simulink的基本操作 S-函數.
走进编程 程序的顺序结构(二).
CH5、SIMULINK仿真基础 在工程实际中,控制系统的结构往往很复杂,如果不借助专用的系统建模软件,则很难准确地把一个控制系统的复杂模型输入计算机,对其进行进一步的分析与仿真。 1990年,Math Works软件公司为MATLAB提供了新的控制系统模型图输入与仿真工具,并命名为SIMULAB,该工具很快就在控制工程界获得了广泛的认可,使得仿真软件进入了模型化图形组态阶段。但因其名字与当时比较著名的软件SIMULA类似,所以1992年正式将该软件更名为SIMULINK。
PostgreSQL 8.3 安装要点 四川大学计算机学院 段 磊
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第一讲: 基本流程(1).
第五讲 四则运算计算器(一) 精品教程《C#程序设计与应用(第2版)清华大学出版社 谭恒松 主编
第九章 Simulnk动态仿真 本章主要内容如下: 9.1 Simulink基本操作 9.2 模块库和系统仿真 9.3 子系统创建与封装
1.2 MATLAB变量表达式与数据格式 MATLAB变量与表达式 MATLAB的数据显示格式
§2 求导法则 2.1 求导数的四则运算法则 下面分三部分加以证明, 并同时给出相应的推论和例题 .
Simulink入门 什么是Simulink
实验六 积分器、微分器.
第四章 附件 (应用程序软件包).
用event class 从input的root文件中,由DmpDataBuffer::ReadObject读取数据的问题
SOA – Experiment 2: Query Classification Web Service
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
第二章 登录UNIX操作系统.
C语言程序设计 主讲教师:陆幼利.
第9章 MATLAB环境下的仿真软件Simulink
第10章 SIMULINK动态仿真集成环境 10.1 Simulink操作基础 10.2 系统仿真模型 10.3 系统的仿真
直接扫描保存成TIF格式, 其他图片格式用Windows XP自带的 Windows图片与传真查看器打开
VisComposer 2019/4/17.
姚金宇 MIT SCHEME 使用说明 姚金宇
第4章 Excel电子表格制作软件 4.4 函数(一).
第九节 赋值运算符和赋值表达式.
iSIGHT 基本培训 使用 Excel的栅栏问题
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
魏新宇 MATLAB/Simulink 与控制系统仿真 魏新宇
HSC高速输出例程 HORNER APG.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
建模常见问题MATLAB求解  .
GIS基本功能 数据存储 与管理 数据采集 数据处理 与编辑 空间查询 空间查询 GIS能做什么? 与分析 叠加分析 缓冲区分析 网络分析
本节内容 C语言的汇编表示 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
第二章 闭环控 制的直 流调速 系统及 计算机 仿真.
Python 环境搭建 基于Anaconda和VSCode.
工业机器人知识要点解析 (ABB机器人) 主讲人:王老师
第六章 Excel的应用 五、EXCEL的数据库功能 1、Excel的数据库及其结构 2、Excel下的数据排序 (1)Excel的字段名行
MATLAB 实用教程.
回归分析实验课程 (实验三) 多项式回归和定性变量的处理.
基于列存储的RDF数据管理 朱敏
作者:郭阳宽 王正林 《过程控制系统仿真》 电子工业出版社 出版 作者:郭阳宽 王正林
第8章 创建与使用图块 将一个或多个单一的实体对象整合为一个对象,这个对象就是图块。图块中的各实体可以具有各自的图层、线性、颜色等特征。在应用时,图块作为一个独立的、完整的对象进行操作,可以根据需要按一定比例和角度将图块插入到需要的位置。 2019/6/30.
WEB程序设计技术 数据库操作.
第四章 UNIX文件系统.
FVX1100介绍 法视特(上海)图像科技有限公司 施 俊.
创建、启动和关闭Activity 本讲大纲: 1、创建Activity 2、配置Activity 3、启动和关闭Activity
使用Fragment 本讲大纲: 1、创建Fragment 2、在Activity中添加Fragment
第六讲 酒店客房管理系统(二) 教育部“十二五”职业教育国家规划教材
培训课件 AB 变频器的接线、操作及参数的备份 设备动力科.
海报题目 简介: 介绍此项仿真工作的目标和需要解决的问题。 可以添加合适的图片。
Presentation transcript:

参考书目 《反馈控制系统设计与分析—— MATLAB语言应用》清华大学出版社,2000年,薛定宇

计算机仿真 在计算机支持下进行的现代仿真技术称为计算机仿真。 仿真不单纯是对模型的实验,它包括建立模型、仿真运行和分析研究仿真结果,即建模——实验——分析的全过程。 MATLAB提供各种用于系统仿真的函数,用户可以通过m 文件调用指令和函数进行系统仿真,也可以通过Simulink工具箱,进行面向系统结构方框图的系统仿真。这两种方式可解决任意复杂系统的动态仿真问题,前者编辑灵活,而后者直观性强,实现可视化编辑。 内容:连续系统仿真:数值积分法、离散相似法 离散事件系统仿真 SIMULINK动态仿真

上篇:一、MATLAB的工作空间 1、MATLAB的工作空间包含了一组可以在命令窗口中调整(调用)的参数 who:显示当前工作空间中所有变量的一个简单列表 whos:则列出变量的大小、数据格式等详细信息 clear :清除工作空间中所有的变量 clear 变量名:清除指定的变量 2、保存和载入workspace (1)save filename variables 将变量列表variables所列出的变量保存到磁盘文件filename中 Variables所表示的变量列表中,不能用逗号,各个不同的变量之间只能用空格来分隔。 未列出variables时,表示将当前工作空间中所有变量都保持到磁盘文件中。 缺省的磁盘文件扩展名为“.mat”,可以使用“-”定义不同的存储格式(ASCII、V4等)

(2)load filename variables 将以前用save命令保存的变量variables从磁盘文件中调入MATLAB工作空间。 用load 命令调入的变量,其名称为用save命令保存时的名称,取值也一样。 Variables所表示的变量列表中,不能用逗号,各个不同的变量之间只能用空格来分隔。 未列出variables时,表示将磁盘文件中的所有变量都调入工作空间。 3、退出工作空间 quit 或 exit

二、文件管理 文件管理的命令,包括列文件名、显示或删除文件、显示或改变当前目录等。(what、dir、type、delete、cd、which) what:显示当前目录下所有与matlab相关的文件及它们的路径。 dir:显示当前目录下所有的文件 which:显示某个文件的路径 cd path:由当前目录进入path目录 cd ..:返回上一级目录 cd:显示当前目录 type filename:在命令窗口中显示文件filename delete filename:删除文件filename

三、MATLAB语句形式 》变量=表达式; 通过等于符号将表达式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。

1、变量 (1)变量的命名:变量的名字必须以字母开头(不能超过19个字符),之后可以是任意字母、数字或下划线;变量名称区分字母的大小写;变量中不能包含有标点符号。 (2)变量操作 在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调用。如要察看变量a的值,只需要在命令窗口中输入变量的名称即可:》a 2、数值显示格式 任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。 format只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。

四、基于数值积分法的连续系统仿真 1.数值积分法的MATLAB函数 MATLAB的工具箱提供了各种数值积分方法函数: 格式:[T,Y]=solver(‘F’,TSPAN,Yo,OPTIONS) solver为微分方程的求解函数名。 F为系统模型文件名,模型为TSPAN=[To Tfinal]为积分区间,初值—终值, Yo为系统输出初始值,即To时刻的初值列向量; OPTIONS设置积分相对允误’RelTol’和绝对允误’AbsTol’, 缺省时,RelTol=1e-3, AbsTol=1e-6. 输出参数T和Y为列向量,T为时刻向量,Y表示不同时刻的函数值。

系统模型函数的编写格式是固定的,如果其格式没有按照要求去编写则将得出错误的求解结果,系统模型函数的引导语句为: function xdot=模型函数名(t,x,附加参数) 其中t为时间变量,x为状态变量,xdot为状态变量的导数。如果有附加参数需要传递,则可以列出,中间用逗号分开。 solver: ode23 Runge-Kutta法 三阶积分算法、二阶误差估计、变积分步长的低阶算法 ode45 Runge-Kutta法,变步长的中等阶次积分算法 ode113 变阶的Adams-Bashforth-Moulton,多步长 ode15s 改进的Gear法,用于刚性方程的求解。

例1:求微分方程 先建立一个系统模型文件(m文件函数)dfun.m function y=dfun(t,x) y=sqrt(x)+5; 然后建立m文件mp2-1 %mp2-1 [t,x]=ode23('dfun', [0 10] , 1) plot(t,x) , ,

2.对于高阶常微分方程 则可以选择一组状态变量, 将原高阶微分方程模型变换成以下的一阶微分方程组形式:

例2考虑描述振荡器的经典的范得波(Var der Pol)微分方程 可变换成 建立一个系统模型文件(m文件函数) function xprime = vdp_eq(t,x) global MU xprime = [x(2);MU*(1-x(1)^2)*x(2)-x(1)] 然后建立m文件显示 。。。 [t,x] = ode45('vdp_eq',0,40,Y0);

五、基于离散相似法的连续系统仿真 所谓离散相似法是首先将连续系统模型离散化,得到等价的或相似的离散化的模型,然后对相似的离散模型进行仿真计算。 根据这一原理,首先应将连续时间系统模型转换为等价的离散时间系统模型。连续系统离散化处理是通过①采样和信号保持器;②变换法(如双线性变换)来实现的。③转移矩阵法;

连续系统模型转换为离散时间系统模型的函数C2D,调用格式为 sysd = c2d (sys, Ts, method) 其中,sys为线性连续时间系统;Ts为采样时间;sysd为等价的离散时间系统。 method为离散化方法,可以选用: ① 'zoh '为零阶保持器 ② 'foh'为一阶保持器 ③ 'tustion'为双线性变换法,④ 'prewarp'为改进的双线性变换法 ⑤ 'matched'使连续和离散系统具有匹配的DC增益

例3:连续系统传递函数 采用一阶采样保持器,采样周期为 求其离散化系统模型 sysc = tf ( [1 -1] , [14 5] , ‘td’ , 0.35 );% ‘td’ 为time delay sysd = c2d ( sysc, 0.1, 'foh' ) step ( sysc, sysd ); 运行结果: Transfer function:

下篇:一、Simulink与建模仿真 Simulink及应用领域 Simulink是一种用来实现计算机仿真的软件工具。它是MATLAB 的一个附加组件,可用于实现各种动态系统(包括连续系统、离散系统和混合系统)的建模、分析和仿真。 特点:易学易用,能够依托MATLAB提供的丰富的仿真资源(1)通讯与卫星系统;(2)航空航天系统;(4)船舶系统;(6)金融系统;(3)生物系统;(5)汽车系统;(7)控制系统。

创建一个简单的模型 例4:示范模型的功能是对一个正弦信号进行积分,显示积分的结果。Mp1.mdl 图 mp1模型

模型结构已设计,用SIMULINK建立模型的过程可以概括为:在SIMULINK的模块库中找到所需的模块,并把它们拖曳到模型窗口,将这些模块排列好,然后用直线将各个模块连接起来。步骤如下: 新建一个空白模型:单击库浏览器工具栏上的空白按钮。模型的后缀名为.mdl. 在模块库浏览器窗口找到所需的模块,并将模块拖曳到空白的模型窗口中的适当位置(均在SIMULINK库)。 正弦发生器(source子库的sine wave)、积分器(continuous子库的integrator)、复用器(signals & systems子库的MUX)、示波器(sinks子库的scope)。 用直线将模块连接起来,注意一个模块的输入端只能和另一个模块的输出端连接。保存,*.mdl。 运行(simulation/start)、查看结果(双击scope)。修改参数,查看运行的结果。

子系统创建及封装 在命令窗口键入“thermo”(这是一个房间热力学仿真演示程序)。里面包含许多模块,模块之间用直线相连,组成模型,模型造好后,可以仿真运行,等待结果。 双击“house”模块,出现“thermo/house”窗口,表示house模块是由窗口右边所示的一些模块连接而成。像house这样由由几个相互关联的模块组合而成的模块在simulink中称为子系统 用户自定义该子系统的图表和设置参数对话 House房屋形状的图标就是封装后的结果。 还可以做其他尝试,如:把温度设为80(预期的室内温度),观察仿真结果的变化。 标签为daily temperature variation的正弦模块是设置日温度变化,试改变幅度值参数,观察仿真结果的变化。

线性系统积分模块 1)构作如下图所示系统 2)双击标准积分模块,引出积分器对话框,在External reset外复位下拉拦中,选择rising项。按OK键,模块呈现如图所示的两个端口,下端口旁的符号表示:此端口信号由负变正的瞬间,该积分器被强迫置零。 3)双击标准示波器模块,引出标准示波器窗口,点击,引出属性对话框,在该对话框的Number of axes栏中填写2,按OK键,就获得两端口示波器。 4)仿真操作 5)仿真结果说明 在仿真启动时,积分器从零开始对0.5t进行积分。当复位口信号t-5=0瞬间,积分器被重置为0,此后再对0.5t进行积分,

SIMULINK 运行仿真 两种Simulink运行仿真的方法 使用窗口运行仿真 使用MATLAB 命令运行仿真 使用窗口运行仿真 优点:人机交互性强,不必记住繁琐的命令语句即可进行操作。使用窗口运行仿真主要可以完成以下一些操作。 1. 设置仿真参数: 仿真参数和算法选择的设置 2. 应用仿真参数: 仿真参数和算法设置后,使之生效 3. 启动仿真: 选择命令运行仿真 4. 停止仿真: 选择命令停止仿真 5. 中断仿真: 可以在中断点继续启动仿真,而停止仿真则不能 6. 仿真诊断: 在仿真中若出现错误,Simulink将会终止仿真并在仿真诊断对话框中显示错误信息

1. 设置仿真参数 选择菜单选项【Simulation>Parameters】,可以对仿真参数及算法进行设置,共有五个选项卡 解法设置(Solver)(已讲) 工作间I/O(Workspace I/O) 诊断页(Diagnostics)(自学) 高级设置(Advanced) (自学) 实时工具对话框(Real-Time Workshop) (自学)

工作间I/O Simulink作为MATLAB 的一个附件,理应与MATLAB 很好地结合,它的输入数据可以从MATLAB的工作空间中获得,其仿真结果也可以被引入到MATLAB的工作空间。实现此项功能需要用到仿真参数对话框中的工作间I/O页。 工作间I/O 页大致可以分为三个部分: 􀂋从MATLAB工作空间获得系统输入(Load from workspace) 􀂋仿真结果输出到MATLAB的工作空间(Save to workspace) 􀂋输出选项(Save option) 下面对Workspace I/O选项页的功能与使用分别予以简介。

从MATLAB工作空间加载 (Load from workspace) 虽然Simulink提供了多种系统输入信号,但并不能完全满足需要。Simulink允许使用用户自定义的信号作为系统输入信号。在Load from workspace框中,用户可以设置MATLAB中的变量作为系统输入信号或系统状态初值,如下所述: (1)Input:用来设置系统输入信号,其格式为[t, u],其中t、u 均为列向量,t 为输入信号的时间向量,u 为相应时刻的信号取值。可以使用多个信号输入,如[t, u1, u2]。输入信号与Simulink的接口由Inport模块(In1模块)实现。 (2)Initial state:用来设置系统状态变量的初始值。初始值xInitial可为列向量。 注意:使用xInitialstate所设置的状态变量初始值会自动覆盖系统模块中的设置。另外,输入信号与状态变量需要按照系统模型中Inport模块(即In1 模块)的顺序进行正确设置。

仿真结果输出到MATLAB的工作空间 (Save to workspace) 使用Workspace I/O选项页可以将系统的仿真结果、系统仿真时刻、系统中的状态或指定的信号输出到MATLAB的工作空间中,以便用户对其进行定量分析,如下所述: (1)Time:输出系统仿真时刻。 (2)States:输出系统模型中的所有状态变量。 (3)Output:输出系统模型中的所有由Output 模块(即Out1 模块)表示的信号。 (4)Final state:输出系统模型中的最终状态变量取值,即最后仿真时刻处的状态值。 􀂋输出选项(Save option) (1)Limit data points to last:表示输出数据的长度(从信号的最后数据点记起)。 (2)Format:表示输出数据类型。共有三种形式:Structure with Time(带有仿真时间变量的结构体)、Structure(不带仿真时间变量的结构体)、Array(信号数组)。

使用MATLAB命令运行仿真 MATLAB提供了sim命令,用户可以在MATLAB 的环境下以命令行或M 文件的形式运行Simulink模型。 使用命令行方式,用户可以在脚本文件中重复地对同一系统在不同的仿真参数或不同的系统模块参数下进行仿真,而无需一次又一次启动Simulink图形窗口中的Start Simulink。

(1)系统的输入为一单位幅值、单位频率的正弦信号; (2)系统的输出信号为输入信号的积分。 要求如下: 建立一个简单的动态系统,其功能如下: (1)系统的输入为一单位幅值、单位频率的正弦信号; (2)系统的输出信号为输入信号的积分。 要求如下: (1)系统的输入信号由MATLAB 工作空间中的变量提供,时间0~10s; (2)使用MATLAB绘制原始输入信号与系统运算结果的曲线。 问题描述: 原函数:sin(t) 时间区域:0-10s 原函数的积分为:-cos(t)+C 若取零初始条件,则有:C=1; 因此,有x(t)=-cos(t)+1

对Workspace I/O 页进行如下设置: (1)Load from workspace 栏:Input 打勾,并填入sim_input(由MATLAB 工作空间输入的输入名)。Initial state 不选。 (2)Save to workspace 栏:Time 和Output 项勾上,State 和Final state 项不勾。 (3)Save options 栏依次为:1000,1,Array

在MATLAB工作空间中定义输入变量sim_input如下: >t = 0: 0.1: 10; t = t’; % 表示输入信号的时间范围 >u = sin( t ); % 产生输入正弦信号 >sim_input= [ t, u ]; % 传递给Simulink系统模型的变量 然后运行Simulink仿真。: 或者[ tout, x, yout] = sim( ‘command_in_out’) %使用sim进行系统仿真,仿真参数取与前面相同 最后在MATLAB工作空间运行如下命令 plot(t, u, tout, yout, ’--’); grid