ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_OSG_3_Phase_PLL.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_OSG_3_Phase_PLL.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 16.05.2015
6 //! @brief OSG 3 phase PLL class header file.
7 //! @attention
8 //!
9 //! COPYRIGHT(C) 2015 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  // Private 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_Base_Magnitude; //!< Base magnitude of input signal
139  TBlock_Input_Connector object_f32_Zetta; //!< Damping factor : 0.7
140  TBlock_Input_Connector object_f32_Delta; //!< Tolerance band : 0.05 (5%) oder 0.02 (2%)
141  TBlock_Input_Connector object_f32_Ts; //!< Settling time in seconds : 0.03s
144 
145  //--------------------------------------------------------------------------
146  // Function block input connectors
147  //--------------------------------------------------------------------------
148 
149  TBlock_Input_Connector object_f32_A; //!< Input signal phase A
150  TBlock_Input_Connector object_f32_B; //!< Input signal phase B
151  TBlock_Input_Connector object_f32_C; //!< Input signal phase C
152 
153  //--------------------------------------------------------------------------
154  // Function block output connectors
155  //--------------------------------------------------------------------------
156 
157  TBlock_Output_Connector object_f32_Magnitude; //!< Magnitude of the input signal
158  TBlock_Output_Connector object_f32_Frequency; //!< Frequency of the input signal
159  TBlock_Output_Connector object_f32_Omega; //!< Angular frequency of the input signal
160  TBlock_Output_Connector object_f32_Theta; //!< Phase of the input signal
161 // TBlock_Output_Connector object_f32_Theta_180; //!< Phase of the input signal
162 // TBlock_Output_Connector object_f32_Sin; //!< Cosinus
163 // TBlock_Output_Connector object_f32_Cos; //!< Sinus
164 
165  //----------------------------------------------------------------------------
166  // Protected defines, methods and variables
167  //----------------------------------------------------------------------------
168 
169  protected:
170 
171  //----------------------------------------------------------------------------
172  // Private defines, methods and variables
173  //----------------------------------------------------------------------------
174 
175  private:
176 
177  F32 f32_Omega_Base; //!< Base frequency in rad/s
178  F32 f32_Omega_Maximum_Limit; //!< Minimal tracked frequency
179  F32 f32_Omega_Minimum_Limit; //!< Maximal tracked frequency
180 
181  F32 f32_D; //!< D component
182  F32 f32_Q; //!< Q component
183 
184  //--------------------------------------------------------------------------
185  // LPF related variables
186  //--------------------------------------------------------------------------
187 
188  F32 f32_LPF_Wn; //!< LPF natural frequency in radian per second
189  F32 f32_LPF_Ti; //!< LPF time constant
190  F32 f32_LPF_Kp; //!< LPF proportional gain
191  F32 f32_LPF_Ki; //!< LPF integral gain
192 
193 // F32 f32_LPF_Temporary_Output; //!< LPF temporary output
196 
197  F32 f32_LPF_Output; //!< LPF output
198 
199  //--------------------------------------------------------------------------
200  // PI regulator related variables
201  //--------------------------------------------------------------------------
202 
205 
207 
208  //--------------------------------------------------------------------------
209  // Angle integrator related variables
210  //--------------------------------------------------------------------------
211 
212  F32 f32_Theta; //!< Phase angle
213 
214 };
215 
216 //------------------------------------------------------------------------------
217 // End Of File
218 //------------------------------------------------------------------------------
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_OSG_3_Phase_PLL.h:71
F32 f32_LPF_Kp
LPF proportional gain.
Definition: Function_Block_OSG_3_Phase_PLL.h:190
TBlock_Input_Connector object_f32_Theta_Offset
Phase offset.
Definition: Function_Block_OSG_3_Phase_PLL.h:143
TBlock_Input_Connector object_f32_Base_Frequency
Base frequency in Herz.
Definition: Function_Block_OSG_3_Phase_PLL.h:136
F32 f32_KI
Definition: Function_Block_OSG_3_Phase_PLL.h:204
F32 f32_Omega_Minimum_Limit
Maximal tracked frequency.
Definition: Function_Block_OSG_3_Phase_PLL.h:179
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_OSG_3_Phase_PLL.cpp:420
TBlock_Input_Connector object_f32_C
Input signal phase C.
Definition: Function_Block_OSG_3_Phase_PLL.h:151
TFunction_Block_OSG_3_Phase_PLL()
Class constructor method.
Definition: Function_Block_OSG_3_Phase_PLL.cpp:70
TBlock_Input_Connector object_f32_Maximal_Frequency_Limit
Minimal tracked frequency.
Definition: Function_Block_OSG_3_Phase_PLL.h:137
F32 f32_LPF_Ki
LPF integral gain.
Definition: Function_Block_OSG_3_Phase_PLL.h:191
F32 f32_PI_Integral
Definition: Function_Block_OSG_3_Phase_PLL.h:206
F32 f32_LPF_Output_Minimum_Limit
Definition: Function_Block_OSG_3_Phase_PLL.h:194
TBlock_Input_Connector object_f32_Delta
Tolerance band : 0.05 (5%) oder 0.02 (2%)
Definition: Function_Block_OSG_3_Phase_PLL.h:140
virtual ~TFunction_Block_OSG_3_Phase_PLL()
Class destructor method.
Definition: Function_Block_OSG_3_Phase_PLL.cpp:175
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_OSG_3_Phase_PLL.cpp:221
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_OSG_3_Phase_PLL.cpp:185
TBlock_Input_Connector object_f32_Minimal_Frequency_Limit
Maximal tracked frequency.
Definition: Function_Block_OSG_3_Phase_PLL.h:138
F32 f32_LPF_Output
LPF output.
Definition: Function_Block_OSG_3_Phase_PLL.h:197
F32 f32_LPF_Output_Maximum_Limit
Definition: Function_Block_OSG_3_Phase_PLL.h:195
F32 f32_LPF_Wn
LPF natural frequency in radian per second.
Definition: Function_Block_OSG_3_Phase_PLL.h:188
TBlock_Input_Connector object_f32_Zetta
Damping factor : 0.7.
Definition: Function_Block_OSG_3_Phase_PLL.h:139
TBlock_Output_Connector object_f32_Frequency
Frequency of the input signal.
Definition: Function_Block_OSG_3_Phase_PLL.h:158
TBlock_Input_Connector object_f32_Ts
Settling time in seconds : 0.03s.
Definition: Function_Block_OSG_3_Phase_PLL.h:141
F32 f32_D
D component.
Definition: Function_Block_OSG_3_Phase_PLL.h:181
F32 f32_KP
Definition: Function_Block_OSG_3_Phase_PLL.h:203
F32 f32_Q
Q component.
Definition: Function_Block_OSG_3_Phase_PLL.h:182
F32 f32_Theta
Phase angle.
Definition: Function_Block_OSG_3_Phase_PLL.h:212
TBlock_Output_Connector object_f32_Theta
Phase of the input signal.
Definition: Function_Block_OSG_3_Phase_PLL.h:160
F32 f32_Omega_Maximum_Limit
Minimal tracked frequency.
Definition: Function_Block_OSG_3_Phase_PLL.h:178
TBlock_Input_Connector object_f32_Sample_Time
Sample time.
Definition: Function_Block_OSG_3_Phase_PLL.h:142
TBlock_Input_Connector object_f32_Base_Magnitude
Base magnitude of input signal.
Definition: Function_Block_OSG_3_Phase_PLL.h:135
F32 f32_Omega_Base
Base frequency in rad/s.
Definition: Function_Block_OSG_3_Phase_PLL.h:177
TBlock_Output_Connector object_f32_Omega
Angular frequency of the input signal.
Definition: Function_Block_OSG_3_Phase_PLL.h:159
TBlock_Input_Connector object_f32_B
Input signal phase B.
Definition: Function_Block_OSG_3_Phase_PLL.h:150
TBlock_Output_Connector object_f32_Magnitude
Magnitude of the input signal.
Definition: Function_Block_OSG_3_Phase_PLL.h:157
TBlock_Input_Connector object_f32_A
Input signal phase A.
Definition: Function_Block_OSG_3_Phase_PLL.h:149
F32 f32_LPF_Ti
LPF time constant.
Definition: Function_Block_OSG_3_Phase_PLL.h:189
Definition: Protocol_Base.h:57