最近需要使用田纳西这个数据集,也研究了下如何生成多模态,这里分享给大家!
对于我们从网站下载下来的MATLAB模型,里面已经是两个模态(模态1和模态3),这里我们需要进行修改参数,来得到其他的模态。
这里就以生成模态4为例子,其余模态也是类似的。
1. 复制Mode_3_Init.m ;Mode3xInitial ;MultiLoop_mode3.mdl;并且将其更改为4的名称Mode_4_Init.m ;Mode4xInitial ;MultiLoop_mode4.mdl。
2. 打开Mode_4_Init.m文件,将29行进行修改,如下图,更改3为4。
3.打开模型MultiLoop_mode4.mdl,找到最上方Model Settings下的Model Properties,点击Callbacks,再点击PreloadFcn,修改为Mode_4_Init,以便于模型可以自动找到初始化脚本Mode_4_Init.m。如下图所示
4.导入Mode4xInitial.mat,并且运行以下代码进行初始化块名的修改。
for i =1:35
blockName = xInitial.signals(i).blockName;
blockName(15) = '4';
xInitial.signals(i).blockName = blockName;
end
5.经过上面的修改后,直接运行MultiLoop_mode4.mdl,运行正确,运行以下代码进行初始值的更新。
save Mode4xInitial xInitial
6.接下来就是修改参数到你所需要的模态了。各个模态参数如下所示,有监测变量和控制变量:
7.在调的过程中,尽量不要调的太大,慢慢调,一旦调的太大,就会出现下面情况,仿真一点点就停止了,调节后一旦仿真成功,使用以下代码第一行,更新到xInitial。直到得到最后模态的参数,再使用第二行代码进行最终保存。
注:这里调的时候可以把扰动关掉,在仿真图中Disturbances中全部置为0即可。
xInitial = xFinal
save Mode4xInitial xInitial
8.最后保存完初始化参数后,就可以关掉模型和代码,再重新打开就是模态4的模型了。
如有问题欢迎一起交流学习!
参考文献:
多模态过程故障诊断方法研究_周旺