├── Induction Motor Simulation Report.zip ├── Induction_Motor_Simulation_Report.pdf ├── Project ├── DTC │ ├── DTC.slx │ └── results_anlaysis_IFOC.m ├── FOC │ ├── foc.slx │ └── results_anlaysis_IFOC.m └── VVVF │ ├── Close-loop │ ├── results_anlaysis_VVVF.m │ └── vvvf.slx │ └── Open loop │ └── vvvf_Openloop.slx ├── README.assets ├── image-20231206233333922.png ├── image-20231206233353144.png ├── image-20231206233934916.png ├── image-20231206233946936.png └── image-20231206233957872.png └── README.md /Induction Motor Simulation Report.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/Induction Motor Simulation Report.zip -------------------------------------------------------------------------------- /Induction_Motor_Simulation_Report.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/Induction_Motor_Simulation_Report.pdf -------------------------------------------------------------------------------- /Project/DTC/DTC.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/Project/DTC/DTC.slx -------------------------------------------------------------------------------- /Project/DTC/results_anlaysis_IFOC.m: -------------------------------------------------------------------------------- 1 | time=n.Time; 2 | % n=9.55*out.yout{2}.Values.Data; 3 | % Torque_out=out.yout{3}.Values.Data; 4 | % Is=out.yout{1}.Values.Data; 5 | % Torque_ref=out.yout{4}.Values.Data; 6 | % n_ref=out.yout{5}.Values.Data; 7 | figure; 8 | % Plot the real speed 9 | plot(time, n.Data, 'b', 'LineWidth', 1); 10 | hold on; 11 | % Plot the reference speed 12 | plot(time, n_ref.Data, 'r', 'LineWidth', 1); 13 | xlabel('Time (s)'); 14 | ylabel('Speed (rpm)'); 15 | title('Real Speed vs Reference Speed'); 16 | legend('Real Speed', 'Reference Speed'); 17 | n_max=max(n.Data); 18 | overshoot_n=(n_max-n_ref.Data(5,1))/n_ref.Data(5,1) 19 | % Create a new figure 20 | figure; 21 | % Plot the output torque 22 | plot(time, Torque_out.Data, 'b', 'LineWidth', 1); 23 | hold on; 24 | % Plot the reference torque 25 | plot(time, Torque_ref.Data, 'r', 'LineWidth', 1); 26 | hold off; 27 | % Add labels and title 28 | xlabel('Time (s)'); 29 | ylabel('Torque ($N\cdot m$)','Interpreter','latex'); 30 | title('Output Torque vs Reference Torque'); 31 | legend('Output Torque', 'Reference Torque'); 32 | %plot stator current 33 | figure; 34 | plot(Is.Stator_current_is_a__A_,'LineWidth',1); 35 | hold on; 36 | plot(Is.Stator_current_is_b__A_,'LineWidth',1); 37 | hold on; 38 | plot(Is.Stator_current_is_c__A_,'LineWidth',1); 39 | hold off; 40 | 41 | xlabel('Time (s)'); 42 | ylabel('Stator Current (A)'); 43 | title('Stator current'); 44 | legend('Phase A','Phase B','Phase C') -------------------------------------------------------------------------------- /Project/FOC/foc.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/Project/FOC/foc.slx -------------------------------------------------------------------------------- /Project/FOC/results_anlaysis_IFOC.m: -------------------------------------------------------------------------------- 1 | time=n.Time; 2 | % n=9.55*out.yout{2}.Values.Data; 3 | % Torque_out=out.yout{3}.Values.Data; 4 | % Is=out.yout{1}.Values.Data; 5 | % Torque_ref=out.yout{4}.Values.Data; 6 | % n_ref=out.yout{5}.Values.Data; 7 | figure; 8 | % Plot the real speed 9 | plot(time, n.Data, 'b', 'LineWidth', 1); 10 | hold on; 11 | % Plot the reference speed 12 | plot(time, n_ref.Data, 'r', 'LineWidth', 1); 13 | xlabel('Time (s)'); 14 | ylabel('Speed (rpm)'); 15 | title('Real Speed vs Reference Speed'); 16 | legend('Real Speed', 'Reference Speed'); 17 | n_max=max(n.Data); 18 | overshoot_n=(n_max-n_ref.Data(5,1))/n_ref.Data(5,1) 19 | % Create a new figure 20 | figure; 21 | % Plot the output torque 22 | plot(time, Torque_out.Data, 'b', 'LineWidth', 1); 23 | hold on; 24 | % Plot the reference torque 25 | plot(time, Torque_ref.Data, 'r', 'LineWidth', 1); 26 | hold off; 27 | % Add labels and title 28 | xlabel('Time (s)'); 29 | ylabel('Torque ($N\cdot m$)','Interpreter','latex'); 30 | title('Output Torque vs Reference Torque'); 31 | legend('Output Torque', 'Reference Torque'); 32 | %plot stator current 33 | figure; 34 | plot(Is.Stator_current_is_a__A_,'LineWidth',1); 35 | hold on; 36 | plot(Is.Stator_current_is_b__A_,'LineWidth',1); 37 | hold on; 38 | plot(Is.Stator_current_is_c__A_,'LineWidth',1); 39 | hold off; 40 | 41 | xlabel('Time (s)'); 42 | ylabel('Stator Current (A)'); 43 | title('Stator current'); 44 | legend('Phase A','Phase B','Phase C') -------------------------------------------------------------------------------- /Project/VVVF/Close-loop/results_anlaysis_VVVF.m: -------------------------------------------------------------------------------- 1 | time=out.tout; 2 | n=9.55*out.yout{2}.Values.Data; 3 | Torque_out=out.yout{3}.Values.Data; 4 | Is=out.yout{1}.Values.Data; 5 | Torque_ref=out.yout{4}.Values.Data; 6 | n_ref=out.yout{5}.Values.Data; 7 | figure; 8 | % Plot the real speed 9 | plot(time, n, 'b', 'LineWidth', 1); 10 | hold on; 11 | % Plot the reference speed 12 | plot(time, n_ref, 'r', 'LineWidth', 1); 13 | xlabel('Time (s)'); 14 | ylabel('Speed (rpm)'); 15 | title('Real Speed vs Reference Speed'); 16 | legend('Real Speed', 'Reference Speed'); 17 | n_max=max(n); 18 | overshoot_n=(n_max-n_ref(5,1))/n_ref(5,1) 19 | % Create a new figure 20 | figure; 21 | % Plot the output torque 22 | plot(time, Torque_out, 'b', 'LineWidth', 1); 23 | hold on; 24 | % Plot the reference torque 25 | plot(time, Torque_ref, 'r', 'LineWidth', 1); 26 | hold off; 27 | % Add labels and title 28 | xlabel('Time (s)'); 29 | ylabel('Torque ($N\cdot m$)','Interpreter','latex'); 30 | title('Output Torque vs Reference Torque'); 31 | legend('Output Torque', 'Reference Torque'); 32 | %plot stator current 33 | figure; 34 | plot(time, Is,'LineWidth',1); 35 | xlabel('Time (s)'); 36 | ylabel('Stator Current (A)'); 37 | title('Stator current'); 38 | legend('Phase A','Phase B','Phase C') -------------------------------------------------------------------------------- /Project/VVVF/Close-loop/vvvf.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/Project/VVVF/Close-loop/vvvf.slx -------------------------------------------------------------------------------- /Project/VVVF/Open loop/vvvf_Openloop.slx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/Project/VVVF/Open loop/vvvf_Openloop.slx -------------------------------------------------------------------------------- /README.assets/image-20231206233333922.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/README.assets/image-20231206233333922.png -------------------------------------------------------------------------------- /README.assets/image-20231206233353144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/README.assets/image-20231206233353144.png -------------------------------------------------------------------------------- /README.assets/image-20231206233934916.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/README.assets/image-20231206233934916.png -------------------------------------------------------------------------------- /README.assets/image-20231206233946936.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/README.assets/image-20231206233946936.png -------------------------------------------------------------------------------- /README.assets/image-20231206233957872.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/labourer-Lucas/Induction-Motor-Control-Simulation/54fc2222bd3e8bfa9abba3e3ebf754adeb4ec984/README.assets/image-20231206233957872.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Induction-Motor-Control-Simulation 2 | This is a collection of Induction motor(asychonous motor) controlling methods simulation. VVVF, FOC and DTC will be implemented using Matlab Simulink in my design. 3 | 4 | ## Requirement 5 | 6 | ![image-20231206233333922](README.assets/image-20231206233333922.png) 7 | 8 | ![image-20231206233353144](README.assets/image-20231206233353144.png) 9 | 10 | ## Simulation model 11 | 12 | ### [Direct Torque Control (DTC)](Project/DTC/DTC.slx) 13 | 14 | ### [Field Oriented Control (FOC)](Project/FOC/foc.slx) 15 | 16 | ### [Vary Voltage Vary Frequency Control (VVVF)](Project/VVVF) 17 | 18 | ## [Report](Induction_Motor_Simulation_Report.pdf) 19 | 20 | ![](README.assets/image-20231206233946936.png) 21 | 22 | ![image-20231206233957872](README.assets/image-20231206233957872.png) 23 | --------------------------------------------------------------------------------