'Data' object has no attribute 'maximum_lift_coefficient'

71 views
Skip to first unread message

Tim S

unread,
Aug 29, 2022, 12:42:14 PM8/29/22
to SUAVE FORUM
Hello all,

I am currently getting the error message: 'Data' object has no attribute 'maximum_lift_coefficient'

Before this error message the following output is given:
VSP geometry IDs:
Wing2: DYKBLYAYHP
Wing1: IFZVMHFKSE
EDFWing: EZSNEVDLZU
fuselage_1: LYWNHAAION
boom_R: DWNMOKMCMR
boom_L: SCVUAHTCWE

Designing propeller

Designing lift_rotor

 Optimum motor design failed. Using slack constraints

 Slack contraints failed. Using one constraint
Reseting OpenVSP Model in Memory
Writing wing2 to OpenVSP Model
Writing wing1 to OpenVSP Model
Writing edfwing to OpenVSP Model
Writing fuselage_1_1 to OpenVSP Model
Writing boom_R_1 to OpenVSP Model
Writing boom_L_1 to OpenVSP Model
Saving OpenVSP File
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)
Segment did not converge. Segment Tag: hover_climb
Error Message:
The iteration is not making good progress, as measured by the
  improvement from the last ten iterations.
Rotor BEVW did not converge to a solution (Stall)
Rotor BEVW did not converge to a solution (Stall)

I went into the file:
File ~\AppData\Local\Continuum\anaconda3\envs\suave\lib\site-packages\suave-2.5.2-py3.9.egg\SUAVE\Methods\Missions\Segments\Common\Aerodynamics.py:186 in update_aerodynamics
    CLmax              = aerodynamics_model.settings.maximum_lift_coefficient

to analyse what the problem could be, but I wasn't sure where the maximum lift coefficient is calculated. For the Stall message I played around with the rotor parameters and included parameters from a working to get rid of this error message, but without success.

Did anyone experience this error message before and knows what the issue could be?

Thanks and best regards,
Tim

Emilio

unread,
Aug 29, 2022, 3:26:19 PM8/29/22
to SUAVE FORUM
Hi Tim,
The maximum_lift_coefficient is vehicle level for the wings not for the rotor. The error you're getting has to do with the flow around the rotor blade.

We do use a stall model when analyzing rotors with airfoils. If the rotor consistently does not converge then the mission will not usually (some intermediate stalls in the process can happen). Flight conditions specified and the rotor as inputted the rotor is stalled and it cannot find a solution. Some of this is truly stalled and cannot be fixed: change the velocity, altitude, rotor, etc..or it could be the initial conditions for the mission are too far from the design of the propeller/rotor. If it's the mission, you can adjust the initial throttle guess setting or initial guess for the propeller CP. You can also try removing the airfoils from the rotor, that will use a DAE fit with a linear lift curve slope.

-Emilio

Tim S

unread,
Aug 29, 2022, 4:56:45 PM8/29/22
to SUAVE FORUM
Hello Emilio,

thanks for your fast response, the stall error is gone now as it was probably a unit error with the rpm. However the maximum lift coefficient error still occurs. If I remove the line in the hover_climb segment: 
segment.process.iterate.unknowns.mission                 = SUAVE.Methods.skip 

as suggested in a different thread I get the error message: 
AttributeError: 'Unknowns' object has no attribute 'throttle'

I then added a throttel setting with: 
segment.state.unknowns.throttle = ones_row(1) * 0.5

which is probably wrong as it didn't change much.

Sorry if I am asking quite obvious questions but I haven't worked with SUAVE for that long yet. 

All the best,
Tim

Emilio

unread,
Aug 29, 2022, 7:19:35 PM8/29/22
to SUAVE FORUM
Hi,
Unless you have a very good reason, do not skip the mission iteration. 

The default throttle settings for most missions is 0.5. So I suggest setting your throttle setting to be 1.0. If that doesn't work you can change the initial propeller CP. You can see all options here. Not all battery models use all options, and it doesn't sound like a battery issue.

No problem on asking good questions. It helps folks learn and helps us make better tutorials.

-Emilio
Message has been deleted

Tim S

unread,
Sep 4, 2022, 1:49:31 PM9/4/22
to SUAVE FORUM
Hi Emilio,

I solved the issue with the 'maximum_lift_coefficient', but the Rotor BEVW stall error is still appearing sometimes. I should also add that I am using the lift+cruise setup (as in the evtol example). I went through all of the described options you provided and changed some of the mission inputs. I also read in a different thread that adding the config setup helped, but that also didn't fix the problem. Another assumption would be that the network is not properly assigned, currently my setup_vehicle function starts like this:
Setup_SUAVE.PNG
I also tried specifying the network again after the import of the vehicle but that lead to other errors. If I am not mistaken the above method should be the right way when importing from OpenVSP. Could the import cause an issue with the segments not converging?

Another question just came up. I might want to import lifter rotors and propellers in the future from OpenVSP to SUAVE, currently, I tried to achieve this using the read_vsp_propeller function and specifying the prop_id, but this didn't work, I will give it another shot. I also saw a forum entry that said we should use the BEM_read function. Is the first method an improvement to the BEM_read function? Maybe it would help if you have an example code piece of a propeller import, possibly of multiple propellers as I am using two pusher propellers.

Thanks for your support!

Tim
Message has been deleted

Tim S

unread,
Sep 5, 2022, 12:44:29 PM9/5/22
to SUAVE FORUM
Hi Emilio,

I solved the issue by moving only keeping the line_: 'net                              = SUAVE.Components.Energy.Networks.Lift_Cruise()' above the import and moving the rest below the import. Actually makes sense to do this, but I was focussed on the stall and missed this point. It is working now.

All the best,
Tim

Reply all
Reply to author
Forward
0 new messages