基于模型的设计范式集中于物理组件和系统的模型,作为设计、测试和实现活动的基础。本教程将一个设计好的组件添加到现有的系统模型中。
该模型是一个可以通过两个轮子移动或旋转的扁平机器人,类似于家庭吸尘机器人。进入MATLAB®命令行打开模型:
open_system (“system_model.slx”)
本教程分析该系统并为其添加功能。
确定设计目标是完成设计任务的关键第一步。即使是一个简单的系统,也可能存在多个甚至相互竞争的设计目标。考虑示例模型的这些目标:
设计一个控制器,改变输入的力,使车轮以期望的速度转动。
使设备按预定路径移动的设计输入。
设计传感器和控制器,使设备沿直线运行。
设计一个规划算法,使设备在避开障碍物的同时,利用尽可能最短的路径到达某一点。
设计一个传感器和算法,使设备在避开障碍物的同时在一定区域移动。
本教程设计了一个警报系统。您可以确定传感器的参数,用于测量与障碍物的距离。一个完美的传感器可以精确地测量到与障碍物的距离。警报系统以固定的间隔对这些测量值进行采样,以便输出始终在测量值的0.05 m范围内。系统会及时发出警报,让机器人在遇到障碍物前停下来。
新部件的设计需要分析机器人的线性运动来确定:
当车轮的动力被切断时,机器人能以最高速度行驶多远
机器人的最高速度
输入一个力来运行模型,开始运动,直到机器人达到一个稳定的速度,然后将输入的力设为零:
在模型中,双击Inputs子系统。
删除现有的步骤输入,并添加一个脉冲发生器块。
设置参数脉冲发生器布洛克:
振幅:1
期:20.
脉冲宽度:15
这些参数的设计是为了确保达到最高速度。您可以更改参数以查看其效果。
运行模型20秒。
第一个范围显示,当电源被切断时,速度迅速开始下降3.
.然后速度渐近地趋近于零,但不完全达到零。这是建模的一个局限性;没有外力的低速动力学需要更复杂的表示。然而,对于这里的目的,可以做近似。放大位置信号。
在时间3.
,机器人的位置约为0.55 m。模拟结束时,位置小于0.71 m。可以有把握地说,机器人在断电后行走不超过0.16米。
要找到最高速度:
放大速度输出在时间上的稳定区域,从1 s到3 s。
再次单击缩放按钮离开缩放模式。单击光标测量按钮.
将第二个光标设置为速度曲线平坦的区域。
的价值列光标测量Panel显示机器人的最高速度为0.183 m/s。以0.05 m除以0.183 m/s计算机器人行走0.05 m所需的时间。得到0.27秒。
传感器设计包括以下组件:
测量机器人和障碍物之间的距离——这个例子假设测量是完美的。
报警系统测量距离的时间间隔-为了使测量误差小于0.05 m,该采样间隔必须小于0.27秒。使用0.25秒。
传感器产生警报的距离-分析表明,减速必须从距离障碍物0.16米的地方开始。实际警报距离还必须考虑离散测量的误差,即0.05米。
构建传感器:
使用如下所示的端口创建一个子系统。
构建距离测量子系统。在Sensor模型块中,使用减去,数学函数与函数^ 2级
,总和,√6块如图所示。请注意输入端口的重新排序。
模型抽样。添加一个零级举行块从Discrete库转移到子系统,并设置样品时间参数0.25
.
对警报逻辑进行建模。添加一个比较恒定的block from Logic and Bit Operations库,并设置参数:
操作符:< =
恒定值:0.21
输出数据类型:布尔
此逻辑块将其输出设置为1
当它的输入小于或等于0.21
.
完成积木的连接。
在障碍物位置测试设计X = 0.65 y = 0使用常数块作为传感器模型子系统的输入。这个测试验证了X方向的设计功能。您可以为不同的路径创建类似的测试。这个模型只生成一个警报。它不控制机器人。
设置障碍物的位置。添加两个常数将常量值设置为0.65
和0
.将机器人的位置输出连接到传感器的输入。
向Alert输出添加一个范围。
运行模型。
注意警报状态变为1
一旦位置在障碍物位置0.21 m内,满足该部件的设计要求。
对于具有复杂组件和正式需求的真实系统,Simulink金宝app®产品系列包括额外的工具来细化和自动化设计过程。金宝app仿真软件需求™提供工具来正式定义需求并将它们链接到模型组件。金宝app仿真软件控制设计™如果你想为这个机器人做一个控制器,可以方便的设计。金宝appSimulink验证和验证™下载188bet金宝搏产品为测试组件和系统建立了正式的框架。