Dear Zarei,
In general, for a simple single degree of freedom second-order system of the form mxdd + cxd + kx = 0, the natural frequency is omega_n = sqrt(k/m) and the critical damping is c_c = 2sqrt(km) = 2momega_n. While the paper specifies omega_n, it is unclear what mass/inertia (m) is used. I would guess that it is the rotor inertia (m = RotIner) or full drivetrain inertia (m = RotIner + GenInerGBRatio^2).
Best regards,
Dear Dr. Jonkman,
I’m designing a pitch controller and I need to know the state of the wind turbine. Based on the degrees of freedom I set, I extracted Q_GeAz and QD_GeAz from the output, which represents the Displacement of variable speed generator DOF and Velocity of variable speed generator DOF, respectively. I connected a differentiator to Q_GeAz in Simulink, I think its output should be consistent with QD_GeAz, but the actual gap is very large, please help me
Second question: If I want to extract all the states, can I only extract them from the outlist, and cannot use the differentiator in simulink
Thanks
Related documents.zip (51.3 KB)
Dear Zhe.Zhang,
Numerical derivatives produce noisy results and I would generally avoid them when possible. With Q_GeAz this is particularly true because Q_GeAz is reduced by 2pi whenever it exceeds 2pi (otherwise Q_GeAz will continue to increase and get very large over time), and so, the numerical derivative calculation must be changed near zero and 2pi.
Best regards,
Dear Dr. Jonkman’
Do you mean that I’d better use the form ‘u (strmatch (’ QD_GeAz ‘, OutList))’ when extracting the state related to the derivative?
Thanks
Dear Zhe.Zhang,
Yes, it would be better to use QD_GeAz directly from the simulation than to try to calculate by taking a numerical derivative of Q_GeAz.
Best regards,
Dear Dr. Jonkman
Does the value of ‘QD_GeAz’ (Velocity of variable speed generator DOF) indicate the generator speed, but through my comparison in simulink, they are not the same.
Thanks
Dear Zhe.Zhang,
Output QD_GeAz from ElastoDyn is the rotational speed on the low-speed shaft end of the gearbox. Multiplying QD_GeAz by the gearbox ratio (GBRatio) will give the generator speed.
Best regards,
Hello all
I have a question regarding the pitch controller of a 10MW semisub system
Currently the pitch controller of the simulink model seems to be working based on the PI controller parameters specified in the control file of the 10MW semisub file
The only problem I do not know how to activate this pitch controller at very low wind speeds (as currently it will compare the rotor speed with a reference value of 9.6RPM - rated value) and as such the system will not work at very low wind speeds
What advice would you give to overcome this issue?
Thanks for your time,
Cameron
Dear @Jason.Jonkman ,
I’ve recently been studying the control module ServoDyn in OpenFAST v3.5.3, but I have some questions as follows:
- Below the rated wind speed, the applied control torque is designed solely to accelerate or decelerate the rotor in order to capture maximum wind energy. Above the rated wind speed, the control torque is only intended to maintain constant rated power by adjusting the blade pitch angle. However, this control torque is not considered in OpenFAST’s calculation of rotor or tower loads. For example, after considering the control torque, T^control (denoted in red font and vector notation), the bending moment at the blade root should be modified accordingly as shown below. In fact, the original formula only accounts for the change in acceleration 𝑎, and it is located on page 5 of the FAST Loads document. https://openfast.readthedocs.io/en/main/source/user/elastodyn/index.html. Is that correct?
- In Region 2 of wind turbine control, for a transient process, the generator torque is not equal to 0.0255764×GenSpeed^2 , where GenSpeed represents the generator speed. I calculated a steady wind condition at 25 m/s with no shear effect, and set yaw = PreCone(1–3) = ShftTilt = 0°, RotSpeed = 11 rpm, and TMax = 58 s. The output at t=21.85 s is shown below. However, my manually calculated generator torque is 21.95 kN·m, while the simulation output gives 18.64 kN·m. Why is there a discrepancy? The calculation reference comes from page 20, Figure 7-2 of the "Definition of a 5-MW Reference Wind Turbine for Offshore System Development ".
- In the calculation process of the 25 m/s wind speed case in Problem 2 above, there were instances where the generator power was negative, as shown in the figure below. Is this situation caused by improper pitch control, which leads to aerodynamic forces causing the rotor to rotate counterclockwise and resulting in the generator rotating in reverse to be a motor?
Best regards,
Dear @Yangyang.Li,
Here are my responses to your questions:
- I don’t agree with your addition to the blade-root moment. The generator torque is not applied directly to the blade root; rather, it is applied to the generator. The generator torque will effect the rotational speed, which will influence the aerodynamic loads in the original blade-root moment equation, as well as the acceleration of the structural analysis nodes, and so, is already accounted for in the original equation.
- I’m not following. Is your model at steady-state? Are you using the baseline controller dynamic library for the NREL 5-MW baseline wind turbine? At 25 m/s, I would expect a rotor speed of 12.1 rpm and a generator speed of 1173.7 rpm for the NREL 5-MW baseline wind turbine, and at this wind speed, I would not expect the Region 2 torque law to be applied.
- I would guess there is something not set up correctly with your model, because the baseline controller dynamic library for the NREL 5-MW baseline wind turbine (assuming you are using this controller), is only designed to function during normal operation when the generator speed is positive. If you are not seeing that, my guess is your model is not set up properly to get correct results.
Best regards,
Dear @Jason.Jonkman ,
Thank you for your prompt responses, and I still have some questions as follows:
- ① Since the applied control torque acts on the generator, does the original formula ignore the torque generated by this external force when calculating the generator load, as shown in formula (1) below rated wind speed? ② When the applied control torque acts at the blade root , does the original formula also neglect this torque when calculating the blade root loads, as shown in formula (2) above rated wind speed for pitch control? For problem ①, The original formula is located on page 21 of the FASTLoads document.
- The output results correspond to a transient process. I would like to understand why the generator torque during the transient does not satisfy the relation 0.0255764 × GenSpeed², even though this relation holds under steady-state conditions. This case is based on the baseline controller dynamic library without any modifications or recompilation, with parameters PCMode = VSContrl = 5, and HSSBrMode = 0.
- Yes, I am using the baseline controller dynamic library. I would like to understand why the generator power becomes negative at certain time instances. Furthermore, at t = 58 s, an error occurred (as shown in the 1st figure below), so I was only able to output data up to 58 s, while the actual simulation duration was set to 670 s. I downloaded the latest DISCON.dll from the official source: https://github.com/OpenFAST/openfast/releases, but the issue remains exactly the same.
Best regards,
Dear @Yangyang.Li,
Regarding (1), the generator torque is included in equation (1), through the variable T^Gen. The generator torque is implicitly included in equation (2) through the acceleration of the structural nodes E^a^S1.
Regarding (2) and (3), it appears that your model is unstable. Can you clarify what you changed in the model relative to the original NREL 5-MW model I presume you took from the OpenFAST r-test? It sounds like you changed the wind speed; when you did this, did you initialize the rotor speed and blade-pitch angles in ElastoDyn to their expected (mean) values conditioned on the hub-height wind speed? Did you change anything else?
Best regards,
Dear @Jason.Jonkman ,
Thank you for your prompt and excellent responses. By setting RotSpeed = 12.1 rpm and BlPitch = 23.5 deg, my model has become stable. However,I still have some questions as follows, and are they correct?:
- The generator torque (GenTq) is solely a function of the generator speed (GenSpeed). When GenSpeed is known, GenTq can be determined based on the relationship between GenSpeed and GenTq for different control regions.
- The control target is the rotational speed regardless of the torque control below rated wind speed or the pitch control above rated wind speed. The former achieves the optimal rotational speed, while the latter maintains a constant rotational speed. Once the GenSpeed is determined, the generator torque (GenTq) for both cases can be calculated based on the mathematical relationship.
- ①When a wind speed is below the rated speed, if the GenSpeed has not reached the optimal tip-speed ratio (optimal rotational speed), the control system can be considered inactive. Once the optimal speed is reached, the control system begins to operate, maintaining the GenSpeed close to the optimal value. ②When a wind speed is above the rated speed, if the GenSpeed has not reached the rated rotational speed, the control system remains inactive. Once the rated speed is reached, the control system starts to operate, keeping the GenSpeed at a constant rotational speed.
Best regards,
Dear @Yangyang.Li,
Regarding (1) and (2), I agree with your statements for the baseline controller for the NREL 5-MW turbine, except that this controller uses the low-passed filter generator speed rather than the actual generator speed as input. Moreover, other controllers, may use different torque control methods, such as PID control.
Regarding (3), I don’t agree. The operational control is never inactive, except below cut-in and above cut-out wind speeds.
FYI: The baseline operational controller for the NREL 5-MW turbine is well documented in its specifications document: https://www.nrel.gov/docs/fy09osti/38060.pdf.
Best regards,