Bar Logo 4kW dsPIC33C PSFB DC-DC DA (Part-No. )
 
Content
     
Loading...
Searching...
No Matches
pwrctrl_dcdt.c
Go to the documentation of this file.
1
30#include <xc.h>
31
32#include "pwrctrl_dcdt.h"
33
34
35
43
53int16_t IMC_2p2zACoefficients[2]__attribute__((space(xmemory)));
54
61int16_t IMC_2p2zBCoefficients[3] __attribute__((space(xmemory)));
62
68int16_t IMC_2p2zControlHistory[2] __attribute__((space(ymemory), far));
69
75int16_t IMC_2p2zErrorHistory[3] __attribute__((space(ymemory), far));
76
77//==============================================================================
78
79
80
90{
91 //charger
92 IMC_2p2z.aCoefficients = &IMC_2p2zACoefficients[0]; // Set up pointer to derived coefficients
93 IMC_2p2z.bCoefficients = &IMC_2p2zBCoefficients[0]; // Set up pointer to derived coefficients
94 IMC_2p2z.controlHistory = &IMC_2p2zControlHistory[0]; // Set up pointer to controller history
95 IMC_2p2z.errorHistory = &IMC_2p2zErrorHistory[0]; // Set up pointer to error history
96
102
103
104 IMC_2p2zACoefficients[0] = ILOOP_COMP_2P2Z_COEFF_A1;
105 IMC_2p2zACoefficients[1] = ILOOP_COMP_2P2Z_COEFF_A2;
106 IMC_2p2zBCoefficients[0] = ILOOP_COMP_2P2Z_COEFF_B0;
107 IMC_2p2zBCoefficients[1] = ILOOP_COMP_2P2Z_COEFF_B1;
108 IMC_2p2zBCoefficients[2] = ILOOP_COMP_2P2Z_COEFF_B2;
109
110 //explicit clear to 0
111 IMC_2p2zControlHistory[0] =0;
112 IMC_2p2zControlHistory[1] =0;
113 IMC_2p2zErrorHistory[0] =0;
114 IMC_2p2zErrorHistory[1] =0;
115 IMC_2p2zErrorHistory[2] =0;
116
118}
119
120
121
129
139int16_t IMC_3p3zACoefficients[3]__attribute__((space(xmemory)));
140
147int16_t IMC_3p3zBCoefficients[4] __attribute__((space(xmemory)));
148
154int16_t IMC_3p3zControlHistory[3] __attribute__((space(ymemory), far));
155
161int16_t IMC_3p3zErrorHistory[4] __attribute__((space(ymemory), far));
162
163//==============================================================================
164
165
166
176{
177 //charger
178 IMC_3p3z.aCoefficients = &IMC_3p3zACoefficients[0]; // Set up pointer to derived coefficients
179 IMC_3p3z.bCoefficients = &IMC_3p3zBCoefficients[0]; // Set up pointer to derived coefficients
180 IMC_3p3z.controlHistory = &IMC_3p3zControlHistory[0]; // Set up pointer to controller history
181 IMC_3p3z.errorHistory = &IMC_3p3zErrorHistory[0]; // Set up pointer to error history
182
188
189
190 IMC_3p3zACoefficients[0] = ILOOP_T_COMP_3P3Z_COEFF_A1;
191 IMC_3p3zACoefficients[1] = ILOOP_T_COMP_3P3Z_COEFF_A2;
192 IMC_3p3zACoefficients[2] = ILOOP_T_COMP_3P3Z_COEFF_A3;
193 IMC_3p3zBCoefficients[0] = ILOOP_T_COMP_3P3Z_COEFF_B0;
194 IMC_3p3zBCoefficients[1] = ILOOP_T_COMP_3P3Z_COEFF_B1;
195 IMC_3p3zBCoefficients[2] = ILOOP_T_COMP_3P3Z_COEFF_B2;
196 IMC_3p3zBCoefficients[3] = ILOOP_T_COMP_3P3Z_COEFF_B3;
197
198 //explicit clear to 0
199 IMC_3p3zControlHistory[0] = 0;
200 IMC_3p3zControlHistory[1] = 0;
201 IMC_3p3zControlHistory[2] = 0;
202 IMC_3p3zErrorHistory[0] = 0;
203 IMC_3p3zErrorHistory[1] = 0;
204 IMC_3p3zErrorHistory[2] = 0;
205 IMC_3p3zErrorHistory[3] = 0;
206
207 // SMPS_Controller2P2ZInitialize(&IMC_2p2z);
209}
210
211
212
213
221
222//==============================================================================
223
224
231int16_t VMC_2p2zACoefficients[2]__attribute__((space(xmemory)));
232
239int16_t VMC_2p2zBCoefficients[3] __attribute__((space(xmemory)));
240
246int16_t VMC_2p2zControlHistory[2] __attribute__((space(ymemory), far));
247
253int16_t VMC_2p2zErrorHistory[3] __attribute__((space(ymemory), far));
254
255//==============================================================================
256
266{
267 //charger direction
268 VMC_2p2z.aCoefficients = &VMC_2p2zACoefficients[0]; // Set up pointer to derived coefficients
269 VMC_2p2z.bCoefficients = &VMC_2p2zBCoefficients[0]; // Set up pointer to derived coefficients
270 VMC_2p2z.controlHistory = &VMC_2p2zControlHistory[0]; // Set up pointer to controller history
271 VMC_2p2z.errorHistory = &VMC_2p2zErrorHistory[0]; // Set up pointer to error history
272
278
279 VMC_2p2zACoefficients[0] = VLOOP_COMP_2P2Z_COEFF_A1;
280 VMC_2p2zACoefficients[1] = VLOOP_COMP_2P2Z_COEFF_A2;
281 VMC_2p2zBCoefficients[0] = VLOOP_COMP_2P2Z_COEFF_B0;
282 VMC_2p2zBCoefficients[1] = VLOOP_COMP_2P2Z_COEFF_B1;
283 VMC_2p2zBCoefficients[2] = VLOOP_COMP_2P2Z_COEFF_B2;
284
285 //explicit clear to 0
286 VMC_2p2zControlHistory[0] = 0;
287 VMC_2p2zControlHistory[1] = 0;
288 VMC_2p2zErrorHistory[0] = 0;
289 VMC_2p2zErrorHistory[1] = 0;
290 VMC_2p2zErrorHistory[2] = 0;
291
293}
294
295
304{
305
306 //explicit clear to 0
307 // IMC_2p2zControlHistory[0] = 0;
308 // IMC_2p2zControlHistory[1] = 0;
309 // IMC_2p2zErrorHistory[0] = 0;
310 // IMC_2p2zErrorHistory[1] = 0;
311 // IMC_2p2zErrorHistory[2] = 0;
312
313 IMC_3p3zControlHistory[0] = 0;
314 IMC_3p3zControlHistory[1] = 0;
315 IMC_3p3zControlHistory[2] = 0;
316 IMC_3p3zErrorHistory[0] = 0;
317 IMC_3p3zErrorHistory[1] = 0;
318 IMC_3p3zErrorHistory[2] = 0;
319 IMC_3p3zErrorHistory[3] = 0;
320 //
321 //explicit clear to 0
322 VMC_2p2zControlHistory[0] = 0;
323 VMC_2p2zControlHistory[1] = 0;
324 VMC_2p2zErrorHistory[0] = 0;
325 VMC_2p2zErrorHistory[1] = 0;
326 VMC_2p2zErrorHistory[2] = 0;
327}
#define ILOOP_COMP_2P2Z_PRESHIFT
Definition iloop_dcdt.h:111
#define ILOOP_COMP_2P2Z_COEFF_B0
Definition iloop_dcdt.h:106
#define ILOOP_COMP_2P2Z_MAX_CLAMP
Definition iloop_dcdt.h:116
#define ILOOP_COMP_2P2Z_POSTSCALER
Definition iloop_dcdt.h:109
#define ILOOP_COMP_2P2Z_POSTSHIFT
Definition iloop_dcdt.h:110
#define ILOOP_COMP_2P2Z_COEFF_A1
Definition iloop_dcdt.h:104
#define ILOOP_COMP_2P2Z_COEFF_B2
Definition iloop_dcdt.h:108
#define ILOOP_COMP_2P2Z_COEFF_B1
Definition iloop_dcdt.h:107
#define ILOOP_COMP_2P2Z_COEFF_A2
Definition iloop_dcdt.h:105
#define ILOOP_COMP_2P2Z_MIN_CLAMP
Definition iloop_dcdt.h:115
#define ILOOP_T_COMP_3P3Z_COEFF_B1
#define ILOOP_T_COMP_3P3Z_COEFF_A3
#define ILOOP_T_COMP_3P3Z_MIN_CLAMP
#define ILOOP_T_COMP_3P3Z_COEFF_B2
#define ILOOP_T_COMP_3P3Z_PRESHIFT
#define ILOOP_T_COMP_3P3Z_POSTSCALER
#define ILOOP_T_COMP_3P3Z_POSTSHIFT
#define ILOOP_T_COMP_3P3Z_MAX_CLAMP
#define ILOOP_T_COMP_3P3Z_COEFF_B0
#define ILOOP_T_COMP_3P3Z_COEFF_A2
#define ILOOP_T_COMP_3P3Z_COEFF_B3
#define ILOOP_T_COMP_3P3Z_COEFF_A1
#define VLOOP_COMP_2P2Z_PRESHIFT
Definition vloop_dcdt.h:111
#define VLOOP_COMP_2P2Z_COEFF_B0
Definition vloop_dcdt.h:106
#define VLOOP_COMP_2P2Z_POSTSCALER
Definition vloop_dcdt.h:109
#define VLOOP_COMP_2P2Z_POSTSHIFT
Definition vloop_dcdt.h:110
#define VLOOP_COMP_2P2Z_COEFF_B1
Definition vloop_dcdt.h:107
#define VLOOP_COMP_2P2Z_MAX_CLAMP
Definition vloop_dcdt.h:116
#define VLOOP_COMP_2P2Z_MIN_CLAMP
Definition vloop_dcdt.h:115
#define VLOOP_COMP_2P2Z_COEFF_B2
Definition vloop_dcdt.h:108
#define VLOOP_COMP_2P2Z_COEFF_A2
Definition vloop_dcdt.h:105
#define VLOOP_COMP_2P2Z_COEFF_A1
Definition vloop_dcdt.h:104
Contains public functions and data types relevant for DCDT file interface.
void SMPS_Controller3P3ZInitialize(SMPS_3P3Z_T *controllerData)
void SMPS_Controller2P2ZInitialize(SMPS_2P2Z_T *controllerData)
void PwrCtrl_IComp_Initialize(void)
Initialize the Current Loop Control.
void PwrCtrl_IComp_3p3z_Initialize(void)
Initialize the Current Loop Control.
SMPS_2P2Z_T VMC_2p2z
Data Object of voltage mode control generated by DCDT.
void PwrCtrl_VComp_Initialize(void)
Initialize the Voltage Loop Control.
SMPS_3P3Z_T IMC_3p3z
Data Object of current mode control.
int16_t IMC_2p2zACoefficients[2] __attribute__((space(xmemory)))
Current Loop A-coefficient array.
void PwrCtrl_ResetControlLoopHistories(void)
Clear the control and error histories of the control loops.
SMPS_2P2Z_T IMC_2p2z
Data Object of current mode control.
int16_t * controlHistory
uint16_t minOutput
int16_t postShift
int16_t * errorHistory
uint16_t maxOutput
int16_t postScaler
int16_t * aCoefficients
uint16_t preShift
int16_t * bCoefficients
int16_t * controlHistory
uint16_t minOutput
int16_t postShift
int16_t * errorHistory
uint16_t maxOutput
int16_t postScaler
int16_t * aCoefficients
uint16_t preShift
int16_t * bCoefficients