资源简介
进行模态分析的MATLAB程序,包括本征正交分解和动态模态分解
代码片段和文件信息
clear;clf
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Higham J.E. Brevis W & Keylock C.J. (2018)
% Implications of the selection of a particular modal decomposition technique for the analysis of shallow flows
% Journal of Hydraulic Research
% Taylor and Francis
% 10.1080/00221686.2017.1419990
% Any questions email jonny.e.higham@gmail.com
%%%%%%%%%%%%%%%%%%% USAGE %%%%%%%%%%%%%%%%%%%%%%
% When the data is input the POD modes will be calculated after which you
% are promped with a window to choose the frequency highlighted in the
% particular POD mode which you would like the DMD algorithm to extract.
%%%%%%%%%%%%%%%%%% EXAMPLES %%%%%%%%%%%%%%%%%%%%
% Here we provide two examples ‘cylinder‘ & ‘groyne‘ change by either using
% ‘cylinder‘ or ‘groyne‘;
% Chose the cylinder example for one velocity component and the groyne for
% two velocity components (this can easily be extended to three components
%%%%%%%%%%%%%%%%%% INPUT %%%%%%%%%%%%%%%%%%%%%
freq = 5; %Hz; aquisition frequency
example = ‘cylinder‘; % input case (cylinder / groyne)
mode=2; % which mode to plot and extract DMD from
%%%%%%%%%%%%%%%%%%% script %%%%%%%%%%%%%%%%%%%%%
% Import the images from folder. The colour images are converted to
% grayscale.
data = [];
if strcmp(example‘cylinder‘)
directory = ‘data_cylinder‘;
count = 1;
while exist(sprintf(‘%s/B_%0.4d.bmp‘directorycount)) ~= 0 % exist 检验变量或文件是否存在 sprintf 格式化输出
data(::count) = imread(sprintf(‘%s/B_%0.4d.bmp‘directorycount)); % imread 图像读入
count = count +1;
end
r = size(data1); c = size(data2);
% Transform the data into column vectors.
data=reshape(datar*csize(data3)); % data 重构出 r*c X size(data3)的 矩阵
end
if strcmp(example‘groynes‘)
directory = ‘data_groynes‘;
count = 1;
while exist(sprintf(‘%s/PIV_%0.4d.mat‘directorycount)) ~= 0
load(sprintf(‘%s/PIV_%0.4d.mat‘directorycount))
data_u(::count) = u;
data_v(::count) = v;
count = count +1;
end
r = size(data_u1); c = size(data_u2);
% Transform the data into column vectors.
data=[reshape(data_ur*csize(data_u3));reshape(data_vr*csize(data_v3))];
end
%%%%%%%%%%%%%%%%%%% POD %%%%%%%%%%%%%%%%%%%%%%
% Perform the POD - this is mean subtracted for POD not for DMD
[Phi ~ C]=svd(data-repmat(mean(data2) [1 size(data2)])‘econ‘); % repmat 复制平铺矩阵 mean(data2)为行平均的列向量
% 奇异值分解(精简分解)
相关资源
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
评论
共有 条评论