登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書

『簡體書』MATLAB/Simulink系统仿真

書城自編碼: 3034033
分類:簡體書→大陸圖書→計算機/網絡程序設計
作者: 李献、骆志伟、于晋臣
國際書號(ISBN): 9787302467403
出版社: 清华大学出版社
出版日期: 2017-09-01
版次: 1 印次: 1

書度/開本: 32开 釘裝: 平装

售價:HK$ 129.1

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
瑞士创新密码
《 瑞士创新密码 》

售價:HK$ 106.5
利益相关者:战略管理全新视角  [美]R.爱德华·弗里曼
《 利益相关者:战略管理全新视角 [美]R.爱德华·弗里曼 》

售價:HK$ 95.6
以色列的诞生:荣耀2024版(2024版全2册)
《 以色列的诞生:荣耀2024版(2024版全2册) 》

售價:HK$ 145.2
山林果园散养土鸡新技术(彩色图解+视频升级版)
《 山林果园散养土鸡新技术(彩色图解+视频升级版) 》

售價:HK$ 84.5
一个女人的世界史:伊丽莎白·马什的磨难
《 一个女人的世界史:伊丽莎白·马什的磨难 》

售價:HK$ 111.3
大雨艺术设定画集
《 大雨艺术设定画集 》

售價:HK$ 203.3
激发改变:点燃内心渴望,实现终身成长   [美]理查德·博亚特兹
《 激发改变:点燃内心渴望,实现终身成长 [美]理查德·博亚特兹 》

售價:HK$ 119.8
欧洲史:从古希腊到冷战后
《 欧洲史:从古希腊到冷战后 》

售價:HK$ 239.6

 

建議一齊購買:

+

HK$ 143.6
《 MATLAB科学计算 》
+

HK$ 114.6
《 MATLAB图像处理 》
+

HK$ 129.1
《 MATLAB智能算法 》
+

HK$ 114.6
《 MATLAB计算机视觉与深度学习实战 》
+

HK$ 119.7
《 先进PID控制MATLAB仿真(第4版) 》
+

HK$ 119.7
《 MATLAB R2016a完全自学一本通 》
編輯推薦:
1 资深作者编著,图书质量更有保证:一线资深工程师执笔,系统归纳和总结了智能算法的实战经验。2 提供配套源码,便于读者动手实践:理论必须联系实践,本书提供源代码下载,方便读者学习使用。3 内含丰富实例,利于读者二次开发:书中提供了十几个智能算法的典型实例,读者可以据此二次开发。4 提供配套课件,便于教师备课使用:配套提供了完整的教学课件资料,便于广大教师备课使用。配套学习资源下载地址为清华大学出版社网站本书页面。系列畅销图书如下:MATLAB 编程指南计算、编程、仿真、算法及应用MATLABSimulink系统仿真MATLAB GUI程序设计MATLAB智能算法MATLAB数学建模MATLAB科学计算MATLAB信号处理MATLAB图像处理
內容簡介:
本书在MATLAB 2016a的基础上由浅入深地讲解了MATLABSimulink软件的知识,内容涉及面广、涵盖了用户需要使用的各种功能。本书编排合理,自始至终采用实例描述; 内容完整且各章相对独立,是一本极具参考价值的MATLABSimulink参考书。
本书分为三大部分共16章。*部分主要介绍了MATLAB基础知识、Simulink仿真入门、Simulink模型建立与仿真以及Simulink常用命令库等; 第二部分主要介绍SFunction的应用、控制系统仿真和PID控制仿真等; 第三部分则涉及Simulink高级应用,包括模糊逻辑控制、电力系统仿真、通信系统仿真、神经网络控制仿真、滑模控制、车辆系统仿真、群智能算法仿真和图像处理仿真等。
本书以工程应用为目标,深入浅出,实例引导,讲解翔实,适合作为理工科高等院校本科生和研究生的教学用书,也可作为广大科研工程技术人员的参考用书。
關於作者:
李献 毕业于中国科学院研究生院,博士学位,硕士毕业于华中科技大学。毕业后留在中科院电工研究所应用超导重点实验室工作。主要从事电磁推进、脉冲强磁场以及脉冲功率电源的相关研究工作。在国内外期刊发表论文多篇,出版多部畅销图书。
目錄
目录



第1章MATLAB基础知识

1.1MATLAB简介

1.2MATLAB的通用命令

1.2.1MATLAB菜单说明

1.2.2MATLAB路径设置

1.2.3MATLAB系统常量说明

1.2.4MATLAB程序注解符说明

1.3MATLAB的计算基础

1.3.1MATLAB的预定义变量

1.3.2常用运算和基本数学函数

1.3.3数值的输出格式

1.4MATLAB程序设计基础

1.4.1MATLAB基本程序设计

1.4.2MATLAB程序控制语句的运用

1.5MATLAB的绘图功能

1.5.1离散数据图形绘制

1.5.2函数图形绘制

1.5.3网格图绘制

1.5.4曲面图的绘制

1.5.5特殊图形绘制

1.6微积分问题的MATLAB求解

1.6.1符号微积分

1.6.2微分方程的数值解

1.6.3龙贝格积分法微积分运算

1.6.4有限差分方法求边值问题

1.6.5样条函数求积分

1.6.6常微分方程符号解

1.7非线性方程与线性规划问题求解

1.7.1非线性方程组求解

1.7.2无约束最优化问题求解

1.7.3线性规划问题

1.7.4二次型规划问题

1.8本章小结


第2章Simulink仿真入门

2.1Simulink基本操作

2.1.1运行Simulink

2.1.2Simulink模块库

2.1.3Simulink模块的操作

2.2运行仿真及参数设置简介

2.2.1模型的创建

2.2.2模块的连接与简单处理

2.2.3仿真参数设置简介

2.3子系统及其封装

2.3.1创建子系统

2.3.2使能子系统

2.3.3触发子系统

2.3.4使能触发子系统

2.3.5封装子系统

2.4用MATLAB命令创建和运行Simulink模型

2.4.1创建Simulink模型与文件

2.4.2添加模块和信号线

2.4.3设置模型和模块属性

2.4.4仿真

2.5本章小结


第3章Simulink模型的建立与仿真

3.1Simulink模块库简介

3.2信号源模块组

3.2.1Clock模块

3.2.2Digital Clock模块

3.2.3Constant模块

3.2.4BandLimited White Noise模块

3.2.5Chirp Signal模块

3.2.6Sine Wave模块

3.2.7Pulse Generator模块

3.2.8Random Number模块

3.2.9Step模块

3.2.10Uniform Random Number模块

3.3连续模块组

3.3.1Derivative模块

3.3.2Integrator模块

3.3.3Transfer Fcn模块

3.3.4Transport Delay模块

3.3.5ZeroPole模块

3.3.6StateSpace模块

3.4离散模块组

3.4.1Discrete Transfer Fcn模块

3.4.2Discrete Filter模块

3.4.3Unit Delay模块

3.4.4Memory模块

3.4.5Discrete ZeroPole模块

3.4.6Discrete StateSpace模块

3.4.7ZeroOrder Hold模块

3.5查表模块组

3.5.11D Lookup Table模块

3.5.22D Lookup Table模块

3.6用户自定义函数模块组

3.6.1Fcn模块

3.6.2MATLAB Fcn模块

3.6.3SFunction模块

3.7数学运算模块组

3.7.1Abs模块

3.7.2Add模块

3.7.3Divide模块

3.7.4Dot Product模块

3.7.5Gain模块

3.7.6Complex to MagnitudeAngle模块

3.7.7MagnitudeAngle to Complex模块

3.8非线性模块组

3.8.1Backlash模块

3.8.2Coulomb & Viscous Friction模块

3.8.3Dead Zone模块

3.8.4Quantizer模块

3.8.5Rate Limiter模块

3.8.6Saturation模块

3.9信号与系统模块组

3.9.1Bus Selector模块

3.9.2Bus Creator模块

3.9.3Mux模块

3.9.4Demux模块

3.9.5Data Store Memory模块

3.9.6Data Store Read模块

3.9.7Data Store Write模块

3.9.8Enable模块

3.9.9Ground模块

3.10本章小结


第4章Simulink常用命令库分析

4.1Simulink中常用的模块库

4.2Simulink命令代码

4.2.1Simulink系统路径

4.2.2获取Simulink模型参数值

4.3Simulink系统创建命令

4.3.1simulink命令

4.3.2simulink3命令

