云书斋 -MATLAB/Simulink系统仿真
本书资料更新时间:2025-01-20 15:50:05

MATLAB/Simulink系统仿真 下载 pdf 百度网盘 epub 免费 2025 电子书 mobi 在线

MATLAB/Simulink系统仿真精美图片
》MATLAB/Simulink系统仿真电子书籍版权问题 请点击这里查看《

MATLAB/Simulink系统仿真书籍详细信息

  • ISBN:9787302467403
  • 作者:暂无作者
  • 出版社:暂无出版社
  • 出版时间:2017-08
  • 页数:暂无页数
  • 价格:87.20
  • 纸张:胶版纸
  • 装帧:平装-胶订
  • 开本:32开
  • 语言:未知
  • 丛书:暂无丛书
  • TAG:暂无
  • 豆瓣评分:暂无豆瓣评分
  • 豆瓣短评:点击查看
  • 豆瓣讨论:点击查看
  • 豆瓣目录:点击查看
  • 读书笔记:点击查看
  • 原文摘录:点击查看
  • 更新时间:2025-01-20 15:50:05

寄语:

资深MATLAB与Simulink专家执笔,系统归纳和总结了智能算法的实战经验!书中提供了几十个系统仿真的典型实例,可以二次开发!MathWorks图书计划!8位MATLAB专家联袂推荐!MathWo


内容简介:

本书在MATLAB 2016a的基础上由浅入深地讲解了MATLAB/Simulink软件的知识,内容涉及面广、涵盖了用户需要使用的各种功能。本书编排合理,自始至终采用实例描述; 内容完整且各章相对独立,是一本极具参考价值的MATLAB/Simulink参考书。

本书分为三大部分共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常用命令库

 

 

参考文献


作者介绍:

李献  毕业于中国科学院研究生院,博士学位,硕士毕业于华中科技大学。毕业后留在中科院电工研究所应用超导重点实验室工作。主要从事电磁推进、脉冲强磁场以及脉冲功率电源的相关研究工作。在国内外期刊发表论文多篇,出版多部畅销图书。


出版社信息:

暂无出版社相关信息,正在全力查找中!


书籍摘录:

第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=2π100fmax

其中,fmax(rad/s)表示系统的带宽。采用时间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)=Amp·sin(Freq·t Phase) Bias

其中,Amp为正弦波振幅,Freq为正弦波的频率,Phase为初始相位,Bias为正弦波上下移动的常量。Sine Wave正弦波的模块属性如图316所示。

图316Sine Wave正弦波模块

对于其属性窗口: (1) Amplitude: 表示正弦信号的振幅,指定为标量或矢量,默认值为1。(2) Bias: 表示正弦信号离0均值线的偏移量,默认值为0。(3) Frequency(rad/sec): 表示对应目标信号频率,输入为矢量或标量,默认值为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) Period(secs): 表示脉冲数字采样周期,默认值为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模块表示微分环节,为时间的一阶导数ΔuΔt,其中,Δu为输入的变化量,Δt为前两次仿真时间点之差。Derivative模块的仿真精度取决于时间步长Δt,步长越小,结果越平滑,相应的结果越精确。如果输入为离散信号,当输入变化时,输入的连续导数是冲击信号,否则为0。为得到离散型系统的离散导数,可采用

y(k)=1Δt[u(k)-u(k-1)]

相应的Z变换为

