接下来 的系列视频打算按照如下计划进行。
![1143c289d93b4730ac50c7b3085da4a8.png](https://img-blog.csdnimg.cn/img_convert/1143c289d93b4730ac50c7b3085da4a8.png)
在现有的文献中,限于篇幅,仅对Simulink库中最常用的一些模块进行介绍。本教程尝试对所有模型进行详细描述(指Simulink Library Browser中的Simulink库)。
其次给出我最新整理的matlab学术绘图指令,强调图形句柄的使用以及线条配色的选取。
最后,利用Matlab中来学习自动控制原理中的一些核心概念。
在进入正题前,需要说明下模型的设置:
解算器采用定步长(Fixed-step, ode4),步长为 Ts= 1e-3;
模型的一些参数通过.m文件进行设置:
![ef944efd121a1db16318cbfa957cd8bf.png](https://img-blog.csdnimg.cn/img_convert/ef944efd121a1db16318cbfa957cd8bf.png)
数据输入(Source)
![92400f3e599dc1aa665113059843f911.png](https://img-blog.csdnimg.cn/img_convert/92400f3e599dc1aa665113059843f911.png)
Source库中的模块如上图所示
1、Clock & Digital Clock
![b48fa2d5b3fe2bec6d852d41ace115d1.png](https://img-blog.csdnimg.cn/img_convert/b48fa2d5b3fe2bec6d852d41ace115d1.png)
模拟时钟与数字最大区别在于:两个采样步长Ts之间,模拟时钟进行了数值插值,而数字时钟保持上一个Ts时刻的值,呈现零阶保持特性。
当Clock的Display time选中时,在实时运行中,图标会显示当前时间。
2、Constant
![f2426b2fa38a3aa26b052aa52cfa7d32.png](https://img-blog.csdnimg.cn/img_convert/f2426b2fa38a3aa26b052aa52cfa7d32.png)
常数模块比较简单,直接在 Constant value中输入想要的数值即可。文本框也支持数学表达式,如ones(1,4)... 或者符号变量,如先定义变量 TestValue =ones(1,4),再于文本框中输入TestValue。
Sample time中可以输入 0,inf,Ts 以及Ts的正整数倍。
Signal Attributes中可以限定 输出值的上下界、数据类型。
3、Step、Ramp、Sine Wave、Pulse Generator、Repeating Sequence
![236081d3a179cdb410946c13974b09c9.png](https://img-blog.csdnimg.cn/img_convert/236081d3a179cdb410946c13974b09c9.png)
在上述参数下的结果为
![0e7038ef924c1f7ccf49f92418baa12a.png](https://img-blog.csdnimg.cn/img_convert/0e7038ef924c1f7ccf49f92418baa12a.png)
4、Waveform Generator、 Chirp Signal、 Repeating Sequence Stair/ interpolated
![0f16e9f366094aef1c50130d49108079.png](https://img-blog.csdnimg.cn/img_convert/0f16e9f366094aef1c50130d49108079.png)
相应的结果为:
![d074660bd4ca38a9c83e045f85b4d71b.png](https://img-blog.csdnimg.cn/img_convert/d074660bd4ca38a9c83e045f85b4d71b.png)
5、Counter Free-Running、Counter limited、Random Number、Band-limited White noise、Uniform Random Number
![3a626779344ead7f1861e881b20dc838.png](https://img-blog.csdnimg.cn/img_convert/3a626779344ead7f1861e881b20dc838.png)
![853ccffd9bcfb7b4a037c726a1584d44.png](https://img-blog.csdnimg.cn/img_convert/853ccffd9bcfb7b4a037c726a1584d44.png)
在介绍接下来模块之前,先生成一些数据: .mat 文件、 .xls/.xlsx表格
Ts = 1e-3;
t = 0:Ts:1;
%% 生成工作区数据
SampleData = sin(2*pi*t*5); % 生成正弦数据
%% 生成 .mat 数据
SampleData_temp = timeseries(SampleData,t); % 生成时序数据
save('Sample.mat','SampleData_temp','-v7.3'); % 需要转换成7.3版本的数据
%% 生成excel 文件
XlsData = [t;SampleData]';
[m,n] = size(XlsData);
data_cell = mat2cell(XlsData,ones(m,1),ones(n,1)); % 将mat转化成 cell格式
title = {'time','Value'}; % 给数据添加 名称
result = [title;data_cell];
xlsFile = xlswrite('SampleData.xls',result); % 生成excel表格
6、Signal Generator、Signal Builder、Signal Editor
信号发生器(Signal Generator)比较简单,可以生成的波形有:正弦波、方波、锯齿波、随机波形。
信号构造器:
![00a2932e7fb9a0a44e618e901e9c401c.png](https://img-blog.csdnimg.cn/img_convert/00a2932e7fb9a0a44e618e901e9c401c.png)
![23426a8f4a5ac8fb29c109b3d394aeab.png](https://img-blog.csdnimg.cn/img_convert/23426a8f4a5ac8fb29c109b3d394aeab.png)
信号编辑器
![f0676a4430a41e9dc3e0d7ec747706a5.png](https://img-blog.csdnimg.cn/img_convert/f0676a4430a41e9dc3e0d7ec747706a5.png)
![abff0336f13b330f65423f560156eedd.png](https://img-blog.csdnimg.cn/img_convert/abff0336f13b330f65423f560156eedd.png)
7、From Workspace、From File、 From Spreadsheet
![f20d3fb2a0aacf3ad82e4208a39fe627.png](https://img-blog.csdnimg.cn/img_convert/f20d3fb2a0aacf3ad82e4208a39fe627.png)
![72633ea3a651b3608b6c3085a85d2552.png](https://img-blog.csdnimg.cn/img_convert/72633ea3a651b3608b6c3085a85d2552.png)
8、Ground、In1、In Bus Element
Ground 模块主要用于防止 模型编译时,对未连接输入端口的报的警告信息。一般用不着。
In1 和In Bus Element 通常存在于 子系统(subsystem)中,在后面相应位置介绍。
9、Enumerated Constant
太不常用了。待填坑吧。