4.3.3find_system命令

4.3.4new_system命令

4.3.5open_system命令

4.3.6save_system命令

4.3.7bdclose命令

4.4Simulink模型模块操作命令

4.4.1add_block命令

4.4.2delete_block命令

4.4.3add_line命令

4.4.4delete_line命令

4.4.5replace_block命令

4.5获取Simulink文件路径

4.5.1gcb命令

4.5.2gcbh命令

4.5.3gcs命令

4.5.4bdroot命令

4.6获取Simulink模型参数命令

4.6.1get_param命令

4.6.2set_param命令

4.7Simulink代码建模

4.8本章小结


第5章基于Simulink的S函数建模

5.1Simulink S函数仿真应用

5.1.1Simulink S函数仿真过程

5.1.2S函数的回调方法

5.2Mfile S函数应用

5.3Mfile S函数模板

5.3.1S函数工作方式

5.3.2S函数仿真过程

5.3.3S函数的编写

5.3.4M文件S函数的模块化

5.4Mfile S函数实现

5.5本章小结


第6章控制系统Simulink仿真

6.1控制系统频域分析

6.1.1频率特性的定义

6.1.2频率特性和传递函数的关系

6.1.3频率特性的图形表示方法

6.2幅相频率特性

6.2.1比例环节

6.2.2微分环节

6.2.3积分环节

6.2.4惯性环节

6.2.5一阶复合微分环节

6.2.6二阶振荡环节

6.2.7二阶复合微分环节

6.2.8延迟环节

6.2.9开环系统的幅相特性曲线

6.3对数频率特性

6.3.1比例环节

6.3.2微分环节

6.3.3积分环节

6.3.4惯性环节

6.3.5一阶复合微分环节

6.3.6二阶振荡环节

6.3.7二阶复合微分环节

6.3.8延迟环节

6.4开环系统的Bode图

6.5最小相角系统和非最小相角系统

6.6奈奎斯特频域稳定判据

6.7频域对数稳定判据

6.8稳定裕度

6.8.1稳定裕度的定义

6.8.2稳定裕度的计算

6.9本章小结


第7章基于PID的Simulink控制系统仿真

7.1PID控制原理

7.2基于PID的控制仿真

7.3基于S函数的PID控制系统仿真

7.4基于PID的倒立摆小车控制仿真

7.5本章小结


第8章模糊逻辑控制仿真

8.1模糊逻辑概述

8.1.1高斯型隶属函数

8.1.2三角形隶属函数

8.2模糊逻辑控制箱图形界面

8.2.1基本FIS编辑器

8.2.2隶属函数编辑器

8.2.3绘制FIS

8.2.4设置模糊系统属性

8.2.5规则编辑器和语法编辑器

8.2.6规则观察器和模糊推理框图

8.3模糊聚类分析

8.3.1FIS曲面

8.3.2FIS结构

8.3.3模糊均值聚类

8.3.4模糊聚类工具箱

8.4模糊与PID控制器仿真设计

8.4.1模糊逻辑工具箱

8.4.2PID控制

8.4.3模糊控制器设计

8.4.4模糊与PID控制仿真

8.5本章小结


第9章Simulink在电力系统中的应用

9.1同步发电机原理分析

9.2简化同步电机模块使用

9.3同步电机模块使用

9.4负荷模型

9.4.1静态负荷模块

9.4.2三相动态负荷模块

9.5异步电动机模块

9.6直流电机模块

9.7本章小结


第10章电力系统稳定性分析

10.1Powergui模块

10.1.1仿真类型

10.1.2分析工具

10.2二极管模块

10.3晶闸管模块

10.4电力系统稳态仿真

10.4.1连续系统仿真

10.4.2离散系统仿真

10.5电力系统电磁暂态仿真

10.5.1断路器模块

10.5.2三相断路器模块

10.5.3三相故障模块

10.5.4暂态仿真分析

10.6本章小结


第11章通信系统仿真设计

11.1通信系统仿真概述

11.2信源与信道模型

11.2.1随机数产生器

11.2.2泊松分布产生器

11.2.3伯努利二进制信号产生器

11.2.4加性噪声产生器

11.3滤波器分析

11.4调制与解调

11.4.1基带模型与调制通带分析

11.4.2解调与模拟调制模型分析

11.4.3数字调制解调器模型分析

11.5本章小结


第12章神经网络控制

12.1神经网络简介

12.2人工神经元模型

12.3神经网络的学习规则

12.4MATLAB神经网络工具箱

12.5基于BP神经网络的PID自适应控制

12.6基于Simulink的神经网络模块仿真

12.6.1模块的设置

12.6.2模块的生成

12.7基于Simulink的神经网络控制系统

12.8反馈线性化控制

12.9本章小结


第13章滑模控制

13.1基于名义模型的滑模控制

13.1.1名义控制系统结构

13.1.2基于名义模型的控制

13.1.3基于名义模型的滑模控制器的设计

13.1.4基于名义模型的滑模控制仿真

13.2全局滑模控制

13.2.1全局滑模控制系统

13.2.2全局滑模控制器的设计

13.2.3基于全局滑模控制的仿真

13.3基于线性化反馈的滑模控制

13.3.1二阶非线性确定系统的倒立摆仿真

13.3.2二阶非线性不确定系统的倒立摆仿真

13.3.3输入输出的反馈线性化控制

13.3.4输入输出的反馈线性化滑模控制

13.4基于模型参考的滑模控制

13.5本章小结


第14章车辆系统仿真

14.1汽车制动系统仿真

14.2汽车悬架系统仿真

14.2.1汽车悬架系统运动方程建立

14.2.2汽车悬架系统仿真

14.2.3白噪声路面模拟输入仿真

14.3汽车四轮转向控制系统仿真

14.3.1低速四轮转向系统仿真

14.3.2高速四轮转向系统仿真

14.4本章小结


第15章群智能算法控制系统仿真

15.1PID控制

15.2粒子群算法控制仿真

15.2.1基本粒子群算法

15.2.2粒子群算法流程

15.2.3被控对象PID整定

15.2.4阶跃响应性能检测

15.3遗传算法控制仿真

15.3.1选择算子

15.3.2交叉算子

15.3.3变异算子

15.3.4适应度值评估

15.3.5遗传算法流程

15.3.6被控对象PID整定

15.3.7阶跃响应性能检测

15.4人群搜索算法控制仿真

15.4.1搜索步长的确定

15.4.2搜索方向的确定

15.4.3搜寻者个体位置的更新

15.4.4人群搜索算法流程

15.4.5被控对象PID整定

15.4.6阶跃响应性能检测

15.5本章小结


第16章图像处理仿真

16.1图像处理模块库

16.1.1分析和增强模块

16.1.2转换模块库

16.1.3滤波模块库

16.1.4几何变换模块库

16.1.5形态学操作模块库

16.1.6接收器模块库

16.1.7输入源模块库

16.1.8统计模块库

16.1.9文本和图形模块库

16.1.10变换模块库

16.1.11工具模块库

16.2基于Simulink的图像增强

16.2.1图像灰度变换增强

16.2.2图像的平滑增强

16.2.3图像锐化增强

16.3基于Simulink的图像转换处理

16.3.1图像类型转换

16.3.2颜色模型转换

16.4基于Simulink的图像几何变换

16.4.1图像的旋转

16.4.2图像的缩放

16.5基于Simulink的图像数学形态学操作

16.5.1图像膨胀和腐蚀

16.5.2图像的开运算与闭运算

16.6基于Simulink的图像增强综合实例

16.6.1图像进行旋转和增强

16.6.2图像缩小旋转及边缘检测处理

16.7本章小结


附录Simulink常用命令库


