深入研究simulink仿真之模型工件区(Modal Workspace)

打开matlab时,可以看到工作区中的变量。模型也可以使用工作区的变量。其实,模型也有其自身的工作区,即Modal Workspace。

一,问题现象

先来看一下自带的demo: sldemo_househeat

临摹时,就算把所有模型直接拷贝到新的空白工程中(Ctrl+A, Ctrl+C, Ctrl+V),仿真时也会报错。

二,原因分析

原因是,在gain模块中配置的参数为cost变量,而该变量没有定义。

三,解决措施

经过仔细查看并对比两个模型,在Model Explorer中发现,两者的Model Workspace不一样:

自带demo的workspace中有变量:

临摹的demo中是空白的:

那么 ,这些变量是从哪里来的呢?

是callback回调函数中设置的吗?在模型的callback中没有找到任何配置。

原来,是在右侧的workspace data里面配置的脚本里面定义的。

那么,问题又来了,这个脚本文件在哪里呢?

在simdemo的文件夹里面。

这个文件里面有些什么内容呢?打开看看:

里面的内容为(节选):

% Air flow rate Mdot = 1 kg/sec = 3600 kg/hr
Mdot = 3600;  % hour is the time unit

% Density of air at sea level = 1.2250 kg/m^3
densAir = 1.2250;
M = (lenHouse*widHouse*htHouse+tan(pitRoof)*widHouse*lenHouse)*densAir;

% cost = $0.09 per 3.6e6 J
cost = 0.09/3.6e6;
% TinIC = initial indoor temperature = 20 deg C
TinIC = 20;

确实定义了模型所需要的变量。

猜你喜欢

转载自blog.csdn.net/booksyhay/article/details/86508683