Spacecraft Control Framework 1.0
Spacecraft Control Library
sc_svpwm.h
Go to the documentation of this file.
1//-----------------------------------------------------------------------------------------
2// Implement SVPWM
3//-----------------------------------------------------------------------------------------
4// Copyright (c) 2017 Princeton Satellite Systems. All rights reserved.
5//-----------------------------------------------------------------------------------------
6
8
9
20
21#ifndef __SVPWM__
22#define __SVPWM__
23
24#ifdef AS_OS_WINDOWS
25 #include "matrixlib.h"
26#else
27 #include <MatrixLib/MatrixLib.h>
28#endif
29
34class svpwm
35{
36
37 private:
38 double d_t;
39 double t_last;
40 double t_update;
41 double u_m;
42 double u_d;
43 ml_matrix u;
44 ml_matrix t_p;
45 ml_matrix s_p;
46 ml_matrix voltage;
47 ml_matrix s;
48
49 void svpw( void );
50 void switch_to_voltage( void );
51
52 public:
53 svpwm( void );
54 void initialize( double d_t, double t_update, double u_m, double u_d );
55 void defaults( void );
56 void update( double t, const ml_matrix u );
57
58 ml_matrix get_voltage(void){return voltage;};
59 ml_matrix get_switches(void){return s;};
60
61 double get_phase_a_voltage(void){return voltage.get(1,1);};
62 double get_phase_b_voltage(void){return voltage.get(2,1);};
63 double get_phase_c_voltage(void){return voltage.get(3,1);};
64 double get_d_t(void){return d_t;};
65 double get_t_update(void){return t_update;};
66 void set_u_m(double u_m){this->u_m = u_m;};
67
68};
69
70
71#endif
SVPWM Implement space vector pulsewidth modulation.
Definition: sc_svpwm.h:35
void update(double t, const ml_matrix u)
Update the switches.
Definition: sc_svpwm.cc:57
void initialize(double d_t, double t_update, double u_m, double u_d)
Initialize the object.
Definition: sc_svpwm.cc:40
svpwm(void)
Constructor.
Definition: sc_svpwm.cc:14
void defaults(void)
Initialize the object with the defaults.
Definition: sc_svpwm.cc:23