雷霆半月斩惊天浪淘杀 2023-05-16 21:13 采纳率: 0%
浏览 65
已结题

如何在 simulink 中实现下面这个复杂的函数?

想要实现阶跃时间随当前时间而变化,也就是那一小段为1的波形,跟着当前时间 t 往右变化,但阶跃后的时间始终为0.02s。如下面的图形所示。能帮助解决问题一定给酬金!感谢大家帮忙。

img

  • 写回答

5条回答 默认 最新

  • copy_editor 2023-05-17 21:59
    关注
    获得7.50元问题酬金

    img

    img

    function R = fcn(u,x)
    persistent m M P
    if isempty(m)
        m = zeros(100,3);
    end
    if isempty(M)
        M = zeros(100,3);
    end
    if isempty(P)
        P = zeros(100,3);
    end
    m = circshift(m,1);
    M = circshift(M,1);
    P = circshift(P,1);
    m(1,:) = u>x;
    M(1,:) = sum(m)/length(m);
    P(1,:) = sum(M)/length(M);
    R = abs(P(1,1) - P(1,2));
    end
    

    并在模型设置中将仿真最大步长设置成小于0.0002的数值。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月24日
  • 赞助了问题酬金15元 5月16日
  • 修改了问题 5月16日
  • 创建了问题 5月16日