Jump to content
Sign in to follow this  
Mr. Bodo Hasubek

Accuracy problem with curves

Recommended Posts

Hi everybody,

 

I am experiencing an accuracy problem using curves:

 

The curve is a NACA4digit profile that is translated,  rotated and scaled in a transformation chain in order to put it into the right position and orientation. At the end the rounded part of the NACA profile is at maximum x position and the profiles chord is not aligned with the x-axis (which actually makes no difference. I tried an x-aligned version with the same result.).

 

Then I run the following command, in order to get the maximum position on this curve in terms of t, since I would like to use that in an imagecurve to cut out a portion of interest:

 

 

NACACurve.ft(0, NACACurve.getMax(0))

 

This command consistently delivers the rear end t (which is 1), while t should be somewhere close to 0.5.

Apparently the maximum position in x direction found by getmax(0) is larger than the maximum x position the ft-command finds when traversing the curve, such that no match is found and the ft command ends up at t=1.

 

Since the error is rather persistent I created a simple file that shows the problem: c3 is the transformed NACA curve we are talking about. p1 marks the x-position where the maximum should lie according to the "getmax(0)" command. p2 shows the x position of the NACACurve.ft(0, NACACurve.getMax(0)) command.

 

Any ideas?

 

Thank you,

Bodo

 

P.S. I am using the Linux version 4.0.0 if that matters. But this error is far older if I remember correctly. So if it has been just fixed in a 4.0.x just let me know.

ft_accuracy_error.fdb

Share this post


Link to post
Share on other sites

Hi Bodo,

 

I hope I understand you correctly: You need the maximum x position of the curve? To solve your issue I used the most straight forward way I could think of and it works. However, it isn't really different from yours and both should work.

 

What I did: Select the target curve and create a point. This point is automatically on the curve defined by the parameter tc. In tc I wrote "targetCurve.getmax(0,1)". The "1" in the getmax command gives you access to the curve parameter at the max position of the axis directly. So, what you need is t=targetCurve.getmax(axis,1).

 

Your way adds one more step by using the ft command. When substracting a little correction c3.getPos(c3.ft(0, c3.getMax(0) - 0.00017)):x it comes close to the actual value.

 

I assume when doing it like you did a numerical error messes it up. Maybe one of my colleagues can give a proper answer to that issue.

 

Regards

 

Matthias

 

 

 

ft_accuracy_error.fdb

Share this post


Link to post
Share on other sites

Hi Bodo,

 

I had also the same problem, but there's a very simple way to solve it.

When you ask NACACurve.getMax(0) , you have in return the x position of the max.

If you want the t parameter, you can just ask NACACurve.getMax(0,true) and now you have the position in t coordinate of the max. See the screenshot.

 

 

The problem is that for a numerical error, the command ft(0,xpos) can't find a point in the max (and in the min) position if you give the x-position and so give you the position on t=1.

If you reduce a little that number, like Matthias suggested, this command has no problem.

 

I will report this error to the developer.

 

Thankyou very much,

Carlo

 

 

post-441-0-34799000-1460365351_thumb.png

Share this post


Link to post
Share on other sites

Hi all,

 

thank you very much for the solution. The second paramter of getmax() slipped my attention.

 

And, yes apparently there is an accuracy problem if "ft()" is used in conjunction with "getmax()".

 

Regards,

Bodo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...