参考文献
內容試閱
前言
MATLABSimulink可用于动态系统和嵌入式系统的多领域仿真,是基于模型的设计工具。Simulink是MATLAB中的一种可视化仿真工具,它基于MATLAB的框图设计环境,是实现动态系统建模、仿真和分析的一个软件包,被广泛应用于线性系统、非线性系统、数字控制及数字信号处理的建模和仿真中。对于各种时变系统,包括通信、控制、信号处理、视频处理和图像处理系统,Simulink提供了交互式图形化环境和可定制的模块库来对其进行设计、仿真、执行和测试。Simulink可以用连续采样时间、离散采样时间或混合的采样时间进行建模,它也支持多速率系统,即系统中的不同部分具有不同的采样速率。为了创建动态系统模型,Simulink提供了一个建立模型方框图的图形用户接口GUI,创建过程只需单击和拖动鼠标操作就能完成,它提供了一种快捷、直接明了的方式,使得用户可以立即看到系统的仿真结果。1. 本书特点(1) 由浅入深、循序渐进: 本书以MATLAB爱好者为对象,首先从MATLAB使用基础讲起,再辅以MATLABSimulink在工程中的应用案例帮助读者尽快掌握MATLABSimulink进行工程应用分析的技能。(2) 步骤详尽、内容新颖: 本书结合作者多年MATLABSimulink使用经验与实际工程应用案例,将MATLABSimulink软件的使用方法与技巧详细地讲解给读者。本书在讲解过程中步骤详尽、内容新颖,并辅以相应的图片,使读者在阅读时一目了然,从而快速掌握书中的内容。(3) 实例典型、轻松易学: 通过实际工程应用案例的具体操作,读者可以更好地掌握MATLABSimulink的使用方法。本书通过综合应用案例,透彻详尽地讲解了MATLABSimulink在各方面的应用。2. 本书内容本书基于MATLAB 2016a版本,讲解了MATLABSimulink的基础知识和核心内容。本书主要围绕MATLABSimulink在工程问题中的应用进行仿真运算,内容分为三部分共16章。第一部分主要介绍了MATLAB及Simulink的基本操作知识; 第二部分介绍了Simulink的控制系统仿真应用; 第三部分则讲解Simulink的高级应用。第一部分为MATLAB及Simulink的基本应用,包括第1章到第4章,内容涵盖矩阵的应用、MATLAB计算基础、程序设计基础、绘图功能、微积分应用、非线性方程求解、Simulink基本操作、Simulink运行仿真参数设置、Simulink子系统封装展开以及Simulink模块库分析等。第二部分为Simulink控制系统的仿真部分,包括第5章到第7章,主要介绍采用SFunction进行控制系统设计,采用S函数进行Simulink模块设计,控制系统计算机仿真的算法分析、控制系统数字仿真的实现和控制系统计算机仿真等。第三部分为Simulink高级系统仿真应用,包括第8章到第16章,主要分析了模糊逻辑控制器的设计、电力系统仿真设计、通信系统仿真设计、Simulink神经网络应用、滑模控制、车辆系统仿真和群智能算法控制系统仿真等。本书附录部分介绍Simulink常用命令库,基本涵盖所有常用的Simulink命令函数。3. 读者对象本书适合于MATLABSimulink初学者,也适合想要研究算法和提高工程应用能力的读者,本书面向的读者群体包括:★ 广大科研工作人员★ 初学MATLABSimulink的技术人员★ 大中专院校的教师和在校生★ 相关培训机构的教师和学员★ 参加工作实习的菜鸟★ MATLABSimulink爱好者★ 初中级MATLABSimulink从业人员4. 读者服务为了方便解决本书的疑难问题,读者朋友在学习过程中遇到任何与本书有关的技术问题,都可以发邮件到邮箱caxart@126.com,或者访问博客http:blog.sina.com.cncaxart,编者会尽快给予解答。另外本书所涉及的资料(程序代码)已经上传到上面提到的博客及清华大学出版社本书页面中,读者可以下载。5. 本书作者本书主要由李献、骆志伟和于晋臣编著。此外,付文利、王广、张岩、温正、林晓阳、任艳芳、唐家鹏、孙国强和高飞等也参与了本书部分内容的编写工作。虽然作者在本书的编写过程中力求叙述准确、完善,但由于水平有限,书中欠妥之处在所难免,希望读者能够及时指出,以促进本书质量的提高。最后希望本书能够为读者的学习和工作提供帮助!
编者


