0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

关于实现逻辑循环的方法分析和介绍

MATLAB 来源:djl 作者:柚籽 2019-09-17 11:24 次阅读

C代码中常用的循环控制语句有诸如for 、while以及do while。那么,这种循环逻辑在Simulink模型中是如何实现的呢?

Simulink里有三种建模手段:

Simulink 框图

Stateflow Chart

MATLAB Function

先来看看如何使用Simulink 框图来表达这种循环逻辑。

点击末尾的 “阅读原文” 下载本文的案例模型

循环逻辑

要得到:

y1 = 0;

for(inx = 0; inx <10; inx++)

{

y1 = u1[inx] + y1;

}

或者

while(flag && (num_iter <= 100)

{

flag = func ();

num_iter ++;

}

怎么做:

在 Simulink的Port & Subsystem库里,有IF-ELSE以及While模块。

For循环实例

1. 新建一个简单的Simulink模型

首先来看For循环,这是从Port & Subsystem库里拖出来的For Iterator模块:

关于实现逻辑循环的方法分析和介绍

双击它,搭建内部如下图:

关于实现逻辑循环的方法分析和介绍

代码生成之前所需要的配置、数据对象的构造以及信号关联等等,这些任务与之前所述一样,此处就不再重复说了。

5. 生成代码

Ctrl+B,生成代码。

如前面所设置的,可以看到下图所生成的For循环的C代码:

关于实现逻辑循环的方法分析和介绍

While循环实例

在Port & Subsystem库里的While Iterator模块,实现while循环的功能。从这个模型的端口来看,在这个循环里根据输入u2来计算输出y2的值,如下图。

关于实现逻辑循环的方法分析和介绍

在这个While Iterator子系统内部,则是具体的while循环的内容,如下图。

While Iterator模块,是这个循环的条件模块,可以设置最大的循环次数,同时cond为while的循环条件。而在上部的累加计算框图,则是 while 循环的内容。

关于实现逻辑循环的方法分析和介绍

生成代码,如下图。图中的func函数就是框图func子系统所生成的函数。内部做了一些更新flag的计算。另外可以看到累加框图生成的代码:y2 += u2。

关于实现逻辑循环的方法分析和介绍

do while循环实例

这个就简单了,直接把上图中的 while Iterator 模块双击设置为 do while 的模式就行了。

其他

生成代码结束之后,如果继续编译链接生成 exe 文件时,会有一个有意思的错误如下。有兴趣的可以去查看 math.h 的函数定义。

关于实现逻辑循环的方法分析和介绍

在Simulink的Port & Subsystem库里,有IF-ELSE以及While相应的子系统模块实现循环算法

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 逻辑
    +关注

    关注

    2

    文章

    818

    浏览量

    29280
  • 循环
    +关注

    关注

    0

    文章

    91

    浏览量

    15848
  • C代码
    +关注

    关注

    1

    文章

    88

    浏览量

    14173
收藏 人收藏

    评论

    相关推荐

    arduino如何停止loop循环

    或退出这个循环。本文将详细介绍如何在Arduino中停止loop循环。 在Arduino中,可以通过使用一个布尔变量或条件语句来实现停止loop循环
    的头像 发表于 02-14 16:24 863次阅读

    python如何一直循环一个代码

    在Python中,有几种方法可以实现代码的循环执行。下面我将详尽、详实、细致地介绍这些方法和它们的使用情况。 使用while
    的头像 发表于 11-23 15:54 658次阅读

    c语言在while中嵌套if循环

    C语言是一种广泛使用的面向过程编程语言,它提供了许多控制结构来帮助程序员实现复杂的逻辑和流程控制。其中,while循环和if语句是非常常见和重要的控制结构。本文将详细介绍C语言中在wh
    的头像 发表于 11-22 10:09 1140次阅读

    C语言循环结构的使用方法

    详细介绍了C语言while循环结构、do-while循环结构、for循环结构、循环退出语句的语法和使用
    发表于 11-02 11:26 346次阅读
    C语言<b class='flag-5'>循环</b>结构的使用<b class='flag-5'>方法</b>

    集成逻辑分析仪(ILA)的使用方法

    在日常FPGA开发过程中,逻辑代码设计完成后,为了验证代码逻辑的正确性,优先使用逻辑仿真(modesim)进行验证。仿真验证通过后进行板级验证时,使用逻辑
    的头像 发表于 10-01 17:08 1528次阅读
    集成<b class='flag-5'>逻辑</b><b class='flag-5'>分析</b>仪(ILA)的使用<b class='flag-5'>方法</b>

    逻辑分析仪参数有哪些?

    逻辑分析仪参数有哪些? 逻辑分析仪是一种广泛应用于数字电子系统测试的工具。其主要功能是通过对数字信号进行采样和分析,帮助用户定位和解决电子系
    的头像 发表于 09-19 16:33 1222次阅读

    usb逻辑分析仪怎么用

    下的错误和故障。USB逻辑分析仪被广泛应用于USB控制器的开发和调试、USB设备的验证以及USB通信的分析和解决。在本文中,我们将详细介绍USB逻辑
    的头像 发表于 09-19 16:03 1266次阅读

    逻辑分析仪如何使用 逻辑分析仪使用教程

    逻辑分析仪如何使用 逻辑分析仪使用教程  逻辑分析仪是一种用来监测和
    的头像 发表于 09-19 16:03 1739次阅读

    组合逻辑电路分析和设计方法

    所谓组合逻辑电路的分析,就是根据给定的逻辑电路图,求出电路的逻辑功能。
    的头像 发表于 08-16 09:15 3691次阅读
    组合<b class='flag-5'>逻辑</b>电路<b class='flag-5'>分析</b>和设计<b class='flag-5'>方法</b>

    for循环语句基本用法及示例 介绍几种可综合的for循环语句

    利用for循环实现对信号的赋值。
    的头像 发表于 08-03 10:22 1548次阅读

    066. while循环:5.1 循环章节课程介绍

    循环
    充八万
    发布于 :2023年07月07日 03:42:29

    066. while循环:5.1 循环章节课程介绍

    循环
    充八万
    发布于 :2023年07月05日 15:47:47

    时序逻辑电路的分析方法

      时序逻辑电路分析和设计的基础是组合逻辑电路与触发器,所以想要分析和设计,前提就是必须熟练掌握各种常见的组合逻辑电路与触发器功能,尤其是各
    的头像 发表于 05-22 18:24 2012次阅读
    时序<b class='flag-5'>逻辑</b>电路的<b class='flag-5'>分析</b><b class='flag-5'>方法</b>

    Verilog常用的循环语句及用途

    本文主要介绍verilog常用的循环语句,循环语句的用途,主要是可以多次执行相同的代码或逻辑
    的头像 发表于 05-12 18:26 1168次阅读

    关于让NXP TPL嗅探器与Saleae逻辑分析器一起工作的任何提示?

    逻辑分析器)——结果不好。 我的问题: 关于让 NXP TPL 嗅探器与 Saleae 逻辑分析器一起工作的任何提示?
    发表于 05-09 08:33