ConOpSys V2970  P004.07
ANVILEX control operating system
Function_Block_OSG_1_Phase_PLL.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
2 //! @file Function_Block_OSG_1_Phase_PLL.h
3 //! @author ANVILEX GmbH
4 //! @version V1.0
5 //! @date 16.05.2015
6 //! @brief OSG 1 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 // TFunction_Block_OSG_1_Phase_PLL
39 //
40 //------------------------------------------------------------------------------
41 
42 //------------------------------------------------------------------------------
43 // Protecting header files from mutual, recursive inclusion.
44 //------------------------------------------------------------------------------
45 
46 #pragma once
47 
48 //------------------------------------------------------------------------------
49 // Include standard libraries header files
50 //------------------------------------------------------------------------------
51 
52 //------------------------------------------------------------------------------
53 // Include thrid party header files
54 //------------------------------------------------------------------------------
55 
56 //------------------------------------------------------------------------------
57 // Include ConOpSys header files
58 //------------------------------------------------------------------------------
59 
60 #include "Function_Block_Base.h"
61 
62 //------------------------------------------------------------------------------
63 // Include ConOpSys application header files
64 //------------------------------------------------------------------------------
65 
66 //------------------------------------------------------------------------------
67 // Macros
68 //------------------------------------------------------------------------------
69 
70 //------------------------------------------------------------------------------
71 //! @brief Class declaration description
72 //------------------------------------------------------------------------------
73 
75 {
76 
77  //----------------------------------------------------------------------------
78  // Public defines, methods and variables
79  //----------------------------------------------------------------------------
80 
81  public:
82 
83  //!-------------------------------------------------------------------------
84  //! @brief Class constructor method.
85  //! @note None
86  //! \par Override
87  //! Not allowed
88  //! @attention Don't call this method directly.
89  //--------------------------------------------------------------------------
90 
92 
93  //!-------------------------------------------------------------------------
94  //! @brief Class destructor method.
95  //! @note None
96  //! \par Override
97  //! Not allowed
98  //! @attention Don't call this method directly.
99  //--------------------------------------------------------------------------
100 
102 
103  //!-------------------------------------------------------------------------
104  //! @brief Function block initialisation method.
105  //! @note None
106  //! \par Override
107  //! Not allowed
108  //! @attention Don't call this method directly.
109  //--------------------------------------------------------------------------
110 
111  virtual VOID Init();
112 
113  //!-------------------------------------------------------------------------
114  //! @brief Function block execution method.
115  //! @note None
116  //! \par Override
117  //! Not allowed
118  //! @attention None
119  //--------------------------------------------------------------------------
120 
121  virtual VOID Execute();
122 
123  //!-------------------------------------------------------------------------
124  //! @brief Send information about Function block over communication link protocol
125  //! @note This method sends information about Function block over specified communication link protocol.
126  //! @param [in] TProtocol_Base *object_Protocol - Pointer to the communication link protocol
127  //! @return None
128  //! \par Override
129  //! Not allowed
130  //! @attention None
131  //--------------------------------------------------------------------------
132 
133  virtual VOID Send_Information( TProtocol_Base *object_Protocol );
134 
135  //--------------------------------------------------------------------------
136  // Function block parameter connectors
137  //--------------------------------------------------------------------------
138 
140  TBlock_Input_Connector object_f32_Base_Magnitude; //!< Base magnitude of input signal
141 
142  TBlock_Input_Connector object_f32_Zetta; //!< Damping factor : 0.7
143  TBlock_Input_Connector object_f32_Delta; //!< Tolerance band : 0.05 (5%) oder 0.02 (2%)
144  TBlock_Input_Connector object_f32_Ts; //!< Settling time in seconds : 0.03s
145 
147 
149 
150  //--------------------------------------------------------------------------
151  // Function block input connectors
152  //--------------------------------------------------------------------------
153 
155 
156  //--------------------------------------------------------------------------
157  // Function block output connectors
158  //--------------------------------------------------------------------------
159 
160  TBlock_Output_Connector object_f32_Magnitude; //!< Magnitude of the input signal
161  TBlock_Output_Connector object_f32_Frequency; //!< Frequency of the input signal
162  TBlock_Output_Connector object_f32_Angular_Frequency; //!< Angular frequency of the input signal
163  TBlock_Output_Connector object_f32_Theta_360; //!< Phase of the input signal
164  TBlock_Output_Connector object_f32_Theta_180; //!< Phase of the input signal
167 
168  //----------------------------------------------------------------------------
169  // Protected defines, methods and variables
170  //----------------------------------------------------------------------------
171 
172  protected:
173 
174  //----------------------------------------------------------------------------
175  // Private defines, methods and variables
176  //----------------------------------------------------------------------------
177 
178  private:
179 
180  //--------------------------------------------------------------------------
181  // Input related parameters
182  //--------------------------------------------------------------------------
183 
184  F32 f32_Angular_Base_Frequency; //!< Angular base frequency
185 
186  F32 f32_Input_Z0; //!< Non delayed input signal
187  F32 f32_Input_Z1; //!< One sample delayed input signal
188  F32 f32_Input_Z2; //!< Two samples delayed input signal
189 
190  //--------------------------------------------------------------------------
191  // OSG related parameters
192  //--------------------------------------------------------------------------
193 
196 
199 
203 
207 
211 
214 
215  //--------------------------------------------------------------------------
216  // LPF related parameters
217  //--------------------------------------------------------------------------
218 
219  F32 f32_LPF_Wn; //!< LPF natural frequency in radian per second
220  F32 f32_LPF_Ti; //!< LPF time constant
221  F32 f32_LPF_Kp; //!< LPF proportional gain
222  F32 f32_LPF_Ki; //!< LPF integral gain
223 
225  F32 f32_LPF_Output; //!< LPF output
226 
227  //--------------------------------------------------------------------------
228  // Angle integrator related parameters
229  //--------------------------------------------------------------------------
230 
231  F32 f32_Theta; //!< Phase angle
232  F32 f32_Sin; //!< Sinus
233  F32 f32_Cos; //!< Cosinus
234 
235 };
236 
237 //------------------------------------------------------------------------------
238 // End Of File
239 //------------------------------------------------------------------------------
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_1_Phase_PLL.h:75
TBlock_Output_Connector object_f32_Frequency
Frequency of the input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:161
TBlock_Output_Connector object_f32_Theta_180
Phase of the input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:164
TBlock_Input_Connector object_f32_Base_Magnitude
Base magnitude of input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:140
TBlock_Output_Connector object_f32_Cos
Sinus.
Definition: Function_Block_OSG_1_Phase_PLL.h:166
F32 f32_LPF_Ki
LPF integral gain.
Definition: Function_Block_OSG_1_Phase_PLL.h:222
F32 f32_Cos
Cosinus.
Definition: Function_Block_OSG_1_Phase_PLL.h:233
F32 f32_LPF_Kp
LPF proportional gain.
Definition: Function_Block_OSG_1_Phase_PLL.h:221
F32 f32_OSG_beta_Z0
Definition: Function_Block_OSG_1_Phase_PLL.h:210
TBlock_Input_Connector object_f32_Sample_Time
Sample time.
Definition: Function_Block_OSG_1_Phase_PLL.h:146
virtual VOID Init()
Function block initialisation method.
Definition: Function_Block_OSG_1_Phase_PLL.cpp:179
F32 f32_Q
Definition: Function_Block_OSG_1_Phase_PLL.h:213
F32 f32_OSG_qb1
Definition: Function_Block_OSG_1_Phase_PLL.h:201
F32 f32_OSG_alpha_Z0
Definition: Function_Block_OSG_1_Phase_PLL.h:206
TBlock_Input_Connector object_f32_Base_Frequency
Base frequency in herz.
Definition: Function_Block_OSG_1_Phase_PLL.h:139
TBlock_Input_Connector object_f32_Ts
Settling time in seconds : 0.03s.
Definition: Function_Block_OSG_1_Phase_PLL.h:144
F32 f32_Theta
Phase angle.
Definition: Function_Block_OSG_1_Phase_PLL.h:231
F32 f32_LPF_Wn
LPF natural frequency in radian per second.
Definition: Function_Block_OSG_1_Phase_PLL.h:219
F32 f32_Input_Z1
One sample delayed input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:187
F32 f32_LPF_Ti
LPF time constant.
Definition: Function_Block_OSG_1_Phase_PLL.h:220
F32 f32_OSG_b2
Definition: Function_Block_OSG_1_Phase_PLL.h:195
TBlock_Input_Connector object_f32_Zetta
Damping factor : 0.7.
Definition: Function_Block_OSG_1_Phase_PLL.h:142
virtual VOID Send_Information(TProtocol_Base *object_Protocol)
Send information about Function block over communication link protocol.
Definition: Function_Block_OSG_1_Phase_PLL.cpp:396
F32 f32_OSG_qb0
Definition: Function_Block_OSG_1_Phase_PLL.h:200
F32 f32_Sin
Sinus.
Definition: Function_Block_OSG_1_Phase_PLL.h:232
F32 f32_OSG_beta_Z2
Definition: Function_Block_OSG_1_Phase_PLL.h:208
TBlock_Input_Connector object_f32_Input
Input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:154
F32 f32_OSG_a1
Definition: Function_Block_OSG_1_Phase_PLL.h:197
F32 f32_Angular_Base_Frequency
Angular base frequency.
Definition: Function_Block_OSG_1_Phase_PLL.h:184
F32 f32_LPF_Temporary_Output
Definition: Function_Block_OSG_1_Phase_PLL.h:224
TBlock_Output_Connector object_f32_Theta_360
Phase of the input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:163
virtual VOID Execute()
Function block execution method.
Definition: Function_Block_OSG_1_Phase_PLL.cpp:236
F32 f32_D
Definition: Function_Block_OSG_1_Phase_PLL.h:212
F32 f32_OSG_alpha_Z2
Definition: Function_Block_OSG_1_Phase_PLL.h:204
F32 f32_OSG_qb2
Definition: Function_Block_OSG_1_Phase_PLL.h:202
TBlock_Input_Connector object_f32_Theta_Offset
Phase offset.
Definition: Function_Block_OSG_1_Phase_PLL.h:148
F32 f32_OSG_beta_Z1
Definition: Function_Block_OSG_1_Phase_PLL.h:209
F32 f32_OSG_alpha_Z1
Definition: Function_Block_OSG_1_Phase_PLL.h:205
TBlock_Input_Connector object_f32_Delta
Tolerance band : 0.05 (5%) oder 0.02 (2%)
Definition: Function_Block_OSG_1_Phase_PLL.h:143
F32 f32_OSG_a2
Definition: Function_Block_OSG_1_Phase_PLL.h:198
TFunction_Block_OSG_1_Phase_PLL()
Class constructor method.
Definition: Function_Block_OSG_1_Phase_PLL.cpp:70
virtual ~TFunction_Block_OSG_1_Phase_PLL()
Class destructor method.
Definition: Function_Block_OSG_1_Phase_PLL.cpp:169
F32 f32_Input_Z0
Non delayed input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:186
TBlock_Output_Connector object_f32_Magnitude
Magnitude of the input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:160
TBlock_Output_Connector object_f32_Angular_Frequency
Angular frequency of the input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:162
TBlock_Output_Connector object_f32_Sin
Cosinus.
Definition: Function_Block_OSG_1_Phase_PLL.h:165
F32 f32_Input_Z2
Two samples delayed input signal.
Definition: Function_Block_OSG_1_Phase_PLL.h:188
F32 f32_LPF_Output
LPF output.
Definition: Function_Block_OSG_1_Phase_PLL.h:225
F32 f32_OSG_b0
Definition: Function_Block_OSG_1_Phase_PLL.h:194
Definition: Protocol_Base.h:57