Question about applying function using hist 回答済み
Hi there
I measured my device output using vibrometer give me a velocity information.
I wanna use this data as an input signal.
The question is what should I do for input signal.
Should I calculate input signal as pressure data? or other type?
I want to simulate acoustic pressure.
And is there an limit at input signal? like length ?
please help me.
5件のコメント
Hi there,
You can use your velocity information as an input signal in OnScale. You would input the time history data as you have in your other forum comment using data hist. Then you would use boun defn to define your velocity boundary. If you wish to apply your velocity input at a surface as you mentioned in your other question use the boun side command ans specify your velocity boundary. I have written some example code below to demonstrate this. Also have a look at our command reference to see the syntax of the commands I have hightlighted in italics above.
data
hist drv1 * impulse_signal.dat 0.1
end
func hist drv1 1.e7
boun
side ymax vel func /* Applies velocity boundary to ymax
end
Alternatively, if you do not wish to apply the velocity boundary at a side of model you can switch the boundary command to use node to apply the boundary at the specified region of nodes.
boun
defn bnd1 vel func
node $i1 $i2 $j2 $j3
end
I hope this has answered your questions!
Best Wishes,
Team OnScale.
Thank you for answering.
I have one more question about input signal.
I have measured signal which has 20001 data length.
But when I use this signal, pzflex use part of input signal. (0~0.65e-4 sec data, 3081 ea) (input data length: 0~2e-3, 20001 ea)
So I multiply 0.1 on original input signal using this function.
- hist drv1 * impulse_signal.dat 0.1
How can I use my total input signal?
Hi Hyunjae,
How long are you running your simulation for?
If you can you send your model files to us and we will take a closer look for you.
Thanks,
Jeff
Hi, jeff
-------------------------------------------
symb #get { step } timestep
symb nloops = 10
symb simtime = ( $x6 / $vel ) * 1
symb nexec = $simtime / $step
symb nrun = $nexec / $nloops
symb nexec_loop = nint ( $nexec / $nloops )
----------------------------------------
current definition of step ( real ) = 0.4232341E-07
current definition of nloops ( integer ) = 10
current definition of simtime ( real ) = 0.6666667E-04
input- c symb simtime = 1.e-3 /* Simulation Time
current definition of nexec ( integer ) = 1575
current definition of nrun ( integer ) = 157
current definition of nexec_loop ( integer ) = 157
----------------------------------------
This is my simulation time code and history.
I use vel = 1500
help me...
Hi Hyunjae,
Your simulation time is only 0.6666667E-04 which is why only the first 0.65e-4s of your function was initially used. Scaling the time is going to change your input signal frequency. I would suggest you don't scale the time but run your simulation for longer (duration of input signal or longer) and you should see the full signal being applied.
Kind Regards,
Jeff
サインインしてコメントを残してください。
お探しのものを見つけられませんでしたか?
新規投稿