Y(z)u(z)=1-z-1Δt=z-1Δt·z

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 Name(e.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 Name(e.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: 表示系统状态空间矩阵系数,必须是一个n×n矩阵,n为状态数,系统默认值为1。(2) B: 表示系统状态空间矩阵系数,必须是一个n×m矩阵,m为状态数,系统默认值为1。(3) C: 表示系统状态空间矩阵系数,必须是一个r×n矩阵,r为状态数,系统默认值为1。(4) D: 表示系统状态空间矩阵系数,必须是一个r×m矩阵,系统默认值为1。(5) Initial conditions: 表示初始状态矢量,系统默认值为0。(6) Absolute tolerance: 表示模块状态的容限,系统默认值为auto。(7) State Name(e.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表示系统增益。系统要求m≥n,若极点和零点是复数,它们必须是复共轭对。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: 表示系统状态空间矩阵系数,必须是一个n×n矩阵,n为状态数,系统默认值为1。(2) B: 表示系统状态空间矩阵系数,必须是一个n×m矩阵,m为状态数,系统默认值为1。(3) C: 表示系统状态空间矩阵系数,必须是一个r×n矩阵,r为状态数,系统默认值为1。(4) D: 表示系统状态空间矩阵系数,必须是一个r×m矩阵,系统默认值为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模块用于实现系统的数学表达式快捷计算,u(i)表示矢量的第i个元素。MATLAB数学函数包括abs、acos、asin、cos、log和tanh等。模块的输入可以是一个标量或矢量,输出总为标量。Fcn的模块属性如图376所示。

图376Fcn模块

对于其属性窗口: Expression表示系统默认方程式为sin(u(1)*exp(2.3*(-u(2)))),用于函数定义。搭建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 = fcn(u)

%生成代码

y = sin(u)*cos(u).^.2 exp(sin(u));

搭建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] = spacemodel(t,x,u,flag)

switch flag,

case 0,

[sys,x0,str,ts]=mdlInitializeSizes;

case 1,

sys=mdlDerivatives(t,x,u);

case 3,

sys=mdlOutputs(t,x,u);

case {2,4,9}

sys=[];

otherwise

error(['Unhandled flag = ',num2str(flag)]);

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 = simsizes(sizes);

x0= [];

str = [];

ts= [0 0];

function sys=mdlOutputs(t,x,u)

kp=10;

ki=2;

kd=1;

ut=kp*u(1) ki*u(2) kd*u(3);

sys(1)=ut;

控制对象SFunction程序如下: 

function [sys,x0,str,ts] = spacemodel(t,x,u,flag)

switch flag,

case 0,

[sys,x0,str,ts]=mdlInitializeSizes;

case 1,

sys=mdlDerivatives(t,x,u);

case 3,

sys=mdlOutputs(t,x,u);

case {2,4,9}

sys=[];

otherwise

error(['Unhandled flag = ',num2str(flag)]);

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 = simsizes(sizes);

x0= [0;0];

str = [];

ts= [0 0];

function sys=mdlDerivatives(t,x,u) %时变模型

ut=u(1);

J=20 10*sin(6*pi*t);

K=400 300*sin(2*pi*t);

sys(1)=x(2);

sys(2)=-J*x(2) K*ut;

function sys=mdlOutputs(t,x,u)

sys(1)=x(1);

搭建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 value(Offset): 表示偏置,适应所有的输入,系统默认值为[1320]。(2) Coefficient of viscous friction(Gain): 表示在非零输入点的信号增益,系统默认值为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=q·round(u/q)

其中,u为一个整数; q为Quantization interval参数,系统默认值为0.5。Quantizer的模块属性如图3115所示。

图3115Quantizer模块

对于其属性窗口: Quantization interval表示量化输出的时间间隔。Quantizer模块的输出允许值为n×q,其中,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)=Δt·R y(i-1)

(2) 如果rate小于Falling slew rate参数(F),输出计算为

y(i)=Δt·F 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、fixdt(1,16)和fixdt(1,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模型构建和仿真,使得读者能够快速掌握该模块的使用。


在线阅读/听书/购买/PDF下载地址:


原文赏析:

暂无原文赏析,正在全力查找中!


其它内容:

编辑推荐

(1) 资深作者编著,图书质量更有保证:一线资深工程师执笔,系统归纳和总结了智能算法的实战经验。(2) 提供配套源码,便于读者动手实践:理论必须联系实践,本书提供源代码下载,方便读者学习使用。(3) 内含丰富实例,利于读者二次开发:书中提供了十几个智能算法的典型实例,读者可以据此二次开发。(4) 提供配套课件,便于教师备课使用:配套提供了完整的教学课件资料,便于广大教师备课使用。配套学习资源下载地址为清华大学出版社网站本书页面。系列畅销图书如下:MATLAB 编程指南——计算、编程、仿真、算法及应用MATLAB/Simulink系统仿真MATLAB GUI程序设计MATLAB智能算法MATLAB数学建模MATLAB科学计算MATLAB信号处理MATLAB图像处理


书摘插图


媒体评论

专家评论★“科学与工程计算技术丛书”系列主题反映了MATLAB和Simulink汇集的领域——大规模编程、机器学习、科学计算、机器人等。我们高兴地看到“科学与工程计算技术丛书”支持MathWorks一直以来追求的目标:助您加速工程技术和科学研究。——Jim Tung (MathWorks Fellow)★ 《MATLAB/Simulink系统仿真》本书通过综合应用案例,透彻详尽的讲解了MATLAB/Simulink在各方面的应用。通过学习实际工程应用案例的具体操作,可以使读者快速的掌握MATLAB/Simulink系统仿真方法。——刘成龙(中国科学院)  ★ 《MATLAB/Simulink系统仿真》一书涉及面广,涵盖了一般用户需要使用的各种功能,并详细介绍了MATLAB/Simulink的使用。本书按逻辑编排,自始至终采用实例描述;内容完整且每章相对独立,是一本详细的MATLAB/Simulink参考书。——王  广(北京化工大学)   ★ 《MATLAB/Simulink系统仿真》全书结合作者多年MATLAB/Simulink使用经验与实际工程应用案例,将MATLAB/Simulink软件的使用方法与技巧到详细地讲解给读者。本书在讲解过程中步骤详尽、内容新颖,讲解过程辅以相应的图片,使读者在阅读时一目了然,从而快速掌握书中所讲内容。——温  正(航天科技集团某研究所)    ★ 过学习实际工程应用案例的具体操作是掌握MATLAB/Simulink*好的方式。本书通过综合应用案例,透彻详尽的讲解了MATLAB/Simulink在各方面的应用。《MATLAB Simulink系统仿真》详细讲解了MATLAB/Simulink的基础知识和核心内容,围绕MATLAB/Simulink在工程问题中的应用进行仿真运算。对于从事Simulink开发的技术人员,该书具有较高的参考价值。——张  岩(北京航空航天大学)  ★ MATLAB/Simulink是用于动态系统和嵌入式系统的多领域仿真和基于模型的设计工具。《MATLAB/Simulink系统仿真》从MATLAB使用基础讲起,再辅以MATLAB/Simulink在工程中的应用案例,可以帮助读者尽快掌握MATLAB/Simulink进行工程应用分析的技能。——李  昕(天津光电集团)  ★ 《MATLAB/Simulink系统仿真》以MATLAB 2016a版为基础,由浅入深地全面讲解了MATLAB/Simulink软件的知识,内容涉及面广,涵盖了一般用户需要使用的各种功能。本书按逻辑编排,自始至终采用实例描述;内容完整且每章相对独立,是一本较为有参考价值的MATLAB/Simulink参考书。——付文利 (烽火通信集团)   


前言

前言

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

编者



书籍真实打分

  • 故事情节:5分

  • 人物塑造:9分

  • 主题深度:5分

  • 文字风格:4分

  • 语言运用:9分

  • 文笔流畅:8分

  • 思想传递:5分

  • 知识深度:5分

  • 知识广度:4分

  • 实用性:3分

  • 章节划分:9分

  • 结构布局:7分

  • 新颖与独特:6分

  • 情感共鸣:4分

  • 引人入胜:5分

  • 现实相关:7分

  • 沉浸感:3分

  • 事实准确性:8分

  • 文化贡献:9分


网站评分

  • 书籍多样性:3分

  • 书籍信息完全性:4分

  • 网站更新速度:4分

  • 使用便利性:8分

  • 书籍清晰度:6分

  • 书籍格式兼容性:4分

  • 是否包含广告:9分

  • 加载速度:5分

  • 安全性:3分

  • 稳定性:8分

  • 搜索功能:9分

  • 下载便捷性:3分


下载点评

  • 全格式(403+)
  • 好评(127+)
  • 体验满分(577+)
  • 无缺页(632+)
  • 实惠(411+)
  • 书籍多(623+)

下载评价

  • 网友 寿***芳: ( 2025-01-08 22:26:28 )

    可以在线转化哦

  • 网友 沈***松: ( 2024-12-29 05:19:41 )

    挺好的,不错

  • 网友 后***之: ( 2025-01-19 10:49:51 )

    强烈推荐!无论下载速度还是书籍内容都没话说 真的很良心!

  • 网友 石***致: ( 2025-01-10 04:46:31 )

    挺实用的,给个赞!希望越来越好,一直支持。

  • 网友 温***欣: ( 2025-01-18 05:18:48 )

    可以可以可以

  • 网友 濮***彤: ( 2025-01-15 12:24:13 )

    好棒啊!图书很全

  • 网友 蓬***之: ( 2024-12-25 12:35:22 )

    好棒good

  • 网友 訾***晴: ( 2024-12-24 20:31:19 )

    挺好的,书籍丰富

  • 网友 扈***洁: ( 2025-01-07 05:15:18 )

    还不错啊,挺好

  • 网友 堵***洁: ( 2024-12-21 06:41:55 )

    好用,支持

  • 网友 冯***卉: ( 2024-12-30 13:58:22 )

    听说内置一千多万的书籍,不知道真假的


随机推荐