/home/runner/work/kynema/kynema/kynema/src/utilities/controllers/discon.cpp File Reference

Kynema API: /home/runner/work/kynema/kynema/kynema/src/utilities/controllers/discon.cpp File Reference
Kynema API
A flexible multibody structural dynamics code for wind turbines
Loading...
Searching...
No Matches
discon.cpp File Reference
#include "discon.hpp"
#include <algorithm>
#include <array>
#include <cmath>
#include <cstring>
#include <fstream>
#include <iterator>
#include <ranges>
#include "controller_io.hpp"

Classes

struct  kynema::util::InternalState
 

Namespaces

namespace  kynema
 
namespace  kynema::util
 

Functions

int kynema::util::SetupFirstCall (const ControllerIO &swap, InternalState &state, char *const avcMSG)
 
void kynema::util::FilterGeneratorSpeed (const ControllerIO &swap, InternalState &state)
 
void kynema::util::VariableSpeedTorqueControl (ControllerIO &swap, InternalState &state)
 
void kynema::util::PitchControl (ControllerIO &swap, InternalState &state)
 
int kynema::util::ComputeControl (ControllerIO &swap, InternalState &state, char *const avcMSG)
 
void kynema::util::PackInternalStateToFile (const InternalState &state, const char *const accINFILE)
 
void kynema::util::UnpackInternalStateFromFile (const char *const accINFILE, InternalState &state)
 
void kynema::util::DISCON (float avrSWAP[], int *aviFAIL, const char *accINFILE, char *avcOUTNAME, char *avcMSG)
 This Bladed-style DLL controller is used to implement a variable-speed generator-torque controller and PI collective blade pitch controller for the NREL Offshore 5MW baseline wind turbine. This routine was originally written in Fortran by J. Jonkman of NREL/NWTC for use in the IEA Annex XXIII OC3 studies.
 

Variables

static constexpr double kynema::util::kVS_CtInSp {70.16224}
 Transitional generator speed (HSS side) between regions 1 and 1 1/2, rad/s.
 
static constexpr double kynema::util::kVS_DT {0.000125}
 Communication interval for torque controller, sec.
 
static constexpr double kynema::util::kVS_MaxRat {15000.}
 Maximum torque rate (in absolute value) in torque controller, N-m/s.
 
static constexpr double kynema::util::kVS_MaxTq {47402.91}
 Maximum generator torque in Region 3 (HSS side), N-m.
 
static constexpr double kynema::util::kVS_Rgn2K {2.332287}
 Generator torque constant in Region 2 (HSS side), N-m/(rad/s)^2.
 
static constexpr double kynema::util::kVS_Rgn2Sp {91.21091}
 Transitional generator speed (HSS side) between regions 1 1/2 and 2, rad/s.
 
static constexpr double kynema::util::kVS_Rgn3MP {0.01745329}
 
static constexpr double kynema::util::kVS_RtGnSp {121.6805}
 Rated generator speed (HSS side), rad/s.
 
static constexpr double kynema::util::kVS_RtPwr {5296610.0}
 Rated generator generator power in Region 3, Watts.
 
static constexpr double kynema::util::kCornerFreq {1.570796}
 
static constexpr double kynema::util::kOnePlusEps {1.0 + 1.19e-07}
 A value slightly greater than unity in single precision.
 
static constexpr double kynema::util::kPC_DT {0.000125}
 Communication interval for the pitch controller, sec.
 
static constexpr double kynema::util::kPC_KI {0.008068634}
 Integral gain for pitch controller at rated pitch (zero), (-)
 
static constexpr double kynema::util::kPC_KK {0.1099965}
 
static constexpr double kynema::util::kPC_KP {0.01882681}
 Proportional gain for pitch controller at rated pitch (zero), sec.
 
static constexpr double kynema::util::kPC_MaxPit {1.570796}
 Maximum pitch setting in pitch controller, rad.
 
static constexpr double kynema::util::kPC_MaxRat {0.1396263}
 Maximum pitch rate (in absolute value) in pitch controller, rad/s.
 
static constexpr double kynema::util::kPC_MinPit {0.0}
 Minimum pitch setting in pitch controller, rad.
 
static constexpr double kynema::util::kPC_RefSpd {122.9096}
 Desired (reference) HSS speed for pitch controller, rad/s.
 
static constexpr double kynema::util::kVS_SlPc {10.0}
 Factor to convert radians to degrees.