【问题标题】:Increment a variable by Simulink通过 Simulink 增加一个变量
【发布时间】:2017-01-03 21:01:33
【问题描述】:

我在 Simulink 中遇到问题,我有一个变量“k”作为常量块(起始值 k =1),我想在每次单击“模拟按钮”后递增“k”直到“k”为 4,那么它将再次重置为 1。

我已经尝试过这个(见附图 1),但在这种情况下,在模拟时间结束之前,它会花费很长时间(见附图 2),这不是我想要的。

enter image description here enter image description here

我会感谢任何帮助,非常感谢杰

【问题讨论】:

    标签: matlab increment simulink


    【解决方案1】:

    如果您只想在每次运行模拟时更新值,最好的选择是将一些代码放入InitFcn 回调中。

    这是每次初始化模型时运行的(可选)代码块。为此,请导航 File > Model Properties > Model Properties

    选择回调选项卡,然后选择左侧的InitFcn 回调。以下代码将检查k 是否存在于工作区中,如果不存在则设置它,如果存在则增加它。如果你把它放在回调中,然后将常量块值设置为k,你应该会得到你想要的行为。

    if ~exist('k', 'var')
        k = 1;
    else
        k = k + 1;
    end
    
    if k>4
        k = 1;
    end
    

    【讨论】:

    • 不用担心@Sami!如果它成功了,请将我的答案标记为有效,以便其他有类似问题的人知道尝试它。谢谢
    • 不错的解决方案! :)
    猜你喜欢
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多