How to transform a nonlinear velocity field to a new frame of reference?

1 次查看(过去 30 天)
Example:
Velocity Field:
v =
- x*sin(C*t) - y*(w/2 - cos(C*t))
y*sin(C*t) + x*(w/2 + cos(C*t))
0
The linear velocity field can be written as:
X = [x,y,z];
A = [-sin(C*t), cos(C*t) - w/2,0; cos(C*t) + w/2 , sin(C*t),0;0,0,0;];
v = A*transpose(X);
Transformation (Observer change): where
Q = [cos(C/2*t),sin(C/2*t),0;-sin(C/2*t),cos(C/2*t),0;0,0,1];
Based on continuum mechanics, velocity field transforms as . Applying this formula as:
vy = diff(Q,t,1)*transpose(X) + Q*v;
I do not get the correct answer. I believe that is because v and are still in the old frame. If I change them to the new frame it works. The procedure I used is as follows:
If is also linear, then it can be written as:
Then B is computed as:
Qtr = transpose(Q); assume(Qtr,'real')';
Q*(A*Qtr - diff(Qtr,t,1))
and it works. However, now the problem is that, I can not define A and B for nonlinear velocity fields, for numerical velocity fields not possible at all, so what do I do? How do I transform a velocity field with a given observer change?

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Fluid Dynamics 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by