第3章Simulink模型的建立与仿真
Simulink是MATLAB的仿真工具箱,它是面向框图的仿真软件。Simulink能用绘制方框图代替程序,结构和流程清晰; 利用Simulink可智能化地建立和运行仿真,仿真精细、贴近实际。Simulink适应面广。可应用于线性、非线性系统,连续、离散及混合系统,以及单任务、多任务离散事件系统。采用Simulink模块库能够方便地进行模型的编辑和仿真构建。学习目标:1 学习Simulink基本库原件;2 学习Simulink各模块的使用;3 学习Simulink各模块的参数配置;4 学习使用Simulink各模块搭建仿真框图。3.1Simulink模块库简介在MATLAB命令行窗口输入simulink,打开Simulink工具箱,进行Simulink工具箱模块库的学习。Simulink模块库很庞大,以下将主要介绍常规的Simulink应用模块,包括信号源模块组、连续模块组、离散模块组、查表模块组、用户自定义函数模块组、数学运算模块组、非线性模块组、输出池模块组、信号与系统模块组、子系统模块组、常用模块组、其他工具箱与模块集等。3.2信号源模块组Simulink模块库中提供了丰富的信号源模块组,下面逐一介绍。3.2.1Clock模块时钟模块以及时钟模块的属性如图31所示。
图31时钟模块
时钟模块如图31所示,在Simulink仿真中,时钟模块主要用于计时,效果很直观。在时钟模块的属性窗口中:(1) Display time: 如果该复选框被选中,则该时钟模块在仿真过程中,界面将显示时间,如果不显示,则可将其输入到工作区中。(2) Decimation: 默认为10,Decimation的数值可以为任意整数,在仿真过程中,随着时钟不断地更新,其数值不断增加,例如对于10s的仿真,系统Decimation默认为10,则表示系统将以1s、2s、3s、、10s依次递增。搭建时钟模块如图32所示。运行仿真文件,输出结果如图33所示。
图32时钟使用
图33时钟模块示波器时钟变化图
3.2.2Digital Clock模块数字时钟模块以及数字时钟模块的属性如图34所示。
图34数字时钟模块
图35Digital Clock模块使用
在Simulink仿真中,数字时钟模块主要用于离散系统的计时,该模块能够输出保持前一次的值不变。对于其属性窗口: Sample time表示采样时间,默认值为1s。搭建Digital Clock模块如图35所示。运行仿真文件,输出结果如图36所示。
图36Digital Clock模块示波器时钟变化图
3.2.3Constant模块Constant模块,表示常数输入,其模块属性如图37所示。
图37Constant模块
在Simulink仿真中,常数模块主要用在输入的量为定值的情况。对于其属性窗口:(1) Constant value: 表示常数值,由用户指定。(2) Sample time: 表示采样时间,默认值为inf,也可以设置为与系统的采样时间相一致。搭建Constant模块如图38所示。
图38Constant模块使用
运行仿真文件,输出结果如图39所示。
图39Constant模块示波器时钟变化图
3.2.4BandLimited White Noise模块BandLimited White Noise模块产生服从正态分布的随机数,用于混合系统或者连续系统,用户可以采样该模块产生比系统最小时间常数更小的相关时间的随机序列来模拟白噪声的效果,通常噪声的相关时间t可计算如下:
t=2100fmax
其中,fmax(rads)表示系统的带宽。采用时间t作为换算因子,保证了一个连续系统对我们需要近似模拟的白噪声应具有的系统方差系统噪声,BandLimited White Noise模块属性如图310所示。
图310BandLimited White Noise模块
对于其属性窗口:(1) Noise power: 表示白噪声PSD的幅度,默认值为0.1。(2) Sample time: 表示采样时间,默认值为0.1。(3) Seed: 表示随机数信号发生器的初始种子,默认值为[23341]。搭建BandLimited White Noise模块如图311所示。
图311BandLimited White Noise模块使用
运行仿真文件,输出结果如图312所示。
图312BandLimited White Noise模块示波器时钟变化图
3.2.5Chirp Signal模块Chirp Signal模块产生频率随时间线性增加的正弦信号,即调频信号,该模块可用于非线性系统的谱分析,且以矢量或标量输出。Chirp Signal模块的模块属性如图313所示。
图313Chirp Signal模块
对于其属性窗口:(1) Initial frequency(Hz): 表示信号的初始化频率,指定为标量或矢量,默认值为0.1。(2) Target time(secs): 表示频率变化的最大时间,默认值为100。(3) Frequency at target time(Hz): 表示对应目标时间的信号频率,输入为矢量或标量,默认值为1。搭建Chirp Signal模块如图314所示。
图314Chirp Signal模块使用
运行仿真文件,输出结果如图315所示。
图315Chirp Signal模块示波器时钟变化图
3.2.6Sine Wave模块Sine Wave正弦波模块,产生如下形式的正弦波:
f(t)=Ampsin(Freqt Phase) Bias
其中,Amp为正弦波振幅,Freq为正弦波的频率,Phase为初始相位,Bias为正弦波上下移动的常量。Sine Wave正弦波的模块属性如图316所示。
图316Sine Wave正弦波模块
对于其属性窗口:(1) Amplitude: 表示正弦信号的振幅,指定为标量或矢量,默认值为1。(2) Bias: 表示正弦信号离0均值线的偏移量,默认值为0。(3) Frequencyradsec: 表示对应目标信号频率,输入为矢量或标量,默认值为1。(4) Phase(rad): 表示信号的初始相位,默认值为0。(5) Sample time: 表示系统采样时间。(6) Inter vector parameters as 1D: 该复选框可以选中,也可以不选,选中表示信号按照一行的数据矢量进行输出; 不勾选,则信号以列向量存储。搭建Sine Wave模块如图317所示。
图317Sine Wave模块使用
运行仿真文件,输出结果如图318所示。
图318Sine Wave模块示波器时钟变化图
3.2.7Pulse Generator模块Pulse Generator模块产生等间隔的脉冲波形,脉冲宽度就是脉冲持续高电平期间的数字采样周期数,脉冲周期等于脉冲持续高电平、低电平的数字采样周期之和,相位延迟则是起始脉冲所对应的数字采样周期数。Pulse Generator的模块属性如图319所示。
图319Pulse Generator模块
对于其属性窗口:(1) Amplitude: 表示脉冲信号的振幅,指定为标量或矢量,默认值为1。(2) Periodsecs: 表示脉冲数字采样周期,默认值为10。(3) Pulse width(%of period): 表示脉冲宽度,输入为矢量或标量,默认值为5。(4) Phase delay(secs): 表示信号的相位延迟,默认值为0。(5) Inter vector parameters as 1D: 该复选框可以选中,也可以不选,选中表示信号按照一行的数据矢量进行输出; 不勾选,则信号以列向量存储。搭建Pulse Generator模块如图320所示。
图320Pulse Generator模块使用
运行仿真文件,输出结果如图321所示。
图321Pulse Generator模块示波器时钟变化图
3.2.8Random Number模块Random Number模块产生服从正态分布的随机信号,在每次仿真开始时,种子都设置为指定的值,默认的情况下,产生方差为1、均值为0的随机信号。如果想获得均匀分布的随机信号,则可以使用Uniform Random Number模块; 如果仿真器对于比较平滑的信号能够积分,那么对于随机波动的信号进行积分运算,则需要采用BandLimited White Noise信号。Random Number的模块属性如图322所示。对于其属性窗口:(1) Mean: 表示随机信号的均值,指定为标量或矢量,默认值为0。(2) Variance: 表示随机信号的方差,默认值为1。(3) Seed: 表示随机种子,输入为矢量或标量,默认值为0。(4) Sample time: 表示信号的采样时间,默认值为0.1。搭建Random Number模块如图323所示。运行仿真文件,输出结果如图324所示。
图322Random Number模块
图323Random Number模块使用
图324Random Number模块示波器时钟变化图
3.2.9Step模块Step模块产生阶跃信号,Step常用于控制系统仿真中,用于测试系统的稳定性和敛散性。Step模块在指定时间产生一个可定义上、下电平的阶跃信号,Step产生一个矢量或标量进行输出。Step的模块属性如图325所示。
图325Step模块
对于其属性窗口:(1) Step time: 表示初始阶跃的时间,指定为标量或矢量,系统默认值为1。(2) Initial value: 表示仿真的初始时间,系统默认值为0。(3) Final time: 表示仿真的结束时间,输入为矢量或标量,系统默认值为1。(4) Sample time: 表示信号的采样时间,系统默认值为0。搭建Step模块如图326所示。运行仿真文件,输出结果如图327所示。
图326Step模块使用
图327Step模块示波器时钟变化图
3.2.10Uniform Random Number模块Uniform Random Number模块产生在整个指定时间周期内均匀分布的随机信号,信号的起始种子可由用户指定。将Seed种子指定为矢量,可以产生矢量随机数序列。Uniform Random Number的模块属性如图328所示。
图328Uniform Random Number模块
对于其属性窗口:(1) Minimum: 表示时间间隔的最小值,指定为标量或矢量,系统默认值为-1。(2) Maximum: 表示时间间隔的最大值,指定为标量或矢量,系统默认值为1。(3) Seed: 表示随机序列发生器的初始种子,输入为矢量或标量,系统默认值为0。(4) Sample time: 表示信号的采样时间,系统默认值为0.1。搭建Uniform Random Number模块如图329所示。运行仿真文件,输出结果如图330所示。
图329Uniform Random Number
模块使用
图330Uniform Random Number模块示波器
时钟变化图
3.3连续模块组连续模块仿真主要用于系统的积分分析。对于一个系统而言,传递函数的构建显得尤为重要。3.3.1Derivative模块Derivative模块表示微分环节,为时间的一阶导数ut,其中,u为输入的变化量,t为前两次仿真时间点之差。Derivative模块的仿真精度取决于时间步长t,步长越小,结果越平滑,相应的结果越精确。如果输入为离散信号,当输入变化时,输入的连续导数是冲击信号,否则为0。为得到离散型系统的离散导数,可采用
y(k)=1t[u(k)-u(k-1)]
相应的Z变换为
Y(z)u(z)=1-z-1t=z-1tz
Derivative的模块属性如图331所示。
图331Derivative模块
对于其属性窗口: Coefficient c in the transfer function approximation s(c*s 1) used for linearization表示步长的设置,指定为标量或矢量,默认值为inf无穷大。搭建Derivative模块如图332所示。运行仿真文件,输出结果如图333所示。
图332Derivative模块使用
图333Derivative模块示波器时钟变化图
3.3.2Integrator模块Integrator模块表示积分环节,为时间的一阶导数udt,其中,u为输入的变化量,dt为前两次仿真时间点之差。Integrator的模块属性如图334所示。
图334Integrator模块
对于其属性窗口:(1) External reset: 设置信号的触发事件rising、falling、either、level、level hold和none,默认设置为none,即保持系统原态。(2) Initial condition source: 表示参数输入的状态,分为外部输入external和内部输入internal,通常默认设置为internal。(3) Initial condition: 表示状态的初始条件,用于设置Initial condition source的参数。(4) Limit output: 若选中,则可以设置积分的上界Upper saturation limit和下界Lower saturation limit。(5) Upper saturation limit: 表示积分上界,默认值为inf。(6) Lower saturation limit: 表示积分下界,默认值为inf。(7) Show saturation port: 若选中,则表示模块增加一个饱和输出端口。(8) Show state port: 若选中,则表示模块增加一个输出端口。(9) Absolute tolerance: 表示模块状态的绝对容限,默认值为auto。(10) Ignore limit and reset when linearizing: 若勾选此选项,则表示当系统为线性化系统时,前面的积分上下限制和触发事件无效,默认为不勾选。(11) Enable zerocrossing detection: 使系统通过零点检验,默认勾选。搭建Integrator模块如图335所示。运行仿真文件,输出结果如图336所示。
图335Integrator模块使用
图336Integrator模块示波器时钟变化图
3.3.3Transfer Fcn模块Transfer Fcn模块用于表征传递函数,具体的传递函数的表达式如下:
H(s)=y(s)u(s)=ansn an-1sn-1 a1s a0bmsm bm-1sm-1 b1s b0
其中,y(s)为系统输出,u(s)为系统输入,传递函数的计算则通过用户得到的系统模型而来,对于一个收敛性系统而言,分母中s的最高次幂大于分子中s的最高次幂。Transfer Fcn的模块属性如图337所示。
图337Transfer Fcn模块
对于其属性窗口:(1) Numerator coefficients: 表示传递函数分子系数,系统默认值为[1]。(2) Denominator coefficients: 表示传递函数分母系数,系统默认值为[1 1]。(3) Absolute tolerance: 表示模块状态的绝对容限,默认值为auto。(4) State Namee.g., ''position'': 表示状态空间的名字,用户可以不加以定义。搭建Transfer Fcn模块如图338所示。运行仿真文件,输出结果如图339所示。
图338Transfer Fcn模块使用
图339Transfer Fcn模块示波器时钟变化图
3.3.4Transport Delay模块Transport Delay模块用于延时系统的输入,延时的时间可以由用户指定。在仿真过程中,模块将输入点和仿真时间存储在一个缓冲器内,该缓冲器的容量由Initial buffer size参数指定。若输入点数超出缓冲器的容量,模块将配置额外的存储区。Transport Delay模块不能对离散信号进行插值计算,模块返回区间t-tdelay当前时间减去时间延迟对应的离散值。Transport Delay的模块属性如图340所示。
图340Transport Delay模块
对于其属性窗口:(1) Time delay: 表示系统延时量,系统默认值为1。(2) Initial output: 表示系统在开始仿真和Time delay之间产生的输出,系统默认值为0。(3) Initial buffer size: 表示储存点数的初始存储区配置,系统默认值为auto。(4) Use fixed buffer size: 储存点数的初始存储区配置为固定值,用户可以不加以定义。搭建Transport Delay模块如图341所示。运行仿真文件,输出结果如图342所示。
图341Transport Delay模块使用
图342Transport Delay模块示波器时钟变化图
3.3.5ZeroPole模块ZeroPole模块用于表征一个以Laplace算子s为变量的零点、极点和增益的系统,其传递函数可表示为:
H(s)=y(s)u(s)=ansn an-1sn-1 a1s a0bmsm bm-1sm-1 b1s b0
它的变形为以s为变量的零点、极点和增益的系统,如下:
H(s)=KZ(s)P(s)=K(s-Z(1))(s-Z(2))(s-Z(n))(s-P(1))(s-P(2))(s-P(m))
其中,Z代表零点; P为极点矢量; K为增益。ZeroPole模块的输入和输出宽度等于零点矩阵的行数。ZeroPole的模块属性如图343所示。
图343ZeroPole模块
对于其属性窗口:(1) Zeros: 表示系统传递函数零点向量,系统默认值为[1]。(2) Poles: 表示系统传递函数极点向量,系统默认值为[0 -1]。(3) Gain: 表示系统传递函数增益向量,系统默认值为[1]。(4) Absolute tolerance: 表示模块状态的绝对容限,系统默认值为auto。(5) State Namee.g., ''position'': 表示状态空间的名字,用户可以不加以定义。搭建ZeroPole模块如图344所示。运行仿真文件,输出结果如图345所示。
图344ZeroPole模块使用
图345ZeroPole模块示波器时钟变化图
3.3.6StateSpace模块StateSpace模块用于表征一个控制系统的状态空间,具体的状态空间的表达式如下:
x=Ax Bu
y=Cx Du
其中,x为状态矢量; u为输入矢量; y为输出矢量。StateSpace的模块属性如图346所示。
图346StateSpace模块
对于其属性窗口:
(1) A: 表示系统状态空间矩阵系数,必须是一个nn矩阵,n为状态数,系统默认值为1。(2) B: 表示系统状态空间矩阵系数,必须是一个nm矩阵,m为状态数,系统默认值为1。(3) C: 表示系统状态空间矩阵系数,必须是一个rn矩阵,r为状态数,系统默认值为1。(4) D: 表示系统状态空间矩阵系数,必须是一个rm矩阵,系统默认值为1。(5) Initial conditions: 表示初始状态矢量,系统默认值为0。(6) Absolute tolerance: 表示模块状态的绝对容限,系统默认值为auto。(7) State Namee.g., ''position'': 表示状态空间的名字,用户可以不加以定义。搭建StateSpace模块如图347所示。运行仿真文件,输出结果如图348所示。
图347StateSpace模块使用
图348StateSpace模块示波器时钟变化图
3.4离散模块组现实系统中有很多系统都是离散系统,系统根据采样时间点进行数据采集分析,Simulink中离散系统的表征主要是根据Z变换进行系统仿真建模。3.4.1Discrete Transfer Fcn模块对于Discrete Transfer Fcn模块,由通常的拉普拉斯变换后,得到相应的传递函数,再经过Z变换,得到离散系统传递函数,具体如下:
H(z)=num(z)den(z)=anzn an-1zn-1 a0z0bmzm bm-1zm-1 b0z0
其中,num(z)为离散系统传递函数的分子系数,den(z)为离散系统传递函数的分母系数。Discrete Transfer Fcn的模块属性如图349所示。
图349Discrete Transfer Fcn模块
对于其属性窗口:(1) Numerator: 表示系统分子系数矢量,系统默认值为[1]。(2) Denominator: 表示系统分母系数矢量,系统默认值为[1 2]。(3) Sample time(-1 for inherited): 表示系统采样时间,系统默认值为[-1]。(4) Initial states: 表示系统初始状态矩阵,系统默认值为0。搭建Discrete Transfer Fcn模块,设置采样时间为0.1s,如图350所示。运行仿真文件,输出结果如图351所示。
图350Discrete Transfer Fcn模块使用
图351Discrete Transfer Fcn模块示波器时钟变化图
3.4.2Discrete Filter模块Discrete Filter模块可实现无限冲激响应IIR和有限冲激响应FIR滤波器,用户可用Numerator和Denominator参数指定以z-1的升幂为矢量的分子和分母多项式的系数。分母的阶数大于或等于分子的系数。Discrete Filter模块提供了自动控制中用z描述离散系统的方法。在信号处理中,Discrete Filter模块提供了z-1延迟算子多项式以描述数字滤波器。Discrete Filter的模块属性如图352所示。
图352Discrete Filter模块
对于其属性窗口:(1) Numerator: 表示系统分子系数矢量,系统默认值为[1]。(2) Denominator: 表示系统分母系数矢量,系统默认值为[12]。(3) Sample time: 表示系统采样时间,系统默认值为-1。(4) Initial states: 表示系统初始状态矩阵,系统默认值为0。搭建Discrete Filter模块,设置采样时间为0.1s,如图353所示。运行仿真文件,输出结果如图354所示。
图353Discrete Filter模块使用
图354Discrete Filter模块示波器时钟变化图
3.4.3Unit Delay模块Unit Delay模块将输入矢量延迟,并保持在同一个采样周期里。若模块的输入为矢量,则系统所有输出量均被延迟一个采样周期,本模块相当于一个z-1的时间离散算子。Unit Delay的模块属性如图355所示。
图355Unit Delay模块
对于其属性窗口:(1) Initial condition: 在模块未被定义时,模块的第一个仿真周期按照正常非延迟状态输出,系统默认值为0。(2) Input processing: 表示基于采样的元素通道。(3) Sample time(-1 for inherited): 表示系统采样时间,系统默认值为-1。搭建Unit Delay模块,设置采样时间为0.1s,如图356所示。运行仿真文件,输出结果如图357所示。
图356Unit Delay模块使用
图357Unit Delay模块示波器时钟变化图
3.4.4Memory模块Memory模块将前一个集成步的输入作为输出,相当于对前一个集成步内的输入进行采样保持。Memory的模块属性如图358所示。
图358Memory模块
对于其属性窗口:(1) Initial condition: 表示系统初始集成步的输出,系统默认值为0。(2) Inherit sample time: 系统默认不被选中,若选中该复选框,表示使系统采样时间从驱动模块继承。搭建Memory模块,设置采样时间为0.1s,如图359所示。运行仿真文件,输出结果如图360所示。
图359Memory模块使用
图360Memory模块示波器时钟变化图
3.4.5Discrete ZeroPole模块对于Discrete ZeroPole模块,由通常的拉普拉斯变换后,得到相应的传递函数,再经过Z变换,得到离散系统传递函数,具体如下:
H(z)=num(z)den(z)=anzn an-1zn-1 a0z0bmzm bm-1zm-1 b0z0
转化为离散零极点传递函数为
H(z)=KZ(z)P(z)=K(z-Z1)(z-Z 2)(z-Zn)(z-P1)(z-P2)(z-Pm)
其中,Z表示零点矢量; P表示极点矢量; K表示系统增益。系统要求mn,若极点和零点是复数,它们必须是复共轭对。Discrete ZeroPole的模块属性如图361所示。
图361Discrete ZeroPole模块
对于其属性窗口:(1) Zeros: 表示系统零点矩阵,系统默认值为[1]。(2) Poles: 表示系统极点矩阵,系统默认值为[00.5]。(3) Gain: 表示系统增益,系统默认值为1。(4) Sample time(-1 for inherited): 表示系统采样时间,系统默认值为1。搭建Discrete ZeroPole模块,设置采样时间为0.1s,如图362所示。运行仿真文件,输出结果如图363所示。
图362Discrete ZeroPole模块使用
图363Discrete ZeroPole模块示波器时钟变化图
3.4.6Discrete StateSpace模块Discrete StateSpace模块可实现如下的离散系统:
x(n 1)=Ax(n) Bu(n)
y(n)=Cx(n) Du(n)
其中,u为输入; x为状态; y为输出。Discrete StateSpace的模块属性如图364所示。
图364Discrete StateSpace模块
对于其属性窗口:(1) A: 表示系统状态空间矩阵系数,必须是一个nn矩阵,n为状态数,系统默认值为1。(2) B: 表示系统状态空间矩阵系数,必须是一个nm矩阵,m为状态数,系统默认值为1。(3) C: 表示系统状态空间矩阵系数,必须是一个rn矩阵,r为状态数,系统默认值为1。(4) D: 表示系统状态空间矩阵系数,必须是一个rm矩阵,系统默认值为1。(5) Initial conditions: 表示初始状态矢量,系统默认值为0。(6) Sample time(-1 for inherited): 表示系统采样时间,系统默认值为1。搭建Discrete StateSpace模块,设置采样时间为0.1s,如图365所示。运行仿真文件,输出结果如图366所示。
图365Discrete StateSpace使用
图366Discrete StateSpace模块示波器时钟变化图
3.4.7ZeroOrder Hold模块ZeroOrder Hold模块实现一个以指定采样率的采样与保持函数操作,模块接收一个输入,并产生一个输出,输入和输出可以是标量或矢量。ZeroOrder Hold的模块属性如图367所示。
图367ZeroOrder Hold模块
对于其属性窗口: Sample time(-1 for inherited)表示系统采样时间,系统默认值为1。搭建ZeroOrder Hold模块,设置采样时间为0.1s,如图368所示。运行仿真文件,输出结果如图369所示。
图368ZeroOrder Hold使用
图369ZeroOrder Hold模块示波器时钟变化图
3.5查表模块组MATLAB Simulink查表模块分为一维查找表模块1D Lookup Table和二维查找表模块2D Lookup Table,主要实现信号的插值功能。(1) 一维查找表模块: 可实现对单路输入信号的查表和线性插值。(2) 二维查找表模块: 根据给定的二维平面网格上的高度值,把输入的两个变量经过查找表、插值,计算出模块的输出值,并返回该值。3.5.11D Lookup Table模块一维查找表模块的模块属性如图370所示。
图3701D Lookup Table模块
对于其属性窗口:(1) Number of table dimensions: 一维查找表模块默认为1,表示是一维的查表数据。(2) Table data: 系统默认为tanh[-5:5],双曲正切函数,取值范围为-5到5之间。搭建1D Lookup Table模块,设置采样时间为0.1s,如图371所示。运行仿真文件,输出结果如图372所示。
图3711D Lookup Table使用
图3721D Lookup Table模块示波器时钟变化图
3.5.22D Lookup Table模块2D Lookup Table模块的属性如图373所示。
图3732D Lookup Table模块
对于其属性窗口:(1) Number of table dimensions: 一维查找表模块默认为1,表示一维的查表数据。(2) Table data: 系统默认为tanh[-5:5],双曲正切函数,取值范围为-5到5之间。搭建2D Lookup Table模块,设置采样时间为0.1s,如图374所示。运行仿真文件,输出结果如图375所示。
图3742D Lookup Table使用
图3752D Lookup Table模块示波器时钟变化图
3.6用户自定义函数模块组MATLAB Simulink提供了用户自定义函数模块,该模块可方便用户设计自己的仿真模型,实现模型的易移植性等特点。3.6.1Fcn模块Fcn模块用于实现系统的数学表达式快捷计算,ui表示矢量的第i个元素。MATLAB数学函数包括abs、acos、asin、cos、log和tanh等。模块的输入可以是一个标量或矢量,输出总为标量。Fcn的模块属性如图376所示。
图376Fcn模块
对于其属性窗口: Expression表示系统默认方程式为sinu1*exp2.3*-u2,用于函数定义。搭建Fcn模块,设置采样时间为0.1s,如图377所示。运行仿真文件,输出结果如图378所示。
图377Fcn使用
图378Fcn模块示波器时钟变化图
3.6.2MATLAB Fcn模块MATLAB Fcn模块便于用户快速定义自己的函数,且能够完全适应Fcn模块。MATLAB Fcn模块具有较强的程序移植功能,用户可以开发相应的算法,这也是一种嵌入式编程。MATLAB Fcn的模块属性如图379所示。
图379Fcn模块
如图379所示MATLAB Fcn模块,双击该模块,将弹出其程序编写窗口,用户可以在此窗口下输入如下代码:
function y = fcnu
%生成代码
y = sinu*cosu.^.2 expsinu;
搭建MATLAB Fcn模块,设置采样时间为0.1s,如图380所示。运行仿真文件,输出结果如图381所示。
图380MATLAB Fcn使用
图381MATLAB Fcn模块示波器时钟变化图
3.6.3SFunction模块用户可以编写M文件供SFunction模块调用,需要遵循SFunction函数的格式,该模块允许附加参数直接赋给SFunction。SFunction有两个端口,一个输入端口,一个输出端口,输入端口的维数可以由用户函数指定,主要以行向量的形式进行输入和输出。SFunction的模块属性如图382所示。
图382SFunction模块
对于其属性窗口:(1) SFunction name: 表示SFunction的函数文件名称,单击Edit按钮即可打开该函数文件。(2) SFunction parameters: 表示SFunction模块的参数,一般默认为空。(3) SFunction modules: 表示SFunction模块,默认为",一般无须编辑,采用系统默认设置。采用PID控制器对正弦函数进行控制,SFunction程序如下:
function [sys,x0,str,ts] = spacemodelt,x,u,flag
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=mdlDerivativest,x,u;
case 3,
sys=mdlOutputst,x,u;
case {2,4,9}
sys=[];
otherwise
error[''Unhandled flag = '',num2strflag];
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 0;
sizes.NumDiscStates= 0;
sizes.NumOutputs = 1;
sizes.NumInputs= 3;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;%至少需要一个采样点
sys = simsizessizes;
x0= [];
str = [];
ts= [0 0];
function sys=mdlOutputst,x,u
kp=10;
ki=2;
kd=1;
ut=kp*u1 ki*u2 kd*u3;
sys1=ut;
控制对象SFunction程序如下:
function [sys,x0,str,ts] = spacemodelt,x,u,flag
switch flag,
case 0,
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,
sys=mdlDerivativest,x,u;
case 3,
sys=mdlOutputst,x,u;
case {2,4,9}
sys=[];
otherwise
error[''Unhandled flag = '',num2strflag];
end
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates= 2;
sizes.NumDiscStates= 0;
sizes.NumOutputs = 1;
sizes.NumInputs= 1;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 1;%至少需要一个采样点
sys = simsizessizes;
x0= [0;0];
str = [];
ts= [0 0];
function sys=mdlDerivativest,x,u %时变模型
ut=u1;
J=20 10*sin6*pi*t;
K=400 300*sin2*pi*t;
sys1=x2;
sys2=-J*x2 K*ut;
function sys=mdlOutputst,x,u
sys1=x1;
搭建SFunction模块,设置采样时间为0.1s,如图383所示。
图383SFunction使用
运行仿真文件,输出结果如图384所示。
图384SFunction模块示波器时钟变化图
3.7数学运算模块组数学运算模块主要针对基本运算符号进行模块化设计,用户可以很方便地进行输入信号的加、减、乘、除等基本运算,从而加速模型设计。3.7.1Abs模块Abs模块用于绝对值操作,即对输入的矢量或者标量进行取绝对值运算。Abs的模块属性如图385所示。
图385Abs模块
对于其属性窗口: Enable zerocrossing detection表示开启模块的过零检测。搭建Abs模块,如图386所示。运行仿真文件,输出结果如图387所示。
图386Abs使用
图387Abs模块示波器时钟变化图
3.7.2Add模块Add模块用于加减运算,即对输入的矢量或标量进行加减操作。Add的模块属性如图388所示。
图388Add模块
对于其属性窗口: List of signs表示符号设置,可以设置为 -,表示第一个输入为正,第二个输入为负; 也可以为- ,表示第一个输入为负,第二个输入为正; 设置为,表示第一个输入为正,第二个输入为正; 设置为--,表示第一个输入为负,第二个输入为负; 系统默认为。搭建Add模块,如图389所示。运行仿真文件,输出结果如图390所示。
图389Add使用
图390Add模块示波器时钟变化图
3.7.3Divide模块Divide模块用于乘除运算,即对输入的矢量或标量进行乘除操作。Divide的模块属性如图391所示。
图391Divide模块
对于其属性窗口:(1) Number of inputs: 表示符号设置,可以设置为*,表示第一个输入为分子,第二个输入为分母; 也可以设置为*,表示第一个输入为分母,第二个输入为分子; 设置为**,表示第一个输入为分子,第二个输入为分子,两者直接相乘; 设置为,表示第一个输入为分母,第二个输入为分母,两者直接相乘; 系统默认为*。(2) Multiplication: 包括两个选项Elementwise.*和Matrix*。其中,Elementwise.*表示元素点乘,Matrix*表示矩阵相乘。搭建Divide模块,如图392所示。运行仿真文件,输出结果如图393所示。
图392Divide使用
图393Divide模块示波器时钟变化图
3.7.4Dot Product模块Dot Product模块用于点乘运算,即对输入的矢量或标量进行点乘操作,是Simulink提供的快捷模块。Dot Product的模块属性如图394所示。
图394Dot Product模块
对于其属性窗口:(1) Output minimum: 指定模块输出的最小值,默认是[]。(2) Output maximum: 指定模块输出的最大值,默认是[]。搭建Dot Product模块,如图395所示。运行仿真文件,输出结果如图396所示。
图395Dot Product使用
图396Dot Product模块示波器时钟变化图
3.7.5Gain模块Gain模块,即增益模块,用于对输入的矢量或标量乘以放大增益倍数,是Simulink提供的快捷模块。增益模块的输入可以为矩阵也可以为向量。Gain的模块属性如图397所示。
图397Gain模块
对于其属性窗口:(1) Gain: 表示输入的增益数值,可以为矩阵,也可以为数值,对输入的矢量或者标量进行点乘运算,实现放大或者缩小输入量的功能。(2) Multiplication: 包括两个选项Elementwise.*和Matrix*。其中,Elementwise.*表示元素点乘,Matrix*表示矩阵相乘。搭建Gain模块,如图398所示。运行仿真文件,输出结果如图399所示。
图398Gain使用
图399Gain模块示波器时钟变化图
3.7.6Complex to MagnitudeAngle模块Complex to MagnitudeAngle模块接受双精度复信号,Complex to MagnitudeAngle模块输出输入信号的幅值和相角,输入信号可以为矢量或者为标量。Complex to MagnitudeAngle的模块属性如图3100所示。
图3100Complex to MagnitudeAngle模块
对于其属性窗口: Output输出分为Magnitude、Angle和Magnitude and angle,分别用于输出输入信号的振幅、相角、振幅和相角。搭建Complex to MagnitudeAngle模块,如图3101所示。运行仿真文件,输出结果如图3102所示。
图3101Complex to MagnitudeAngle使用
图3102Complex to MagnitudeAngle模块示波器时钟变化图
3.7.7MagnitudeAngle to Complex模块MagnitudeAngle to Complex模块的输出信号为双精度复信号。MagnitudeAngle to Complex模块能将一个幅度和一个相角信号变换为复信号输出,输入信号可以为矢量或标量。如果输入信号是一个标量,则它映射到所有复输出信号的对应成分幅度或相角上。MagnitudeAngle to Complex的模块属性如图3103所示。
图3103MagnitudeAngle to Complex模块
对于其属性窗口: Input输入分为Magnitude、Angle和Magnitude and angle,分别为输入信号的振幅、相角、振幅和相角。搭建MagnitudeAngle to Complex模块,如图3104所示。运行仿真文件,输出结果如图3105所示。
图3104MagnitudeAngle to Complex使用
图3105MagnitudeAngle to Complex模块示波器时钟变化图
3.8非线性模块组非线性系统在实际中应用较多,由于理想的线性系统对于仿真控制存在很大的缺陷,因此,Simulink提供了可供用户使用的非线性模块组。3.8.1Backlash模块Backlash模块的主要功能是实现输入和输出变化同步。当输入量改变方向时,输入的初始变化对输出没有影响。存在回差的系统有如下三种可能:1 分离模式输入信号不控制输出,输出保持为常数;2 正向工作模式输入以正斜率上升,而输出等于输入减去死区宽度的一半;3 负向工作模式输入以负斜率上升,而输出等于输入加上死区宽度的一半。Backlash的模块属性如图3106所示。如果初始输入落在死区以外,Initial output参数值将决定模块是正向工作还是负向工作,并且决定在仿真开始时的输出是输入加上死区宽度的一半还是减去死区宽度的一半。
图3106Backlash模块
对于其属性窗口:(1) Deadband width: 表示死区宽度,系统默认为1。(2) Initial output: 表示初始输出值,默认值为0。(3) Initial processing: 设置为Elements as channels sample based,表示以数值元素进行输入输出。搭建Backlash模块,如图3107所示。运行仿真文件,输出结果如图3108所示。
图3107Backlash使用
图3108Backlash模块示波器时钟变化图
3.8.2Coulomb & Viscous Friction模块Coulomb & Viscous Friction模块用于建立库仑力和粘滞力模型。该模块建立的是在零点不连续而其余点线性的增益模型。偏置对应库仑力; 增益对应粘滞力。该模块由如下的函数表达式表示:
y=sign(u)(Gain|u|offset)
其中,y是输出,u是输入,Gain和offset为模块参数。Coulomb & Viscous Friction的模块属性如图3109所示。
图3109Coulomb & Viscous Friction模块
对于其属性窗口:(1) Coulomb friction valueOffset: 表示偏置,适应所有的输入,系统默认值为[1320]。(2) Coefficient of viscous frictionGain: 表示在非零输入点的信号增益,系统默认值为1。搭建Coulomb & Viscous Friction模块,如图3110所示。运行仿真文件,输出结果如图3111所示。
图3110Coulomb & Viscous Friction使用
图3111Coulomb & Viscous Friction模型示波器时钟变化图
3.8.3Dead Zone模块Dead Zone模块产生指定范围称为截止区内的零输出。用Start of dead zone和End of dead zone参数指定截止区的上下限值。该模块的输入和输出的关系如下:1 如果输入落在截止区域内,则输出为0;2 如果输入大于等于上限值,则输出为上限值;3 如果输入小于等于下限值,则输出为下限值。Dead Zone的模块属性如图3112所示。
图3112Dead Zone模块
对于其属性窗口:(1) Start of dead zone: 表示下限值,系统默认为-0.5。(2) End of dead zone: 表示上限值,系统默认为0.5。搭建Dead Zone模块,如图3113所示。运行仿真文件,输出结果如图3114所示。
图3113Dead Zone使用
图3114Dead Zone模块示波器时钟变化图
3.8.4Quantizer模块Quantizer模块是量化输入的模块,用于将平滑的输入信号变为阶梯状输出。模块接收并输出双精度信号,输出计算采用四舍五入法,产生与零点对称的输出,具体如下:
y=qround(uq)
其中,u为一个整数; q为Quantization interval参数,系统默认值为0.5。Quantizer的模块属性如图3115所示。
图3115Quantizer模块
对于其属性窗口: Quantization interval表示量化输出的时间间隔。Quantizer模块的输出允许值为nq,其中,n为一个整数,q为Quantization interval参数,系统默认值为0.5。搭建Quantizer模块,如图3116所示。运行仿真文件,输出结果如图3117所示。
图3116Quantizer使用
图3117Quantizer模块示波器时钟变化图
3.8.5Rate Limiter模块Rate Limiter模块限定通过该模块的信号的一阶导数,以使输出端的变化不超过指定界限,导数根据以下方程计算得到:
rate=u(i)-y(i-1)t(i)-t(i-1)
其中,u(i)和t(i)为当前模块的输入和时间,y(i-1)和t(i-1)为前一时间的输出和时间,输出通过将rate与Rising slew rate和Falling slew rate参数比较得出:1 如果rate大于Rising slew rate参数R,输出计算为
y(i)=tR y(i-1)
2 如果rate小于Falling slew rate参数F,输出计算为
y(i)=tF y(i-1)
3 如果rate大于Falling slew rate参数F,且小于Rising slew rate参数R,输出计算为
y(i)=u(i)
Rate Limiter的模块属性如图3118所示。
图3118Rate Limiter模块
对于其属性窗口:(1) Rising slew rate: 表示一个递增输入信号的导数极限,默认为1。(2) Falling slew rate: 表示一个递减输入信号的导数极限,默认为-1。(3) Initial condition: 表示系统初始化状态值,默认为0。搭建Rate Limiter模块,如图3119所示。运行仿真文件,输出结果如图3120所示。
图3119Rate Limiter使用
图3120Rate Limiter模块示波器时钟变化图
3.8.6Saturation模块Saturation模块用于对输入信号的上限、下限进行约束,如输入值大于等于上限; 则取上限值,如输入值小于等于下限,则取下限值。Saturation的模块属性如图3121所示。
图3121Saturation模块
对于其属性窗口:(1) Upper limit: 用于限定输入信号的上限,如输入值大于等于该值,则取该值,系统默认值为0.5。(2) Lower limit: 用于限定输入信号的下限,如输入值小于等于该值,则取该值,系统默认值为-0.5。搭建Saturation模块,如图3122所示。运行仿真文件,输出结果如图3123所示。
图3122Saturation使用
图3123Saturation模块示波器时钟变化图
3.9信号与系统模块组信号与系统模块主要对信号进行仿真运算,在信号系统中应用广泛,例如总线设置、数据存储、数据写和数据读操作等。Simulink库涵盖范围广,因此适用于多学科的交叉运算。3.9.1Bus Selector模块Bus Selector模块接受来自mux模块或者其他Bus Selector模块的信号,Bus Selector模块只有一个输入端口,输出端口的数量取决于Muxed output复选框的状态。Bus Selector的模块属性如图3124所示。
图3124Bus Selector模块
对于其属性窗口:(1) Signals in the bus: 此列表框显示在输入母线上的信号。(2) Secreted signals: 此列表框显示输出信号,可以通过Up、Down和Remove按钮进行信号的上下移动和删除,如果在Secreted signals列表选中的输出信号不是Bus Selector模块的输入,则信号前将以???显示。搭建Bus Selector模块,如图3125所示。运行仿真文件,输出结果如图3126所示。
图3125Bus Selector使用
图3126Bus Selector模块示波器时钟变化图
3.9.2Bus Creator模块Bus Creator模块的输入信号可以是矢量或标量信号,Bus Creator创建Bus输出信号,可供其他Bus模块调用。Bus Creator的模块属性如图3127所示。
图3127Bus Creator模块
对于其属性窗口:(1) Number of inputs: 表示输入信号的个数。(2) Secreted signals: 此列表框显示输入信号,可以通过Up、Down、Add和Remove按钮进行信号的上下移动、增加信号和删除信号,如果在Secreted signals列表选中的输出信号不是Bus Selector模块的输入,则信号前将以???显示。搭建Bus Creator模块,如图3128所示。运行仿真文件,输出结果如图3129所示。
图3128Bus Creator使用
图3129Bus Creator示波器时钟变化图
3.9.3Mux模块Mux模块将多个输入行合成为一个矢量行输出。每一个输入行可携带一个标量或矢量信号,模块输出为一个矢量。Mux的模块属性如图3130所示。
图3130Mux模块
对于其属性窗口:(1) Number of inputs: 表示输入信号的个数或者宽度。行输出的宽度等于行输入宽度之和。(2) Display option: 主要有三个选项none、names和bar。none表示Mux显示在模块图标的外观,names表示在每一个端口显示信号名,bar表示以实心前景色显示模块图标。搭建Mux模块,如图3131所示。运行仿真文件,输出结果如图3132所示。
图3131Mux使用
图3132Mux模块示波器时钟变化图
3.9.4Demux模块Demux模块将一个输入信号分成为多个行输出,每一行可包含一个标量或矢量信号,Simulink通过Number of outputs参数决定输出信号的行数或宽度。Demux的模块属性如图3133所示。
图3133Demux模块
对于其属性窗口:(1) Number of outputs: 表示输出信号的个数或者宽度。行输出的总宽度之和等于行输入宽度。(2) Display option: 主要有三个选项: none、names和bar。none表示Mux显示在模块图标的外观,names表示在每一个端口显示信号名,bar表示以实心前景色显示模块图标。搭建Demux模块,如图3134所示。运行仿真文件,输出结果如图3135所示。
图3134Demux使用
图3135Demux示波器时钟变化图
3.9.5Data Store Memory模块Data Store Memory模块用于定义共享数据存储区,该存储区是与Data Store Read模块和Data Store Write模块共享的存储空间。1 若Data Store Memory模块是在最高一级的系统中,则处于模型中任何位置的Data Store Read模块和Data Store Write模块都可以访问该数据存储区。2 若Data Store Memory模块处于子系统中,并且Data Store Read和Data Store Write模块也位于该子系统或位于子系统的模型分层结构的下级子系统中,则也能访问该数据存储区。Data Store Memory的模块属性如图3136所示。
图3136Data Store Memory模块
对于其属性窗口:(1) Data Store name: 表示正在定义的数据存储区的名字,系统默认值为字母A。(2) Initial value: 系统设定初始值为0,系统默认值为0。(3) Signal type: 通常仿真中需要指定,分为实数real、自动auto和复数complex。(4) Data type: 通常仿真中需要指定,分为double、auto、uint8、single、uint16、uint32、boolean、fixdt1,16和fixdt1,16,0等。搭建Data Store Memory模块,如图3137所示。运行仿真文件,输出结果如图3138所示。
图3137Data Store Memory使用
图3138Data Store Memory模块示波器时钟变化图
3.9.6Data Store Read模块Data Store Read模块从已经定义的一个共享数据存储区Data Store Memory模块中读取数值,Data Store Read模块和Data Store Write模块与Data Store Memory模块共享数据存储空间。Data Store Read的模块属性如图3139所示。
图3139Data Store Read模块
对于其属性窗口: Data store name表示正在定义的数据存储区的名字,默认值为字母A。搭建Data Store Read模块,如图3140所示。运行仿真文件,输出结果如图3141所示。
图3140Data Store Read使用
图3141Data Store Read模块示波器时钟变化图
3.9.7Data Store Write模块Data Store Write模块定义一个共享数据存储区Data Store Memory模块,将输入的数据源写入数值,并将该数值用Data Store Read读出和显示。Data Store Write模块和Data Store Read模块与Data Store Memory模块共享数据存储空间。Data Store Write的模块属性如图3142所示。
图3142Data Store Write模块
对于其属性窗口: Data Store name表示正在定义的数据存储区的名字,默认值为字母A。搭建Data Store Write模块,如图3143所示。
图3143Data Store Write使用
运行仿真文件,输出结果如图3144所示。
图3144Data Store Write模块示波器时钟变化图
3.9.8Enable模块加上Enable模块的子系统就成为使能激活子系统,只有当进入Enable端口的输入大于0时,这种子系统才运行。仿真运行时,Simulink按照初始条件将包含在使能子系统内的模块初始化,当一个使能子系统被激活而再启动时,States when enabling参数决定该子系统内模块的状态。Enable的模块属性如图3145所示。
图3145Enable模块
对于其属性窗口:(1) States when enabling: 指定当子系统再次被激活时,处理状态的方式。设置为Reset,表示按照初始条件设置状态,若不知道初始条件,则设置为0; 设为held表示保持原有状态。(2) Show output port: 若选中该选项,Simulink给Enable模块划分一个输出端口并输出使能信号。搭建Enable模块,如图3146所示。相应的子系统如图3147所示。
图3146Enable使用
图3147Enable子系统
运行仿真文件,输出结果如图3148所示。
图3148Enable模块示波器时钟变化图
3.9.9Ground模块Ground模块可用于链接那些输入端口未与其他模块相连的模块,若用户运行一个带有这样的模块的模型,则Simulink就会发布警告。若使用该Ground模块,将这些模块接地,可避免警示出现,Ground模块输出0值信号。Ground模块的输入类型和其他模块的数据类型相同。Ground的模块属性如图3149所示。
图3149Ground模块
搭建Ground模块,如图3150所示。运行仿真文件,输出结果如图3151所示。
图3150Ground使用
图3151Ground模块示波器时钟变化图
3.10本章小结本章主要介绍了Simulink各模块组的组件,包括信号源模块组、连续模块组、离散模块组、查表模块组、用户自定义函数模块组、数学运算模块组以及信号与系统模块组,并对每一个模块组的内部部件进行了Simulink模型构建和仿真,使得读者能够快速掌握该模块的使用。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.