最近需要使用田纳西这个数据集,也研究了下如何生成多模态,这里分享给大家!
对于我们从网站下载下来的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
- 1
- 2
- 3
- 4
- 5
5.经过上面的修改后,直接运行MultiLoop_mode4.mdl,运行正确,运行以下代码进行初始值的更新。
save Mode4xInitial xInitial
- 1
6.接下来就是修改参数到你所需要的模态了。各个模态参数如下所示,有监测变量和控制变量:
7.在调的过程中,尽量不要调的太大,慢慢调,一旦调的太大,就会出现下面情况,仿真一点点就停止了,调节后一旦仿真成功,使用以下代码第一行,更新到xInitial。直到得到最后模态的参数,再使用第二行代码进行最终保存。
注:这里调的时候可以把扰动关掉,在仿真图中Disturbances中全部置为0即可。
xInitial = xFinal
save Mode4xInitial xInitial
- 1
- 2
8.最后保存完初始化参数后,就可以关掉模型和代码,再重新打开就是模态4的模型了。
如有问题欢迎一起交流学习!
参考文献:
多模态过程故障诊断方法研究_周旺
Error in port widths or dimensions. '输出端口 1' of 'MultiLoop_mode4/TE Plant/Mux1' is a one dimensional vector with 12 elements.
端口宽度或尺寸错误。 “MultiLoop_mode4/TE Plant/Mux1”的“输出端口1”是具有12个元素的一维向量。
组件:Simulink | 类别:Model 错误