82 lines
1.7 KiB
C
82 lines
1.7 KiB
C
#ifndef PWM_VECTOR_REGUL
|
|
#define PWM_VECTOR_REGUL
|
|
|
|
#include "pid_reg3.h"
|
|
|
|
void pwm_vector_model_titov(_iq Pzad, _iq Fzad, int direction, _iq Frot, int mode,
|
|
int reset, int calcPWMtimes);
|
|
void init_DQ_pid(void);
|
|
//void detect_I_M_overload(void);
|
|
void analog_dq_calc_const(void);
|
|
|
|
void set_cos_tetta_calc_params();
|
|
void limit_mzz_zad_power(_iq Frot);
|
|
|
|
extern _iq zadan_Id_min;
|
|
extern PIDREG3 pidD;
|
|
extern PIDREG3 pidQ;
|
|
extern PIDREG3 pidD2;
|
|
extern PIDREG3 pidQ2;
|
|
|
|
extern long koeff_Ud_filter;
|
|
|
|
typedef struct {
|
|
_iq cos_fi_nom;
|
|
_iq cos_fi_nom_squared;
|
|
} COS_FI_STRUCT;
|
|
|
|
extern COS_FI_STRUCT cos_fi;
|
|
|
|
#define ONE_IQ24 16777216
|
|
|
|
typedef struct {
|
|
_iq iqId_zad;
|
|
_iq iqIq_zad;
|
|
_iq iqUdKm1;
|
|
_iq iqUqKm1;
|
|
_iq iqUdKm2;
|
|
_iq iqUqKm2;
|
|
_iq iqUdCompensation1;
|
|
_iq iqUqCompensation1;
|
|
_iq iqUdCompensation2;
|
|
_iq iqUqCompensation2;
|
|
_iq iqUdKm1Out;
|
|
_iq iqUqKm1Out;
|
|
_iq iqUdKm2Out;
|
|
_iq iqUqKm2Out;
|
|
|
|
_iq iqUzad1;
|
|
_iq iqUzad2;
|
|
|
|
_iq koef_Ud_comp;
|
|
_iq koef_Uq_comp;
|
|
_iq koeff_correct_Id;
|
|
|
|
_iq equial_Iq_Proportional; //Пропорциональный коэффициент регулятора поддержания Iq одинаковым на обоих обмотках
|
|
_iq equial_Iq_Delta; //Разница в Iq двух обмоток
|
|
_iq equial_Iq_Out;
|
|
|
|
_iq k_modul_max;
|
|
_iq k_modul_max_square;
|
|
_iq iq_Id_out_max;
|
|
|
|
_iq iqPzad;
|
|
_iq iqPizm;
|
|
_iq iqFrot;
|
|
|
|
int flag_reverse;
|
|
|
|
float theta;
|
|
|
|
} VECTOR_CONTROL;
|
|
|
|
#define VECTOR_CONTROL_DEFAULTS {0,0,0,0,0,0,0,0,0,0, 0,0, 0,0,0, 0,0,0, 0,0,0,0,0, 0,0}
|
|
|
|
extern VECTOR_CONTROL vect_control;
|
|
|
|
extern PIDREG3 pidFvect;
|
|
|
|
#endif //PWM_VECTOR_REGUL
|
|
|
|
|