Scilab xcos:在 Simulation -> Set Context 中运行脚本或定义函数

问题描述

我有自己的函数,我想通过 scifunc_block_m 块使用它。该函数在 .sci 文件中定义,如本 answer 中所建议。在开始模拟之前从 scilab 控制台运行脚本工作正常。但是,如果我在 xcos Simulation -> Set Context 下调用这个非常 .sci 的 exec() ,则该函数在 xcos 中似乎仍然未知。我是否缺少有关上下文设置的信息?

xcos Set Context

它以输入到 scifunc_block_m 或表达式块中的函数开始。然而,

  • 我不想让块变大,并且无法使用 ..函数定义拆分为多行以防止文本溢出块边界。
  • 函数将被多次使用,我想要一个定义而不是复制和粘贴。

enter image description here

解决方法

  1. 对于设置上下文部分: 我猜你必须指定fader_func.sci 的绝对路径,要么直接在set Context 框中,要么通过控制台中定义的变量:
--> fader_PATH = "C:\the\path\fader_func.sci"
// Then in the Context box;
exec(fader_PATH,-1);

或者直接在“上下文”框中(可移植性低得多的解决方案):

exec("C:\the\path\fader_func.sci",-1);
  1. 关于 scifunc_block_m 输入 不太可能支持连续点。相反,您是否尝试将任何长指令明确拆分为几个较短的指令?
tmp = tanh((u3-u1+u2/2)/0.25/abs(u2))
y1 = 0.5 + sign(u2)*tmp/2