OpenFAST / matlab-toolbox

Collection of Matlab tools developed for use with OpenFAST
Apache License 2.0
50 stars 67 forks source link

Unrecognized field name "BldPropHdr" #28

Closed omaudhuit closed 2 years ago

omaudhuit commented 2 years ago

Hello everybody,

Trust that everyone is doing well. Thank you in advance for any feedback that you provide me on this issue.

We trying to convert some V7 files to V8 but have come across this 'unrecognized field name "BldPropHdr"' error which we can't quite get past (see attached).

Is anyone familiar with this BldPropHdr?

Thank you all again.

Olivier Maudhuit

Git_Issue_01

omaudhuit commented 2 years ago

Hello again,

So the BldProp is clearly defined in the FAST2Matlab:

Git_Issue_02

But the question remains as to why the error pops up, when it is reading a blade .dat file structured as follows: Git_Issue_03

Thank you again in advance for any help here.

Olivier Maudhuit

jjonkman commented 2 years ago

Hi @omaudhuit,

Can you attach your blade .dat input file?

Best regards,

omaudhuit commented 2 years ago

Mr. Jonkman (@jjonkman),

Thank you for getting back to me. Apologies for the delayed response (we are 9 hours ahead of Colorado here in Athens, Greece).

Attached is the (renamed) .dat file.

Let me know if there is anything else you need.

Git_FAST.zip

jjonkman commented 2 years ago

Hi @omaudhuit,

I don't see any obvious problems with your FAST v7 blade input file.

BP{k} is set on line 110 of ConvertFAST7to8.m. What does BP{k} contain in the MATLAB workspace?

Best regards,

bjonkman commented 2 years ago

@omaudhuit , which version of the Matlab toolbox are you using? I recently modified the data structure of those tables in https://github.com/OpenFAST/matlab-toolbox/pull/23, but apparently didn't change the ConvertFAST7to8.m script to reflect that. The BldProp structure is now BldProp.Table and BldPropHdr is now BldProp.Headers. So, I think this should work in place of the code that is causing you trouble:

    for k=1:NumBl
        indx = find(strcmpi('AeroCent',BP{k}.BldProp.Headers));
        if isempty(indx)
            disp('Warning: AeroCent not found in blade properties table.')
        else        
            PitchAxis = 0.5 - BP{k}.BldProp.Table(:,indx);  
            BP{k}.BldProp.Headers = [BP{k}.BldProp.Headers; 'PitchAxis'];
            BP{k}.BldProp.Table   = [BP{k}.BldProp.Table PitchAxis];
        end
    end

Or, you could use an older version of the matlab toolbox where FAST2Matlab.m has the old ParseFASTNumTable routine without the data structure change (before https://github.com/OpenFAST/matlab-toolbox/pull/23 was merged in).

omaudhuit commented 2 years ago

@jjonkman @bjonkman Thank you very much for your responses.

I made the change to the code but have come across a different error later in the Matlab2FAST>WriteFASTTable script (see attached).

I have checked your updates but haven't found any changes or differences.

If this has been come across before please point me to the post/thread. Thank you again in advance.

Git_Issue_04

omaudhuit commented 2 years ago

@bjonkman If you would like for me to move this conversation to a different thread (now that the subject has changed) please let me know.

Even if I add a '%s' to the above and get past it, I still run into issues later on in the Matlab2FAST>getNumericVal2Write function (see attached).

Again, if these are standard errors from my part just let me know.

Long story short: we manufacture a 50kW variable speed, stall regulated turbine and are just now getting into the simulations that were originally done (by the original design team) on V7. However, we would like to 'migrate' so to speak over the openFAST so that we can start changing some of the design topography and create new DLL files. Just a bit of background and introduction.

Thank you again.

Git_Issue_05

bjonkman commented 2 years ago

@omaudhuit, I am able to successfully convert the FAST7 CertTest cases with the changes you mention above. I also added a couple of other checks to maybe get around the issue you are finding; see this commit: https://github.com/bjonkman/matlab-toolbox/commit/143a27672916447e521fcfac24bfc1ffa2ab5035

In some ways, FAST7 allowed a lot of flexibility in file formats, and the conversion scripts aren't robust enough to handle all the combinations of ways files could be written and be successfully read in Fortran code. It may be that your file has some features that we didn't account for in this version. I would try to use the Matlab debugger to see what line in InflowWind's input file is causing the issue. I would guess that it's assuming there is a blank value for whatever parameter you are trying to write. You could check the contents of the IfWP data structure and see if anything looks unusual there, too.

omaudhuit commented 2 years ago

@bjonkman Thank you very much again for the input. It really is quite amazing to get direct responses from both yourself and Mr. Jonkman on these issues.

We will check the files and get back to you should there be an issue worth sharing and posting.

omaudhuit commented 2 years ago

@bjonkman @jjonkman

I forgot to mention: Dr. George Pechlivanoglou (the CTO of Eunice Energy Group - who I am working for) sends his best. He is the founder of the open source tool QBlade that incorporated FAST functionality and mentioned to me that he had spoken to you in the past about this. Our transition to OpenFAST will allow us to contribute more and we are looking forward to potentially speaking with you more going forward.