PIVで入手したベク​トルデータを使用して​,可視化した格子を変​形させたい

8 次查看(过去 30 天)
巧 平山
巧 平山 2023-10-5
移动Atsushi Ueno 2023-10-14
OpenPIV-Matlabで32*40=1280個の格子点上の速度ベクトルデータを,取得しています。動画から取得したため,時系列でデータを取得しています。そこで,取得した速度ベクトルデータを変位へ変換して考えて,画面上に作成した格子点を変位分動かす方法を教えていただきたいです。添付画像を参照してください。
  2 个评论
Atsushi Ueno
Atsushi Ueno 2023-10-8
動画において複数の粒子から一つを特定する事は難しいですが、取得済の速度ベクトルデータを扱う事は簡単です。速度ベクトルデータをMATLABの行列データにして、画面上に作成した格子点(これもMATLABの行列データ)に加算すれば良いのです。
巧 平山
巧 平山 2023-10-10
画面上に作成した格子点をプロットのように可視化するにはどのようにしたら良いですか?なにか使用すべきコードがあれば教えてください。

请先登录,再进行评论。

回答(1 个)

Atsushi Ueno
Atsushi Ueno 2023-10-10
移动:Atsushi Ueno 2023-10-14
例えばこのような例はどうでしょうか。格子状の座標に対し、適当に作った速度←加速度←加加速度を加算しながらプロットを繰り返すと、粒子が動き回る様に見えます。
N = 50; % 格子のサイズ
[rx,ry] = meshgrid(-(N/2-1):N/2,-(N/2-1):N/2); % 格子状の座標を作成
vx = zeros(N,N); vy = zeros(N,N);
ax = zeros(N,N); ay = zeros(N,N);
p = scatter(rx(:),ry(:),1); % 散布図に格子状の座標をプロット
xlim([-N/2,N/2]); ylim([-N/2,N/2]);
for k = 1:100 % 適当な回数繰り返す
kx = (rand(N,N)-0.5)*0.001; % 加加速度をランダムに設定
ky = (rand(N,N)-0.5)*0.001; % 加加速度をランダムに設定
ax = ax + kx; ay = ay + ky; % 加加速度を加速度に加算
vx = vx + ax; vy = vy + ay; % 加速度を速度に加算
rx = rx + vx; ry = ry + vy; % 速度を格子状の座標に加算
p.XData = rx(:); % 加算された格子状の座標をグラフのデータに反映
p.YData = ry(:); % 加算された格子状の座標をグラフのデータに反映
drawnow % グラフを再描画
end
  2 个评论
巧 平山
巧 平山 2023-10-11
移动:Atsushi Ueno 2023-10-14
ご返信有難うございます。
散布図を利用してこんなことが出来るとは驚きです!
この際、散布図上の各々の点を(i,j)で指定することは出来ますか?
Atsushi Ueno
Atsushi Ueno 2023-10-14
移动:Atsushi Ueno 2023-10-14
>この際、散布図上の各々の点を(i,j)で指定することは出来ますか?
散布図(scatter)上において特定の点を指定する方法は見つかりませんが、別の方法で描画すれば問題ありません。
N = 20; i = 11; j = 11; % 格子サイズ、特定の点を指定するインデックス
[rx,ry] = meshgrid(-N/2:N/2,-N/2:N/2); % 格子状の位置座標
xy = cat(3,rx,ry,zeros(N+1,N+1,4)); % XY位置/XY速度/XY加速度
p1 = mesh(zeros(N+1,N+1));
view(2); hold on
p2 = plot3(xy(i,j,1),xy(i,j,2),0,'.','MarkerSize',15);
xlim([-N/2,N/2]); ylim([-N/2,N/2]);
for k = 1:500 % 格子の各点にランダムな加速度を与える
xy(:,:,5:6) = (rand(N+1,N+1,2)-0.5)*0.001; % 加速度
xy(:,:,1:4) = xy(:,:,1:4) + xy(:,:,3:6); % 加速度→速度→位置
p1.XData = xy(:,:,1); p1.YData = xy(:,:,2);
p2.XData = xy(i,j,1); p2.YData = xy(i,j,2);
drawnow % グラフを再描画
end

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 プログラミング 的更多信息

标签

产品


版本

R2023a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!