通过 Simulink 增加一个变量
Increment a variable by Simulink
我在 Simulink 中遇到问题,我有一个变量 "k" 作为常量块(起始值 k =1 ),我想在每次单击 [=22 后递增 "k" =] 直到 "k" 为 4 然后它将再次重置为 1。
我已经尝试过这个(见附件图 1),但在这种情况下,k 它将在模拟时间结束之前进行很长时间的修改(见附件图 2),这不是我想要的。
enter image description here
enter image description here
我会感谢任何帮助,非常感谢 Jay
如果您只想在每次 运行 模拟时更新值,最好的选择是在 InitFcn
回调中添加一些代码。
这是一个(可选)代码块,每次初始化模型时都会 运行。为此,导航 File > Model Properties > Model Properties
Select 回调选项卡,然后是左侧的 InitFcn
回调。以下代码将检查 k
是否存在于工作区中,如果不存在则设置它,如果存在则递增它。如果你把它放在回调中,然后将常量块值设置为 k
你应该得到你想要的行为。
if ~exist('k', 'var')
k = 1;
else
k = k + 1;
end
if k>4
k = 1;
end
我在 Simulink 中遇到问题,我有一个变量 "k" 作为常量块(起始值 k =1 ),我想在每次单击 [=22 后递增 "k" =] 直到 "k" 为 4 然后它将再次重置为 1。
我已经尝试过这个(见附件图 1),但在这种情况下,k 它将在模拟时间结束之前进行很长时间的修改(见附件图 2),这不是我想要的。
enter image description here enter image description here
我会感谢任何帮助,非常感谢 Jay
如果您只想在每次 运行 模拟时更新值,最好的选择是在 InitFcn
回调中添加一些代码。
这是一个(可选)代码块,每次初始化模型时都会 运行。为此,导航 File > Model Properties > Model Properties
Select 回调选项卡,然后是左侧的 InitFcn
回调。以下代码将检查 k
是否存在于工作区中,如果不存在则设置它,如果存在则递增它。如果你把它放在回调中,然后将常量块值设置为 k
你应该得到你想要的行为。
if ~exist('k', 'var')
k = 1;
else
k = k + 1;
end
if k>4
k = 1;
end