ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_Grid_Power_Control.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_Grid_Power_Control.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 18.05.2016
6 //! @brief Grid power control class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2016-2018 ANVILEX GmbH
10 //!
11 //! Redistribution and use in source and binary forms, with or without
12 //! modification, are permitted provided that the following conditions are met:
13 //!
14 //! 1. Redistributions of source code must retain the above copyright notice,
15 //! this list of conditions and the following disclaimer.
16 //!
17 //! 2. Redistributions in binary form must reproduce the above copyright notice,
18 //! this list of conditions and the following disclaimer in the documentation
19 //! and/or other materials provided with the distribution.
20 //!
21 //! 3. Neither the name of ANVILEX nor the names of its contributors may be
22 //! used to endorse or promote products derived from this software without
23 //! specific prior written permission.
24 //!
25 //! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 //! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 //! IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 //! ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
29 //! LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 //! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 //! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 //! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 //! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 //! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 //! POSSIBILITY OF SUCH DAMAGE.
36 //------------------------------------------------------------------------------
37 
38 //------------------------------------------------------------------------------
39 // Protecting header files from mutual, recursive inclusion.
40 //------------------------------------------------------------------------------
41 
42 #pragma once
43 
44 //------------------------------------------------------------------------------
45 // Include standard libraries header files
46 //------------------------------------------------------------------------------
47 
48 //------------------------------------------------------------------------------
49 // Include thrid party header files
50 //------------------------------------------------------------------------------
51 
52 //------------------------------------------------------------------------------
53 // Include ConOpSys header files
54 //------------------------------------------------------------------------------
55 
56 #include "Function_Block_Base.h"
57 
58 //------------------------------------------------------------------------------
59 // Include ConOpSys application header files
60 //------------------------------------------------------------------------------
61 
62 //------------------------------------------------------------------------------
63 // Macros
64 //------------------------------------------------------------------------------
65 
66 //------------------------------------------------------------------------------
67 //! @brief Class declaration description
68 //------------------------------------------------------------------------------
69 
71 {
72 
73  //----------------------------------------------------------------------------
74  // Public defines, methods and variables
75  //----------------------------------------------------------------------------
76 
77  public:
78 
79  //!-------------------------------------------------------------------------
80  //! @brief Class constructor method.
81  //! @note None
82  //! \par Override
83  //! Not allowed
84  //! @attention Don't call this method directly.
85  //--------------------------------------------------------------------------
86 
88 
89  //!-------------------------------------------------------------------------
90  //! @brief Class destructor method.
91  //! @note None
92  //! \par Override
93  //! Not allowed
94  //! @attention Don't call this method directly.
95  //--------------------------------------------------------------------------
96 
98 
99  //!-------------------------------------------------------------------------
100  //! @brief Function block initialisation method.
101  //! @note None
102  //! \par Override
103  //! Not allowed
104  //! @attention Don't call this method directly.
105  //--------------------------------------------------------------------------
106 
107  virtual VOID Init();
108 
109  //!-------------------------------------------------------------------------
110  //! @brief Function block execution method.
111  //! @note None
112  //! \par Override
113  //! Not allowed
114  //! @attention None
115  //--------------------------------------------------------------------------
116 
117  virtual VOID Execute();
118 
119  //!-------------------------------------------------------------------------
120  //! @brief Send information about Function block over communication link protocol
121  //! @note This method sends information about Function block over specified communication link protocol.
122  //! @param [in] TProtocol_Base *object_Protocol - Pointer to the communication link protocol
123  //! @return None
124  //! \par Override
125  //! Not allowed
126  //! @attention None
127  //--------------------------------------------------------------------------
128 
129  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
130 
131  //--------------------------------------------------------------------------
132  // Function block parameter connectors
133  //--------------------------------------------------------------------------
134 
135  TBlock_Input_Connector object_f32_Sample_Time; //!< Function block sample time in seconds
136 
137  TBlock_Input_Connector object_f32_Rated_Grid_Voltage; //!< Rated grid phase-neutral voltage magnitude in volts
138  TBlock_Input_Connector object_f32_Rated_Grid_Current; //!< Rated grid phase current magnitude in amper
142 // TBlock_Input_Connector object_f32_Q_Injection_Mode;
143  TBlock_Input_Connector object_f32_Torque_Limit; //!< Generator torque limit in N*m
145  TBlock_Input_Connector object_f32_Grid_Setpoint_Q_Positive_Limit; //! Reactive setpoint positive limit in VAr
146  TBlock_Input_Connector object_f32_Grid_Setpoint_Q_Negative_Limit; //! Reactive setpoint negative limit in VAr
147  TBlock_Input_Connector object_f32_Operation_Stator_Current_Q_Positive_Limit; //!< Regular operation stator reactive power positive limit in ampere
148  TBlock_Input_Connector object_f32_Operation_Stator_Current_Q_Negative_Limit; //!< Regular operation stator reactive power negative limit in ampere
149  TBlock_Input_Connector object_f32_Symmetrical_Fault_Stator_Current_Q_Positive_Limit; //!< Symmetrical fault stator reactive power positive limit in ampere
150  TBlock_Input_Connector object_f32_Symmetrical_Fault_Stator_Current_Q_Negative_Limit; //!< Symmetrical fault stator reactive power negative limit in ampere
151  TBlock_Input_Connector object_f32_Asymmetrical_Fault_Stator_Current_Q_Positive_Limit; //!< Asymmetrical fault stator reactive power positive limit in ampere
152  TBlock_Input_Connector object_f32_Asymmetrical_Fault_Stator_Current_Q_Negative_Limit; //!< Asymmetrical fault stator reactive power negative limit in ampere
153 
154  //--------------------------------------------------------------------------
155  // Function block input connectors
156  //--------------------------------------------------------------------------
157 
158  TBlock_Input_Connector object_bool_Enable; //!< Enable grid power control operation
160  TBlock_Input_Connector object_bool_LVRT_Asymmetry; //!< LVRT fault asymmetry flag
161 
162  TBlock_Input_Connector object_f32_Grid_Voltage_Magnitude; //!< Actual phase-neutral grid voltage magnitude
163  TBlock_Input_Connector object_f32_Rotor_Omega; //!< Actual rotor angular speed
164 
165  TBlock_Input_Connector object_f32_Grid_Power_P_Setpoint; //!< Grid active power reference input
166  TBlock_Input_Connector object_f32_Grid_Power_P_Test_Setpoint; //!< Grid active power test reference input
167  TBlock_Input_Connector object_f32_Grid_Power_Q_Setpoint; //!< Grid reactive power reference input
168  TBlock_Input_Connector object_f32_Grid_Power_Q_Test_Setpoint; //!< Grid reactive power test reference input
169 
170  TBlock_Input_Connector object_f32_Stator_Power_Q_Positive_Maximum; //!< Maximal positive stator reactive power
171  TBlock_Input_Connector object_f32_Stator_Power_Q_Negative_Maximum; //!< Maximal negative stator reactive power
172 
173  TBlock_Input_Connector object_f32_Grid_Current_Q; //!< Actual reactive grid current
174 
175  //--------------------------------------------------------------------------
176  // Function block output connectors
177  //--------------------------------------------------------------------------
178 
179  TBlock_Output_Connector object_f32_Torque_Setpoint; //!< Generator torque setpoint output
180 
181  TBlock_Output_Connector object_Grid_Power_Q_Setpoint; //!< Grid reactive power setpoint output
182  TBlock_Output_Connector object_Stator_Power_Q_Setpoint; //!< Stator reactive power setpoint output
183  TBlock_Output_Connector object_GSI_Power_Q_Setpoint; //!< Grid side inverter reactive power setpoint output
184 
185  TBlock_Output_Connector object_f32_Grid_Current_Q_Setpoint; //!< Grid reactive current setpoint output
186  TBlock_Output_Connector object_f32_Stator_Current_Q_Setpoint; //!< Stator reactive current setpoint output
187  TBlock_Output_Connector object_f32_GSI_Current_Q_Setpoint; //!< Grid side inverter reactive current setpoint output
188 
191 
192  #ifdef FUNCTION_BLOCK_CREATE_DIAGNOSE_OUTPUTS
193  F32 f32_Delta;
194  F32 f32_Relative_Grid_Voltage;
195  F32 f32_Torque_Setpoint;
196  F32 f32_Stator_Current_Q_Setpoint;
197  #endif
198 
199  //----------------------------------------------------------------------------
200  // Protected methods and variables
201  //----------------------------------------------------------------------------
202 
203  protected:
204 
205  //----------------------------------------------------------------------------
206  // private methods and variables
207  //----------------------------------------------------------------------------
208 
209  private:
210 
211  // Internal variables
212  F32 f32_1_Div_Rated_Grid_Voltage; //!< Internal parameter
213  F32 f32_Rated_Grid_Voltage_Magnitude; //!< Rated grid voltage magnitude
214  F32 f32_Rated_Grid_Current_Magnitude; //!< Rated grid current magnitude
215 // F32 f32_Power_To_Current_Conversion_Factor; //!< Power to currect conversion factor
216 
219 
220 };
221 
222 //------------------------------------------------------------------------------
223 // End Of File
224 //------------------------------------------------------------------------------
int BOOL
Boolean datatype definition.
Definition: Defines.h:124
void VOID
Datatypesess datatype definition.
Definition: Defines.h:105
float F32
IEEE-754 32-Bit single presession floating point numbers datatype defenition.
Definition: Defines.h:324
Function block base class header file.
Function block input connector class.
Definition: Block_Input_Connector.h:83
Function block output connector class.
Definition: Block_Output_Connector.h:59
Function block base class for device.
Definition: Function_Block_Base.h:96
Class declaration description.
Definition: Function_Block_Grid_Power_Control.h:71
TBlock_Input_Connector object_f32_Grid_Setpoint_Q_Negative_Limit
Reactive setpoint positive limit in VAr.
Definition: Function_Block_Grid_Power_Control.h:146
BOOL bool_Undervoltage
Definition: Function_Block_Grid_Power_Control.h:218
TBlock_Input_Connector object_f32_Q_Injection_Voltage_Boost
Definition: Function_Block_Grid_Power_Control.h:140
BOOL bool_Overvoltage
Definition: Function_Block_Grid_Power_Control.h:217
TBlock_Input_Connector object_bool_LVRT_Operation
LVRT operation request.
Definition: Function_Block_Grid_Power_Control.h:159
TBlock_Output_Connector object_GSI_Power_Q_Setpoint
Grid side inverter reactive power setpoint output.
Definition: Function_Block_Grid_Power_Control.h:183
TBlock_Input_Connector object_f32_Asymmetrical_Fault_Stator_Current_Q_Positive_Limit
Asymmetrical fault stator reactive power positive limit in ampere.
Definition: Function_Block_Grid_Power_Control.h:151
TBlock_Output_Connector object_f32_Grid_Current_Q_Setpoint
Grid reactive current setpoint output.
Definition: Function_Block_Grid_Power_Control.h:185
TBlock_Input_Connector object_f32_Grid_Power_Q_Setpoint
Grid reactive power reference input.
Definition: Function_Block_Grid_Power_Control.h:167
TBlock_Input_Connector object_f32_Grid_Voltage_Magnitude
Actual phase-neutral grid voltage magnitude.
Definition: Function_Block_Grid_Power_Control.h:162
TBlock_Input_Connector object_f32_Grid_Setpoint_P_Positive_Limit
Definition: Function_Block_Grid_Power_Control.h:144
F32 f32_Rated_Grid_Voltage_Magnitude
Rated grid voltage magnitude.
Definition: Function_Block_Grid_Power_Control.h:213
TBlock_Input_Connector object_f32_Q_Injection_Voltage_Deadband
???
Definition: Function_Block_Grid_Power_Control.h:139
TBlock_Output_Connector object_f32_Torque_Setpoint
Generator torque setpoint output.
Definition: Function_Block_Grid_Power_Control.h:179
TBlock_Input_Connector object_f32_Rated_Grid_Voltage
Rated grid phase-neutral voltage magnitude in volts.
Definition: Function_Block_Grid_Power_Control.h:137
TBlock_Output_Connector object_Stator_Power_Q_Setpoint
Stator reactive power setpoint output.
Definition: Function_Block_Grid_Power_Control.h:182
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_Grid_Power_Control.cpp:260
TBlock_Input_Connector object_f32_Grid_Power_P_Test_Setpoint
Grid active power test reference input.
Definition: Function_Block_Grid_Power_Control.h:166
TFunction_Block_Grid_Power_Control()
Class constructor method.
Definition: Function_Block_Grid_Power_Control.cpp:68
TBlock_Input_Connector object_f32_Rated_Grid_Current
Rated grid phase current magnitude in amper.
Definition: Function_Block_Grid_Power_Control.h:138
TBlock_Input_Connector object_f32_Symmetrical_Fault_Stator_Current_Q_Positive_Limit
Symmetrical fault stator reactive power positive limit in ampere.
Definition: Function_Block_Grid_Power_Control.h:149
TBlock_Input_Connector object_f32_Grid_Power_Q_Test_Setpoint
Grid reactive power test reference input.
Definition: Function_Block_Grid_Power_Control.h:168
F32 f32_1_Div_Rated_Grid_Voltage
Internal parameter.
Definition: Function_Block_Grid_Power_Control.h:212
TBlock_Input_Connector object_f32_Grid_Setpoint_Q_Positive_Limit
Active setpoint postive limit in W.
Definition: Function_Block_Grid_Power_Control.h:145
TBlock_Input_Connector object_f32_Sample_Time
Function block sample time in seconds.
Definition: Function_Block_Grid_Power_Control.h:135
TBlock_Input_Connector object_f32_Torque_Limit
Generator torque limit in N*m.
Definition: Function_Block_Grid_Power_Control.h:143
TBlock_Input_Connector object_bool_Enable
Enable grid power control operation.
Definition: Function_Block_Grid_Power_Control.h:158
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_Grid_Power_Control.cpp:238
TBlock_Output_Connector object_f32_Delta_Grid_Voltage
Definition: Function_Block_Grid_Power_Control.h:190
TBlock_Input_Connector object_f32_Rotor_Omega
Actual rotor angular speed.
Definition: Function_Block_Grid_Power_Control.h:163
TBlock_Input_Connector object_f32_Asymmetrical_Fault_Stator_Current_Q_Negative_Limit
Asymmetrical fault stator reactive power negative limit in ampere.
Definition: Function_Block_Grid_Power_Control.h:152
TBlock_Output_Connector object_f32_GSI_Current_Q_Setpoint
Grid side inverter reactive current setpoint output.
Definition: Function_Block_Grid_Power_Control.h:187
TBlock_Input_Connector object_f32_Grid_Current_Q
Actual reactive grid current.
Definition: Function_Block_Grid_Power_Control.h:173
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_Grid_Power_Control.cpp:750
TBlock_Input_Connector object_f32_Stator_Power_Q_Positive_Maximum
Maximal positive stator reactive power.
Definition: Function_Block_Grid_Power_Control.h:170
virtual ~TFunction_Block_Grid_Power_Control()
Class destructor method.
Definition: Function_Block_Grid_Power_Control.cpp:228
TBlock_Input_Connector object_f32_Operation_Stator_Current_Q_Positive_Limit
Reactive setpoint negative limit in VAr.
Definition: Function_Block_Grid_Power_Control.h:147
TBlock_Output_Connector object_f32_Stator_Current_Q_Setpoint
Stator reactive current setpoint output.
Definition: Function_Block_Grid_Power_Control.h:186
TBlock_Input_Connector object_f32_Symmetrical_Fault_Stator_Current_Q_Negative_Limit
Symmetrical fault stator reactive power negative limit in ampere.
Definition: Function_Block_Grid_Power_Control.h:150
TBlock_Output_Connector object_Grid_Power_Q_Setpoint
Grid reactive power setpoint output.
Definition: Function_Block_Grid_Power_Control.h:181
TBlock_Input_Connector object_f32_K_Factor
???
Definition: Function_Block_Grid_Power_Control.h:141
TBlock_Input_Connector object_f32_Grid_Power_P_Setpoint
Grid active power reference input.
Definition: Function_Block_Grid_Power_Control.h:165
TBlock_Input_Connector object_f32_Stator_Power_Q_Negative_Maximum
Maximal negative stator reactive power.
Definition: Function_Block_Grid_Power_Control.h:171
F32 f32_Rated_Grid_Current_Magnitude
Rated grid current magnitude.
Definition: Function_Block_Grid_Power_Control.h:214
TBlock_Input_Connector object_bool_LVRT_Asymmetry
LVRT fault asymmetry flag.
Definition: Function_Block_Grid_Power_Control.h:160
TBlock_Input_Connector object_f32_Operation_Stator_Current_Q_Negative_Limit
Regular operation stator reactive power negative limit in ampere.
Definition: Function_Block_Grid_Power_Control.h:148
TBlock_Output_Connector object_f32_Relative_Grid_Voltage
Definition: Function_Block_Grid_Power_Control.h:189
Definition: Protocol_Base.h:57