我目前正在编写一个包含多个模型的新库(我习惯于Matlab,但不习惯Simulink) . 我能够创建一个带有块参数的模型,比如参数'p',以及一个回调函数(initfct),它使用这个参数来计算我模型中使用的特定值(比如简单的增益K = K(p)) .
我的问题是我的参数'p'和'K'可直接在工作区中使用,我不想这样做 . 此外,如果我在一个系统中使用两次或更多这个模型,这两个模型总是共享相同的'K',这也是我不想要的 .
那么当我多次使用自定义模型时,如何使这些变量'p'和'K'独立,并防止在工作区中查看这些变量?
我应该使用“参考模型”,但我不熟悉这个功能......?
谢谢你回答,迈克尔
2 回答
在回调中,
gcb
返回当前执行回调的块的路径 . 有了路径,您可以使用get_param
来访问参数 .仅出于演示目的,将以下内容插入延迟块的MoveFcn:
每当块移动时,它将随机改变延迟 .
我不确定我的答案是否解释了你需要的一切 . 可能你还需要一个面具 . 如果您认为此答案不完整,请更新您的问题并添加一个示例问题的示例模型 .
谢谢,在你的帮助下,我能够解决问题 .
更具体地说,如果其他人有同样的问题:您需要在掩码中声明回调函数使用的内部变量 . 取消选中相关选项,使它们不会显示为模型的标准输入参数 .
我的问题也是使用num2str而不是mat2str(当增益是一个作用于多个输入的矩阵时) .