Find time when position less than zero

4 ビュー (過去 30 日間)
123fbyr765
123fbyr765 2018 年 11 月 21 日
編集済み: Jan 2018 年 12 月 3 日
I have code that integrates velocity to get position. I want to know when the position of projectile = 0 (ie time of flight), but there is no value in position vector where position = 0 at time of flight as position is measured periodically.
i.e How can I calculate time of flat for a projectile (intercept of position=0) when height of projectile is measured periodically?
index.jpg
This is the code I have to calculate position:
for t = 1:1:1500
v = cumtrapz(time,acceleration)
position = cumtrapz(time,v)
if t <= (60/dt)
acceleration(t) = (Fup-Fdown) /mass
else
acceleration(t) = (-Fdown) /mass;
end
time(t) = t*dt;
end
  1 件のコメント
Jan
Jan 2018 年 12 月 3 日
編集済み: Jan 2018 年 12 月 3 日
@afrhy: It is impolite to delete the question after someone has spent the time to post an answer. Please stop this. When you participate in the forum, the terms of use involve, that you are willing to share your questions with the community.

サインインしてコメントする。

回答 (1 件)

Star Strider
Star Strider 2018 年 11 月 21 日
I cannot run your code.
You can get the index of the first position that is negative using the find function:
negpos - find(position <= 0, '1, 'first');
The time will then be either:
tfinal = t(negpos)
or
tfinal = time(negpos)
depending on what you want.

カテゴリ

Help Center および File ExchangeProgramming についてさらに検索

タグ

タグが未入力です。

Community Treasure Hunt

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

Start Hunting!

Translated by