Matlab/Simulink的一些功能用法笔记(二)

01--代数环

在离散系统建模仿真时,如果遇到代数环错误,可以在反馈闭环回路中增加一个Unit Delay模块来消除代数环错误,若是连续系统则使用Memory模块

代数环:就是由于模型的输出反馈到模块或子系统的某个输入端,如果这个输入是直接馈入的,那么二者在同一个采样点内需得到求解,但是又相互依赖,不能正常的完成求解过程,导致错误产生。

02--Delay延时模块的用法

Delay length:表示延时多少次采集时间输出输入

Initial condition:表示输出的初值

假设,求解器为定步长,且步长时间为0.5s,Delay length为3,Initial condition为0,那么下例在0~1.5s过程中,输出为0,在1.5s时刻时,输出为6

另外在Source的下拉选项框中选择Input port的话,则由外部模块输入延迟次数和初始值。

例如,外部次数为3,初始值为1

运行10s仿真示波器曲线:

External reset:可选择上升沿或其他方式使Delay模块的值复位到初始值。

举例:增加一个Step模块,如下设置:(即在第2s时从0上升沿到1)

可以看到在第2s时,值进行了复位。

实例:下图通过Delay模块实现了一个累加计数器,计数到5后自动复位,重新计时。

03--Step模块

大部分人只用其基本功能,即在哪个时刻进行跃迁。

可以使用多维信号,按如下设置:

不勾选下列对话框

以向量的形式显示

04--Repeating Sequence模块

Time values:输入时间序列的采样点,Simulink以此输入作为单元进行周期性延伸赋值

Output values:输入对应Time values 时间采样序列的值序列。

上述值一一对应,

05--仿真时,使用Excel数据作为输入信号

①第一种:通过模块From Workspace

Excel中第一列为时间(横坐标),第二列为变量(纵坐标);

假设来自外部的数据如下:

把该表格放进模型所在的路径,调出From Workspace并命名为E

在MATLAB命令窗口输入如下指令:

E = xlsread('data.xlsx')     //data为Excel表格的名字

点击运行

示波器读到的数据:

②第二种:通过Signal Builder模块

按上面导入之后,如下图:

数据会自己线性查值,可按如下方式进行数据设置:

06--Stop Simulation模块

有时候在仿真过程中,由于求解器精度很高,仿真时间设置比较长,想要看看某个特定条件达到时的仿真数据,可以使用停止仿真模块。

脉冲模块按如下设置:

即振幅为1,周期为2,脉冲为周期(2)的5%,延迟0.2s

该模型对上升沿进行计数,当计数了25次上升沿后即停止仿真

运行模型后:(仿真时间50s在50s之前就停止了仿真,因为计数达到了25次)

07--圈复杂度的监测

作用: 防止模型过于复杂,一旦出现复杂度过大的情形,要考虑进一步模块化,按照“高内聚、低
耦合”的原则分解为两个或者多个子系统进行设计

举例:

架构设计的考虑
 降低复杂度,简化设计
– 便于并行开发和重用
– 便于版本控制
– 便于接口管理
 降低复杂度的方法
– 模块化开发
 模块化开发的原则
– 高内聚、低耦合

首先找到Model Advisor

检查项目分成了2大类:

  • By Product : sumilink 按照产品模块划分的检查项
  • By Task : 按照测试任务模块划分的检查项目

找到By Task 

图中,子系统深度,圈复杂度

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值