问题标签 [xcos]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
porting - 将 xcos 从 5.5.2 移植到 6.0.1
使用 6.0.2 打开在 5.5.2 中绘制的 xcos 会导致空白页。
我在 6.0 帮助中找不到特殊的导入功能。我在 scilab 网站上还没有找到任何白皮书。我怀疑由于 6.0 是一个重大的重写,我们需要大幅重新绘制我们的 xcos 图以从 5.5 移动到 6.0?有人可以确认吗?
我希望在 v6.0x 中打开 v5.5x xcos 图,即大量的框图和连接器。它由 v6.0.2 愉快地打开,但它是空白的,除了一些被继承的注释。
scilab - Scilab xcos 积分器
我一直面临一个问题,如何根据 Scilab Xcos 中积分器块的值生成事件信号。例如,如果积分器块的输出值为零,我需要创建事件信号。我有一个想法使用 RELATIONALOP 块来比较积分器输出的值与零,但我不知道如何将此比较的结果转换为事件。有人可以帮忙吗?
scilab - 全局变量 Xcos
我是 Xcos 的新手。有没有办法让一个块读取或写入其他块也可以访问的变量?或者如果有解决办法来实现同样的目标。谢谢
matlab - 如何从 SciPad 设置 Scilab 块中的参数?
不知道有没有人遇到同样的问题!在 MATLAB 中,我们可以轻松地从 m 文件中设置 Simulink 模块的参数。例如,我们可以改变传递函数的系数、PID 增益、阶跃输入幅度、仿真时间等。
在 Scilab,一切都是未知的!实际上,我不知道 Scilab 是否提供此功能!
任何有用的反馈或提示将不胜感激。
谢谢
c - 如何将仿真上下文传递到 Scilab C 模块?
我一直在基于 C 块的 Scilab/Xcos 中开发自己的功能块,并且一直在努力将仿真上下文中定义的参数传递到 C 代码中。有人知道该怎么做吗?提前感谢您的任何想法。
c - 如何使用 C 语言在 Scilab/Xcos 中开发自己的块
我一直在使用 CBLOCK4 在 Scilab/Xcos 中开发自己的块。块内的 C 语言代码如下:
为了完整起见,我还附上了 sccos_block 结构:
我能够成功编译代码,但如果我运行包含我的 CBLOCK4 块的模拟,我总是会收到以下错误消息:
警告 !!!Scilab 在“scicosim”函数中发现了一个严重错误 (EXCEPTION_ACCESS_VIOLATION)。保存数据并重新启动 Scilab。
并且模拟也没有开始。我发现如果我删除 CBLOCK4 块中的以下代码行,模拟就会开始工作:
我怀疑我的 C 代码中有一些错误(可能与内存分配有关),但我找不到它。有人有使用 Scilab/Xcos CBLOCK4 的经验吗?
c - 如何在 C 中使用动态分配的内存
我一直在使用 C 语言在 Scilab/Xcos(Matlab/Simulink 的开源变体)中开发一个块。为此,Scilab/Xcos 提供了一个称为 CBLOCK4 的特殊模块。一旦我将此块放入模拟中,就会自动生成一个 C 语言存根。该存根的一部分是实现块行为的函数的模板。此函数在其参数中接受指向scicos_block
结构的指针:
该项目work
可能旨在用于存储存储块的内部状态变量的另一个地址的存储地址。我试图用work
项目用法来实现 Scilab/Xcos 块:
我能够成功编译包含此代码的块,但如果我开始模拟它会崩溃。我对内存的动态分配以及我使用它的方式有疑问。
请任何人看看我的代码(即带有标志 == 4 的 if 正文中的部分)并告诉我我做错了什么?
scilab - 为什么我的图表使用 scilab、xcos 绘制指数图?
我做了上图,我把1,1的值分别作为INTEGRAL_f和GAINBLK_f的参数,其他参数默认。
我不知道为什么要绘制此图,因为我认为不应该有构成指数函数的因子。
谁能告诉我我错过了什么?
api - 修改 Scilab 6 网关功能中的 Scilab/Xcos 模块
我想使用新的(非旧版)Scilab API 从网关函数中修改Xcos 块,例如,用新的模型结构替换块的模型属性。换句话说,执行与 Scilab 命令相同的操作:
但是,我没有设法使用 Scilab 6 API 中的函数实现此行为:由创建的块standard_define()
正确传递给我的网关函数,其中此参数可用作scilabVar
type 128
。另一方面,Scilab 帮助声称块是“类型为“块”的scilab tlist,具有以下字段:图形、模型、gui 和 doc ”。
尝试
假设scilabVar block
取自网关函数参数,类型为 的字符串常量wchar_t[]
,scilabVar model
其结果为scicos_model()
:
- 函数的应用
scilab_setTListField (env, block, "model", model)
返回错误状态(作为MList
和List
do 的等价物) - 知道该属性
.model
位于索引 3 处,通过setfield (3, model, block)
调用scilab_call ("setfield", ...)
也会失败。- 这并不奇怪:当直接从 Scilab 命令行调用时,它以
setfield: Wrong type for input argument #3: List expected.
. - 但是,a
getfield (3, block)
有效,因此至少可以读取块的数据字段。
- 这并不奇怪:当直接从 Scilab 命令行调用时,它以
- 外部辅助函数
也调用 through
scilab_call("blockSetModel", ...)
实际上返回一个具有更改模型的块,但传递给此函数的原始块保持不变。虽然丑陋,但这至少提供了一种构建需要作为副本返回的单独块结构的方法。
概括
- 那么,API 中是否缺少一个函数,它返回类型指针变量
TList
后面的(或其他) ?128
- 或者有没有其他方法可以解决我无法发现的这个问题?
背景
背后的目标是将块定义任务从通常的接口“gui”函数(例如 Scilab 脚本MyBlock.sci
)转移到自己的 C 代码中。为此,接口函数被简化为 C 网关的包装器,例如,scilab_call ("standard_define",...)
当使用参数调用时,它用于创建新块job=="define"
。通过 Scilab API修改包含对象model
和graphics
对象可以正常工作,因为这些是标准列表类型。但是,如上所述,将这些对象获取或设置为属性.model
和原始块的失败。.graphics