创建一个简单的模型
你可以使用Simulink®建模一个系统,然后模拟该系统的动态行为。在本教程中用于创建简单模型的基本技术与用于更复杂模型的基本技术相同。这个例子模拟了汽车的简化运动。通常情况下,汽车是在踩油门的时候行驶的。松开踏板后,汽车空转并停下来。
Simulink块是一个模型元素,它定义了输入和输出之间的数学关系。要创建这个简单的模型,您需要四个Simulink块。
块名称 | 块的目的 | 模型的目的 |
---|---|---|
脉冲发生器 | 为模型生成一个输入信号 | 代表油门踏板 |
获得 | 将输入信号乘以一个常数值 | 计算如何按下加速器影响汽车加速 |
积分器,二阶 | 对输入信号积分两次 | 从加速度获得位置 |
外港 | 指定一个信号作为模型的输出 | 将位置指定为模型的输出 |
在模拟该模型时,将一个短脉冲集成两次,得到一个斜坡。结果显示在作用域窗口中。输入脉冲表示踩下油门踏板-踩下踏板时为1,不踩下时为0。输出斜坡是到起点的不断增加的距离。
开放新模式
使用Simulink编辑器构建模型。
开始MATLAB®.在MATLAB工具条中,单击动态仿真模块按钮.
单击空白模型模板。
打开Simulink编辑器。
从模拟选项卡上,选择保存>保存为.在文件名称文本框中,输入模型的名称。例如,
simple_model
.点击保存.模型以文件扩展名保存.slx
.
开放动态仿真模块库浏览器
Simulink提供了一组块库,按照库浏览器中的功能进行组织。以下库对于大多数工作流都是通用的:
连续的——用于具有连续状态的系统的块
离散的——用于具有离散状态的系统的块
数学运算——实现代数和逻辑方程的块
接收器-存储和显示连接到它们的信号的块
源——生成驱动模型的信号值的块
从模拟选项卡,单击库浏览器按钮.
将Library Browser设置为停留在其他桌面窗口之上。在“Simulink库浏览器”工具栏上,选择保持领先按钮.
要浏览块库,请在左侧窗格中选择一个类别,然后选择一个功能区域。要搜索所有可用的块库,请输入搜索词。
例如,查找脉冲发生器块。在浏览器工具栏的搜索框中,输入脉冲
,按“Enter”。Simulink搜索库中的block with脉冲
,然后显示这些块。
获取关于块的详细信息。右键单击Pulse Generator块,然后选择“脉冲发生器”块的帮助.Help浏览器将打开该块的参考页面。
块通常有几个参数。您可以通过双击块来访问所有块参数。
向模型中添加块
要开始构建模型,请浏览库并添加块。
从
来源
库,将脉冲发生器块到Simulink编辑器。一份脉冲发生器属性的值的文本框出现在模型中振幅参数。输入1
.参数值在整个模拟过程中保持不变。
使用相同的方法将以下块添加到您的模型中。
块 图书馆 参数 获得 模型/数学操作
获得:
2
积分器,二阶 模型/连续
初始条件:
0
外港 模型/下沉
端口号:
1
再加一个外港通过复制现有的一个并使用键盘快捷键将其粘贴到另一个点来阻止。
您的模型现在已经拥有了所需的块。
通过单击和拖动每个块来排列块。要调整块的大小,请拖动一个角。
连接块
通过在输出端口和输入端口之间创建线来连接块。
按钮右侧的输出端口脉冲发生器块。
输出端口和所有适合连接的输入端口由蓝色雪佛龙符号表示.
指出看连接提示。
点击提示。Simulink用一条线和一个箭头连接这些块,指示信号流的方向。
连接输出端口获得块的输入端口积分器,二阶块。
的两个输出连接积分器,二阶阻挡到2外港块。
保存您的模型。在模拟选项卡上,单击保存.
添加信号查看器
若要查看模拟结果,请将第一个输出连接到信号查看器.
点击信号。在模拟选项卡下准备,点击添加查看器.选择范围.信号上出现一个查看器图标,并打开一个作用域窗口。
您可以通过双击图标随时打开作用域。
运行仿真
在模拟选项卡,通过更改工具条中的值来设置模拟停止时间。
的默认停止时间
10.0
适用于此模型。这个时间值没有单位。Simulink中的时间单位取决于方程是如何构造的。这个例子模拟了一辆汽车10秒的简化运动——其他模型的时间单位可能是毫秒或年。要运行模拟,请单击运行按钮.
模拟在查看器中运行并产生输出。
改进模型
这个例子采用了一个现有的模型,moving_car.slx
,并基于该运动模型建立接近传感器模型。在这个场景中,一个数字传感器测量汽车与10米(30英尺)外的障碍物之间的距离。该模型输出传感器测量值和汽车的位置,考虑这些条件:
汽车碰到障碍物时猛然停住。
在物理世界中,传感器测量的距离不精确,导致随机的数值误差。
数字传感器按固定时间间隔工作。
更改块参数
开始,打开moving_car
模型。在MATLAB命令行输入:
open_system (“moving_car.slx”)
你首先需要建模硬停时,汽车的位置达到10
.二阶积分器块有一个用于此目的的参数。
双击Integrator, Second-Order块。出现“块参数”对话框。
选择限制x并输入
10
为上限x.参数更改的背景颜色表示未应用于模型的修改。点击好吧应用更改并关闭对话框。
添加新的块和连接
增加一个传感器来测量与障碍物的距离。
修改模型。根据需要展开模型窗口以容纳新的块。
求实际距离。为了找到障碍物位置和车辆位置之间的距离,添加减去从
数学操作
图书馆。同时添加常数从来源
的常量值10
障碍物的位置。模拟不完美的测量,这将是典型的真实传感器。方法生成噪声限带白噪声从
来源
图书馆。设置噪声功率参数0.001
.将噪声添加到测量中使用添加从数学操作
图书馆。模拟一个每0.1秒发射一次的数字传感器。在Simulink中,在给定的间隔内对信号进行采样需要采样和保持。添加零级举行从
离散
图书馆。将块添加到模型后,更改样品时间参数0.1
.添加另一个外港连接到传感器输出。的默认值端口号参数。
连接新块。的输出。积分器,二阶块已经连接到另一个端口。要在该信号中创建分支,请左键单击该信号以突出显示潜在的连接端口,然后单击适当的端口。
注释的信号
向模型中添加信号名称。
双击信号并键入信号名称。
要完成,请从文本框中单击离开。
重复这些步骤以添加如下所示的名称。
比较多个信号
比较实际的距离
用测量距离
信号。
创建并连接观众范围到
实际的距离
信号。右键单击信号并选择创建并连接查看器> Simulink >作用域.信号的名称出现在查看器标题中。添加
测量距离
向相同的查看器发送信号。右键单击信号并选择连接到查看器> Scope1.确保连接到在上一步中创建的查看器。运行模型。观察者显示两个信号,
实际的距离
黄色和测量距离
蓝色的。放大图来观察噪声和采样的影响。单击变焦按钮.左键单击并拖动您想要更仔细地查看的区域周围的窗口。
你可以反复放大观察细节。
从图中可以看出,测量值可能与实际值相差0.3 m。这些信息在设计安全功能时非常有用,例如碰撞警告。