matlab不显示变量,Matlab代码看不到Simulink模型中函数内部定义的变量

博主在Simulink模型中遇到一个问题,即在子系统中定义的变量无法在主脚本中被识别。尽管尝试了全局变量和数据存储块,但在主脚本中初始化变量仍导致Simulink模型出错。讨论中提出了使用InitFcn回调、全局变量、From/GoTo块以及数据存储读取块等解决方案。
摘要由CSDN通过智能技术生成

我对模拟Simulink模型的Matlab代码有疑问。例如,我的系统现在包含一些不同的子系统/代码:

主脚本–为模拟Simulink模型设置初始条件,还保存并绘制一些输出(主代码)。

模仿我的系统操作的Simulink模型。

子脚本,它是Simulink模型中的功能块。在这种情况下,此块可得出仿真期间在模型中使用的某些值(子代码)。

现在,我正在尝试在Simulink的一个子系统中引入一个附加块。为了简化起见,它是一个带有变量" V"的常量块。我在子代码中分配V的初始值。但是,当我运行将执行模型的Main代码(内部有一个恒定块V)时,它给我的错误是未定义V。如果我在主代码中初始化V,它将具有声明的值,而不管对子代码中的V进行任何操作。

希望我或多或少很好地描述了这个问题,因为我无法在此处发布模型。先感谢您。

这不是一个好的解决方案,因此我不会给出答案,但是您是否尝试过将其声明为全局变量?我只是记得,我不确定Simulink变量的范围,将变量推入主工作区或从主工作区推入是很痛苦的。

嗨,我已经仔细检查了。在Simulink中用数据存储器存储块声明为全局变量,但结果相同。一旦我从Main Code中删除了变量,就不会编译模型。

simulink模型要求在初始化期间所有数据均可用。通常,在使用V的常量块被初始化之前,您需要初始化"子脚本"(这是一个非常不好的名字)(并因此在工作区中创建变量V)。但是,从根本上讲,您根本不应该使用工作区来执行此操作,并且您当然不应该基于在另一个块中执行的代码来初始化一个块。但是,如果不确切知道您要使用此配置真正实现的目标,就无法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值