Simulink 触发计数器(自制)

问题描述:simulink仿真中,需要进行上升沿触发计数,但是该触发不是连续的(simulink仿真是关于时间连续,该触发可以是外部信号)。

实现方法:使用Matlab函数根据当前输入值与上一次的输出值对比,如果是上升的那么就可以计数,如果没有上升,计数保持不变。

使用到的simulink模块:Rocker Switch,Constant,Memory,MATLAB Function,Display。

注意:仿真时间是inf。

Rocker Switch需要connect到Constant,以便于更改该数值。具体仿真模型如下图。

MATLAB Function的内容如下

function [y,z] = fcn(u, r,counter)
% r是当前输入,u前一时刻的值,counter是计数器,记录上升触发次数。
if r==1 && u==0
    y=1;
    z=counter+1;
elseif r == 1 && u==1
    y=1;
    z=counter;
else
    y=0;
    z=counter;
end

具体仿真如下:

  • 7
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值