Labview中的matlab脚本节点具有不同的时序

时间:2015-01-23 10:55:13

标签: matlab timing labview

我有一个温度测量的DAQ。我采用连续采样率,在DAQ之后,计算此过程中每分钟的温差(冷却速率:CR)。将此CR和温度值插入到Matlab脚本中,以运行物理模型(预测接下来30秒的温度下降)。然后,我在LabVIEW中记录并比较预测值和实验值。

我要做的是matlab模型每30秒执行一次,并将其预测作为matlab脚本的输出发送出去。其中一个输出帮助我改变鼓风机电机速度直到下一个matlab运行(最终影响下一个30秒的温度下降,这变成一个闭环)。在主过程仍在运行30秒后,再次将CR和温度值发送到matlab模型,依此类推。

我有这个Matlab脚本的案例结构。在case结构中,我应用了一个经过时间的函数来控制matlab脚本的时间,但这不起作用。

Code example

1 个答案:

答案 0 :(得分:1)

是。 简短回答:我相信(其中一个)程序在更改时间方面表现得很奇怪的原因是代码中存在几种竞争条件

图中显示的部分显示了代码的几个大问题:

  1. 局部变量导致竞争条件。使用dataflow。例如。您正在写入Tinitial局部变量,并从代码块中的Tinitial本地变量中读取,没有数据依赖性。目前尚不清楚阅读或写作是否会先发生。它可能不会因为小延迟而表现得很糟糕,而大延迟可能是一个问题。解决方案:使用以下示例重写您的程序:
  2. 来自Bad:

    Bad example

    要好:

    enter image description here

    (永远不要打破断线)

    1. Matlab脚本节点在主UI执行系统中执行。如果它正在执行很长时间,它可能会冻结指标/控件以及执行其他代码段。更改程序中其他VI的执行系统(比如说“其他1”)并查看情况是否有所改善。