1

Dependencies:   mbed-dev-f303 FastPWM3

Committer:
shaorui
Date:
Wed Apr 14 11:46:16 2021 +0000
Revision:
55:d614e29c60c5
Parent:
54:4c9415402628
1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
benkatz 20:bf9ea5125d52 1 #ifndef STRUCTS_H
benkatz 20:bf9ea5125d52 2 #define STRUCTS_H
benkatz 20:bf9ea5125d52 3
benkatz 20:bf9ea5125d52 4 //#include "CANnucleo.h"
benkatz 20:bf9ea5125d52 5 #include "mbed.h"
benkatz 20:bf9ea5125d52 6 #include "FastPWM.h"
benkatz 20:bf9ea5125d52 7
benkatz 20:bf9ea5125d52 8
benkatz 20:bf9ea5125d52 9 typedef struct{
benkatz 20:bf9ea5125d52 10 DigitalOut *enable;
benkatz 37:c0f352d6e8e3 11 DigitalOut *led;
benkatz 20:bf9ea5125d52 12 FastPWM *pwm_u, *pwm_v, *pwm_w;
shaorui 55:d614e29c60c5 13 PwmOut *brake; //used for brake
benkatz 20:bf9ea5125d52 14 } GPIOStruct;
benkatz 20:bf9ea5125d52 15
benkatz 20:bf9ea5125d52 16 typedef struct{
benkatz 20:bf9ea5125d52 17
benkatz 20:bf9ea5125d52 18 }COMStruct;
benkatz 20:bf9ea5125d52 19
benkatz 20:bf9ea5125d52 20 typedef struct{
benkatz 37:c0f352d6e8e3 21 int adc1_raw, adc2_raw, adc3_raw;
benkatz 20:bf9ea5125d52 22 float i_a, i_b, i_c;
benkatz 20:bf9ea5125d52 23 float v_bus;
benkatz 20:bf9ea5125d52 24 float theta_mech, theta_elec;
benkatz 34:51647c6c500d 25 float dtheta_mech, dtheta_elec, dtheta_elec_filt;
Rushu 49:7eac11914980 26 float theta_mech1, theta_elec1; //shaorui add for joint position read theta_joint_raw_pre
shaorui 48:1b51771c3647 27 float dtheta_mech1, dtheta_elec1, dtheta_elec_filt1; //shaorui add for joint position read
Rushu 49:7eac11914980 28 float theta_joint, theta_joint_raw, theta_joint_raw_pre,theta_joint_raw_fil; //hjb added
Rushu 54:4c9415402628 29 float i_d, i_q, i_q_filt, i_d_filt; // D/Q currents
Rushu 54:4c9415402628 30 float v_d, v_q; // D/Q voltages
Rushu 54:4c9415402628 31 float dtc_u, dtc_v, dtc_w; // Terminal duty cycles
Rushu 54:4c9415402628 32 float v_u, v_v, v_w; // Terminal voltages
Rushu 54:4c9415402628 33 float k_d, k_q, ki_d, ki_q, alpha; // Current loop gains, current reference filter coefficient
Rushu 54:4c9415402628 34 float d_int, q_int; // Current error integrals
Rushu 54:4c9415402628 35 int adc1_offset, adc2_offset; // ADC offsets
Rushu 54:4c9415402628 36 float i_d_ref, i_q_ref, i_d_ref_filt, i_q_ref_filt; // Current references
Rushu 54:4c9415402628 37 int loop_count; // Degubbing counter
Rushu 54:4c9415402628 38 int timeout; // Watchdog counter
benkatz 22:60276ba87ac6 39 int mode;
Rushu 54:4c9415402628 40 int ovp_flag; // Over-voltage flag
Rushu 54:4c9415402628 41 float p_des, v_des, kp, kd, t_ff; // Desired position, velocity, gians, torque
Rushu 54:4c9415402628 42 float v_ref, fw_int; // output voltage magnitude, field-weakening integral
benkatz 23:2adf23ee0305 43 float cogging[128];
Rushu 54:4c9415402628 44 int current_sector;
Rushu 54:4c9415402628 45 int otw_flag; // Over-temp warning
Rushu 54:4c9415402628 46 float i_max;
Rushu 54:4c9415402628 47 float inverter_tab[128];
Rushu 54:4c9415402628 48 int oc_flag;
shaorui 48:1b51771c3647 49 float angle,angle1;//shaorui add for test
shaorui 48:1b51771c3647 50 float init1, init2,cha;
shaorui 48:1b51771c3647 51 int c,sidebct;
shaorui 48:1b51771c3647 52 int sidebct1;
Rushu 49:7eac11914980 53 int Ncycle;
Rushu 49:7eac11914980 54 float Ncycle_mod, Mech_mod;
benkatz 20:bf9ea5125d52 55 } ControllerStruct;
benkatz 20:bf9ea5125d52 56
benkatz 22:60276ba87ac6 57 typedef struct{
Rushu 54:4c9415402628 58 double temperature; // Estimated temperature
Rushu 54:4c9415402628 59 float temp_measured;
Rushu 54:4c9415402628 60 float q_in, q_out;
Rushu 54:4c9415402628 61 float resistance;
Rushu 54:4c9415402628 62 float k;
Rushu 54:4c9415402628 63 float trust;
Rushu 54:4c9415402628 64 float delta_t;
Rushu 54:4c9415402628 65
benkatz 37:c0f352d6e8e3 66 float theta_m, theta_est;
benkatz 37:c0f352d6e8e3 67 float thetadot_m, thetadot_est;
benkatz 37:c0f352d6e8e3 68 float i_d_m, i_d_est;
benkatz 37:c0f352d6e8e3 69 float i_q_m, i_q_est;
benkatz 37:c0f352d6e8e3 70 float i_d_dot, i_q_dot;
benkatz 37:c0f352d6e8e3 71 float e_d, e_q;
benkatz 37:c0f352d6e8e3 72 float e_d_int, e_q_int;
benkatz 37:c0f352d6e8e3 73 } ObserverStruct;
benkatz 22:60276ba87ac6 74
benkatz 20:bf9ea5125d52 75 #endif