foc_adrc.m 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. % Clear workspace
  2. close all
  3. clear
  4. clc
  5. % Load model parameters
  6. Ts = 5e-7; % [s] Model sampling time (200 KHz)
  7. Ts_ctrl = 6e-5; % [s] Controller sampling time (50us)5e-5
  8. f_speed_ctrl = 500; % [Hz] Speed/torque Controller frequency = (500 Hz)
  9. Ts_Spd_ctl = 1/f_speed_ctrl;
  10. PWM_Cnt = 6000;
  11. PWM_Half_Cnt = PWM_Cnt/2;
  12. DeatTime = 0.6e-6;
  13. DT_PWM_CNT = PWM_Cnt/(Ts_ctrl)*DeatTime;
  14. Torque_Mode = 1;
  15. Speed_Mode = 2;
  16. Ctrl_Mode = Torque_Mode;
  17. %Simulink provider Motor parameters
  18. n_polePairs = 4; % [-] Number of motor pole pairs
  19. PM = 0.013; % Permanent magnet flux linkage,
  20. Ld = 0.07e-3;% d-axis inductance,
  21. Lq = 0.178e-3; % q-axis inductance,
  22. Rs = 0.011; % Stator resistance,
  23. J = 0.03945; % Moment of inertia,
  24. bandwith = 800*2*pi;
  25. i_Udc = 96; % DCbus max voltage
  26. lamda1 = -0.000001;
  27. lamda2 = -0.1;
  28. A=[-Rs/Ld 0 -1/Ld 0;0 -Rs/Ld 0 -1/Ld;0 0 0 -200;0 0 200 0];
  29. B=[1/Ld 0; 0 1/Ld;0 0 ;0 0];
  30. C=[1 0 0 0;0 1 0 0];
  31. D=[0 0 0 0;0 0 0 0];
  32. G=place(A', C', [-10 -8 -4 -1])';