├── DataSet.md ├── Design and Implementation ├── BLDC-Plant-Model.png ├── Function-Fitting-NN.png ├── Model-Summary │ └── BLDC-Motor.md ├── Regression-Plot.png ├── Simulink Model for ANN Controlled BLDC motor.png ├── Training-Summary.png ├── Training-report.png ├── erroe-histogram.png └── performace-plot.png ├── Matlab └── Matlab-Script.m ├── README.md └── Result-Analysis ├── Settling-Time-0.3ms.png ├── Settling-time-0.9ms.png ├── Settling-timw-1.7ms.png ├── pid-ann-ref_model.png └── report.md /DataSet.md: -------------------------------------------------------------------------------- 1 | # Data list from Plant Model of BLDC Motor 2 | ## Input data --- x = [u1, y1] 3 | 4 | | Input | Input | 5 | |----------|-----------| 6 | | 0 | 0 | 7 | | 2988.8 | 0 | 8 | | 642.159 | 4.4832 | 9 | | 9266.5 | 5.4397 | 10 | | 9272.4 | 19.3313 | 11 | | 12759 | 33.2109 | 12 | | 5234.8 | 52.2989 | 13 | | 7090 | 60.0727 | 14 | | 11343 | 70.6176 | 15 | | 471.9093 | 87.5257 | 16 | | 729.7513 | 88.1023 | 17 | | 7230.4 | 89.0648 | 18 | | 9161.2 | 99.7768 | 19 | | 105.0802 | 113.3689 | 20 | | 5233.6 | 113.3565 | 21 | | 912.3965 | 121.0369 | 22 | | 5698.7 | 122.2239 | 23 | | 9374.4 | 130.5886 | 24 | | 8039.5 | 144.4544 | 25 | | 12700 | 156.297 | 26 | | 11550 | 175.1132 | 27 | | 7192.6 | 192.1758 | 28 | | 1255.3 | 202.6764 | 29 | | 8926 | 204.2554 | 30 | | 5678.4 | 217.338 | 31 | | 9571.3 | 225.5296 | 32 | | 12426 | 239.5482 | 33 | | 10404 | 257.8277 | 34 | | 3582.5 | 273.0469 | 35 | | 647.8906 | 278.0111 | 36 | | 10048 | 278.5659 | 37 | | 4480.4 | 293.2193 | 38 | | 8635.5 | 299.5001 | 39 | | 10325 | 312.0041 | 40 | | 13528 | 327.0236 | 41 | | 4986.9 | 346.8246 | 42 | | 3372.1 | 353.7846 | 43 | | 13412 | 358.3121 | 44 | | 9864.3 | 377.8923 | 45 | | 10283 | 392.122 | 46 | | 8893.2 | 406.9587 | 47 | | 992.1623 | 419.6882 | 48 | | 8621.8 | 420.5469 | 49 | | 12076 | 432.8488 | 50 | | 3722.5 | 450.3139 | 51 | | 5957 | 455.2221 | 52 | | 10463 | 463.4748 | 53 | | 6521 | 478.4736 | 54 | | 3245.6 | 487.5374 | 55 | | 3752.5 | 491.6746 | 56 | | 4904 | 496.5658 | 57 | | 2272.8 | 503.1769 | 58 | | 6641 | 505.8313 | 59 | | 12253 | 515.034 | 60 | | 12411 | 532.641 | 61 | | 826.7031 | 550.4581 | 62 | | 12349 | 550.8724 | 63 | | 6886.7 | 568.5689 | 64 | | 7047.4 | 578.0462 | 65 | | 4354.8 | 587.7502 | 66 | | 13468 | 593.4007 | 67 | | 6742.8 | 612.7121 | 68 | | 3632.9 | 621.9072 | 69 | | 1238.5 | 626.4237 | 70 | | 12937 | 627.3418 | 71 | | 1006.7 | 645.8063 | 72 | | 6834.7 | 646.3476 | 73 | | 5243.5 | 655.63 | 74 | | 3782.2 | 662.5119 | 75 | | 12474 | 667.1914 | 76 | | 7231.1 | 684.901 | 77 | | 6339.7 | 694.7202 | 78 | | 12844 | 703.1877 | 79 | | 683.6464 | 721.3995 | 80 | | 10395 | 721.3428 | 81 | | 10513 | 735.8528 | 82 | | 11300 | 750.519 | 83 | | 1711.2 | 766.3428 | 84 | | 216.5941 | 767.7601 | 85 | | 9397.4 | 766.9334 | 86 | | 11852 | 779.8791 | 87 | | 8593.3 | 796.4866 | 88 | | 10049 | 808.1818 | 89 | | 9901.9 | 822.0437 | 90 | | 13643 | 835.6635 | 91 | | 12129 | 854.8739 | 92 | | 3183.1 | 871.7851 | 93 | | 4181.3 | 875.2521 | 94 | | 4791.4 | 880.2111 | 95 | | 7006.2 | 886.0778 | 96 | | 8068.7 | 895.258 | 97 | | 11548 | 906.0182 | 98 | |5624.9 | 921.9806 | 99 | |11487 | 929.035 | 100 | |3676.2 | 944.8714 | 101 | |5670.1 | 948.9683 | 102 | |7334.2 | 956.0501 | 103 | |6387.1 | 965.6173 | 104 | |3920.4 | 973.7495 | 105 | |2434.2 | 978.1695 | 106 | |2098.3 | 980.3535 | 107 | 108 | ## Output --- t = [y] 109 | | Output | 110 | |-----------| 111 | | 0 | 112 | | 4.4832 | 113 | | 5.4397 | 114 | | 19.3313 | 115 | | 33.2109 | 116 | | 52.2989 | 117 | | 60.0727 | 118 | | 70.6176 | 119 | | 87.5257 | 120 | | 88.1023 | 121 | | 89.0648 | 122 | | 99.7768 | 123 | | 113.3689 | 124 | | 113.3565 | 125 | | 121.0369 | 126 | | 122.2239 | 127 | | 130.5886 | 128 | | 144.4544 | 129 | | 156.297 | 130 | | 175.1132 | 131 | | 192.1758 | 132 | | 202.6764 | 133 | | 204.2554 | 134 | | 217.338 | 135 | | 225.5296 | 136 | | 239.5482 | 137 | | 257.8277 | 138 | | 273.0469 | 139 | | 278.0111 | 140 | | 278.5659 | 141 | | 293.2193 | 142 | | 299.5001 | 143 | | 312.0041 | 144 | | 327.0236 | 145 | | 346.8246 | 146 | | 353.7846 | 147 | | 358.3121 | 148 | | 377.8923 | 149 | | 392.122 | 150 | | 406.9587 | 151 | | 419.6882 | 152 | | 420.5469 | 153 | | 432.8488 | 154 | | 450.3139 | 155 | | 455.2221 | 156 | | 463.4748 | 157 | | 478.4736 | 158 | | 487.5374 | 159 | | 491.6746 | 160 | | 496.5658 | 161 | | 503.1769 | 162 | | 505.8313 | 163 | | 515.034 | 164 | | 532.641 | 165 | | 550.4581 | 166 | | 550.8724 | 167 | | 568.5689 | 168 | | 578.0462 | 169 | | 587.7502 | 170 | | 593.4007 | 171 | | 612.7121 | 172 | | 621.9072 | 173 | | 626.4237 | 174 | | 627.3418 | 175 | | 645.8063 | 176 | | 646.3476 | 177 | | 655.63 | 178 | | 662.5119 | 179 | | 667.1914 | 180 | | 684.901 | 181 | | 694.7202 | 182 | | 703.1877 | 183 | | 721.3995 | 184 | | 721.3428 | 185 | | 735.8528 | 186 | | 750.519 | 187 | | 766.3428 | 188 | | 767.7601 | 189 | | 766.9334 | 190 | | 779.8791 | 191 | | 796.4866 | 192 | | 808.1818 | 193 | | 822.0437 | 194 | | 835.6635 | 195 | | 854.8739 | 196 | | 871.7851 | 197 | | 875.2521 | 198 | | 880.2111 | 199 | | 886.0778 | 200 | | 895.258 | 201 | | 906.0182 | 202 | | 921.9806 | 203 | | 929.035 | 204 | | 944.8714 | 205 | | 948.9683 | 206 | | 956.0501 | 207 | | 965.6173 | 208 | | 973.7495 | 209 | | 978.1695 | 210 | | 980.3535 | 211 | | 982.0304 | 212 | -------------------------------------------------------------------------------- /Design and Implementation/BLDC-Plant-Model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/BLDC-Plant-Model.png -------------------------------------------------------------------------------- /Design and Implementation/Function-Fitting-NN.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/Function-Fitting-NN.png -------------------------------------------------------------------------------- /Design and Implementation/Model-Summary/BLDC-Motor.md: -------------------------------------------------------------------------------- 1 | # PLANT MODEL OF BLDC MOTOR 2 | Digital computer simulation model of BLDC motor drive has been developed by 3 | using Simulink MATLAB software as shown in Fig 6. Run this simulation. After 4 | this in MATLAB workspace the inputs u1 and y1 are declared to x variable and y 5 | is set as output variable assigned for t variable. The ANN is trained by 6 | ‘nnnstart’ command in fool fitting app in the MATLAB software. Numbers of 7 | hidden layers are chosen as 10 and training is done. After training the ANN 8 | block is placed in the Simulink diagram of speed control of BLDC motor as shown. 9 | ![BLDC-Motor-Plant-Model]() 10 | 11 | ## REFERENCE CONTROL MODEL OF BLDC MOTOR 12 | Reference control model will give ideal system response which will be compared 13 | with the response of ANN controller and PID controller. 14 | Response of neural control BLDC motor is compared with ideal response of 15 | reference control model. Reference control model is designed by considering the 16 | following performance criteria. 17 | (1) No overshoot 18 | (2) Zero steady state error 19 | (3) Take 0.001 sec. as a settling time 20 | Considering reference model as a first order model, the transfer function is 21 | given by [11], 22 | 23 | 𝑌(𝑆)𝑅(𝑆)=1𝑇𝑚𝑆+1 (18) 24 | Consider Unit Step as a reference input. Taking Inverse Laplace Transform, 25 | For t ≥ 0, 26 | 27 | 𝑌𝑚(𝑡)=1−𝑒−𝑡𝑠𝑇𝑚 (19) 28 | For zero steady state error and 𝑒−𝑡𝑠𝑇𝑚 = ±2% criteria, the final response value is the same as the reference input. 29 | From equation (19), 𝑒−𝑡𝑠𝑇𝑚 = 1 - 𝑌𝑚(𝑡) (20) 30 | 0.02 ≥ 1 - 𝑌𝑚(𝑡) (21) 31 | ln(0.02) = −𝑡𝑠𝑇𝑚 𝑇𝑚=−𝑡𝑠ln (0.02)=−0.001ln (0.02)=2.5562×10−4𝑠𝑒𝑐 (22) 32 | Since 𝐺(𝑠)𝑠=0=910 from (16) then the reference model is 33 | 𝐺𝑚(𝑠)= 910(2.5562×10−4)𝑠+1 (23) 34 | 𝐺𝑚(𝑠)=(910)3.9121×103𝑠+3.9121×103 (24) 35 | Using pole zero mapping discretization method, 𝐺𝑚(𝑧)=𝑌𝑚𝑅(𝑧)=294.6580𝑧−0.6762 (25) Eq. (25) is transfer function for reference control model. 36 | 37 | # NEURAL NETWORK TRAINING 38 | Training a Neural Network means finding the appropriate Weights of the Neural Connections thanks to a feedback loop called Gradient Backward propagation. Figure 7 shows the neural network training. In the system identification stage a neural network plant model must be developed before the controller is used. The plant model predicts future plant outputs. The specifications of the plant model are given in figure. 39 | ![Neural-Network-Training]() 40 | 41 | ## Training Result 42 | ![Neural-Network-Training-Result]() 43 | 44 | ## Regression Plot 45 | ![Regresiion Plot]() 46 | 47 | ## Performance Plot 48 | ![Regresiion Plot]() 49 | 50 | ## Error Histogram 51 | ![Error-Histogram]() 52 | 53 | ## Function Fitting Neural Network 54 | ![Function-Fitting-NN]() 55 | 56 | ## Simulink Model of ANN Controller and BLDC Motor 57 | ![Function-Fitting-NN]() 58 | 59 | ## Process: 60 | Digital computer simulation model of BLDC motor drive has been developed by using Simulink MATLAB software as shown in Fig 6.Run this simulation. After this in MATLAB workspace the inputs u1 and y1 are declared to x variable and y is set as output variable assigned for t variable. The ANN is trained by ‘nnstart’ command in nftool fitting app in the MATLAB software. Numbers of hidden layers are chosen as 10 and training is done. After training the ANN block is placed in the Simulink diagram of speed control of BLDC motor as shown.Problems encountered and solutions 61 | 62 | ### Problem encountered: - 63 | i) Control of DC motor speed 64 | ii) Interface of DC motor with software (MATLAB/SIMULINK) 65 | iii) To acquire data from the DC motor 66 | 67 | ### Solutions: - 68 | i) Use of ANN controller to the system 69 | ii) Implementation of DAQ card to the control board 70 | iii) Use of encoder from the DC motor to the control board 71 | -------------------------------------------------------------------------------- /Design and Implementation/Regression-Plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/Regression-Plot.png -------------------------------------------------------------------------------- /Design and Implementation/Simulink Model for ANN Controlled BLDC motor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/Simulink Model for ANN Controlled BLDC motor.png -------------------------------------------------------------------------------- /Design and Implementation/Training-Summary.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/Training-Summary.png -------------------------------------------------------------------------------- /Design and Implementation/Training-report.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/Training-report.png -------------------------------------------------------------------------------- /Design and Implementation/erroe-histogram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/erroe-histogram.png -------------------------------------------------------------------------------- /Design and Implementation/performace-plot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Design and Implementation/performace-plot.png -------------------------------------------------------------------------------- /Matlab/Matlab-Script.m: -------------------------------------------------------------------------------- 1 | % Generate simple training script 2 | 3 | % Solve an Input-Output Fitting problem with a Neural Network 4 | % Script generated by Neural Fitting app 5 | % Created 05-Jun-2022 06:49:54 6 | % 7 | % This script assumes these variables are defined: 8 | % 9 | % x - input data. 10 | % t - target data. 11 | x = x'; 12 | t = t'; 13 | % Choose a Training Function 14 | % For a list of all training functions type: help nntrain 15 | % 'trainlm' is usually fastest. 16 | % 'trainbr' takes longer but may be better for challenging problems. 17 | % 'trainscg' uses less memory. Suitable in low memory situations. 18 | trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation. 19 | % Create a Fitting Network 20 | hiddenLayerSize = 10; 21 | net = fitnet(hiddenLayerSize,trainFcn); 22 | % Setup Division of Data for Training, Validation, Testing 23 | net.divideParam.trainRatio = 70/100; 24 | net.divideParam.valRatio = 15/100; 25 | net.divideParam.testRatio = 15/100; 26 | % Train the Network 27 | [net,tr] = train(net,x,t); 28 | % Test the Network 29 | y = net(x); 30 | e = gsubtract(t,y); 31 | performance = perform(net,t,y) 32 | % View the Network 33 | view(net) 34 | % Plots 35 | % Uncomment these lines to enable various plots. 36 | %figure, plotperform(tr) 37 | %figure, plottrainstate(tr) 38 | %figure, ploterrhist(e) 39 | %figure, plotregression(t,y) 40 | %figure, plotfit(net,x,t) 41 | % --------------------------- 42 | 43 | Generate comprehensive training script 44 | 45 | 46 | % Solve an Input-Output Fitting problem with a Neural Network 47 | % Script generated by Neural Fitting app 48 | % Created 05-Jun-2022 06:50:10 49 | % 50 | % This script assumes these variables are defined: 51 | % 52 | % x - input data. 53 | % t - target data. 54 | x = x'; 55 | t = t'; 56 | % Choose a Training Function 57 | % For a list of all training functions type: help nntrain 58 | % 'trainlm' is usually fastest. 59 | % 'trainbr' takes longer but may be better for challenging problems. 60 | % 'trainscg' uses less memory. Suitable in low memory situations. 61 | trainFcn = 'trainlm'; % Levenberg-Marquardt backpropagation. 62 | % Create a Fitting Network 63 | hiddenLayerSize = 10; 64 | net = fitnet(hiddenLayerSize,trainFcn); 65 | % Choose Input and Output Pre/Post-Processing Functions 66 | % For a list of all processing functions type: help nnprocess 67 | net.input.processFcns = {'removeconstantrows','mapminmax'}; 68 | net.output.processFcns = {'removeconstantrows','mapminmax'}; 69 | % Setup Division of Data for Training, Validation, Testing 70 | % For a list of all data division functions type: help nndivision 71 | net.divideFcn = 'dividerand'; % Divide data randomly 72 | net.divideMode = 'sample'; % Divide up every sample 73 | net.divideParam.trainRatio = 70/100; 74 | net.divideParam.valRatio = 15/100; 75 | net.divideParam.testRatio = 15/100; 76 | % Choose a Performance Function 77 | % For a list of all performance functions type: help nnperformance 78 | net.performFcn = 'mse'; % Mean Squared Error 79 | % Choose Plot Functions 80 | % For a list of all plot functions type: help nnplot 81 | net.plotFcns = {'plotperform','plottrainstate','ploterrhist', ... 82 | 'plotregression', 'plotfit'}; 83 | % Train the Network 84 | [net,tr] = train(net,x,t); 85 | % Test the Network 86 | y = net(x); 87 | e = gsubtract(t,y); 88 | performance = perform(net,t,y) 89 | % Recalculate Training, Validation and Test Performance 90 | trainTargets = t .* tr.trainMask{1}; 91 | valTargets = t .* tr.valMask{1}; 92 | testTargets = t .* tr.testMask{1}; 93 | trainPerformance = perform(net,trainTargets,y) 94 | valPerformance = perform(net,valTargets,y) 95 | testPerformance = perform(net,testTargets,y) 96 | % View the Network 97 | view(net) 98 | % Plots 99 | % Uncomment these lines to enable various plots. 100 | %figure, plotperform(tr) 101 | %figure, plottrainstate(tr) 102 | %figure, ploterrhist(e) 103 | %figure, plotregression(t,y) 104 | %figure, plotfit(net,x,t) 105 | % Deployment 106 | % Change the (false) values to (true) to enable the following code blocks. 107 | % See the help for each generation function for more information. 108 | if (false) 109 | % Generate MATLAB function for neural network for application 110 | % deployment in MATLAB scripts or with MATLAB Compiler and Builder 111 | % tools, or simply to examine the calculations your trained neural 112 | % network performs. 113 | genFunction(net,'myNeuralNetworkFunction'); 114 | y = myNeuralNetworkFunction(x); 115 | end 116 | if (false) 117 | % Generate a matrix-only MATLAB function for neural network code 118 | % generation with MATLAB Coder tools. 119 | genFunction(net,'myNeuralNetworkFunction','MatrixOnly','yes'); 120 | y = myNeuralNetworkFunction(x); 121 | end 122 | if (false) 123 | % Generate a Simulink diagram for simulation or deployment with. 124 | % Simulink Coder tools. 125 | gensim(net); 126 | end 127 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Design of Optimal PID Controller for the Speed Control of DC Motor by Using Artificial Neural Network. 2 | ## ABSTRACT 3 | The primary aim of this project is to control the speed of brushless DC motor using Artificial Neural Network (ANN) controller and PID controller. Detailed analysis is performed based on the simulation results of both the methods. A neural control-based speed control system of brushless DC motor is designed by analyzing the mathematical model of BLDC motor. Plant model identification is done in Simulink software of MATLAB to identify the ANN block of BLDC motor drive system. Reference control model is designed to give the ideal values of control parameters when the control system responds to the command signal. The performance results of PID controller and ANN controller are compared with reference model output of BLDC motor drive system in MATLAB Simulink environment. Comparative study concludes that ANN based speed control method eliminates the overshoot, reduces the settling time of the system response. It is observed that the ANN based simulation results are closer to the ideal reference control model response than PID based. 4 | 5 | ## MOTIVATION AND OBJECTIVE 6 | Nowadays, the field of electrical power system control in general and motor control in particular has been researching broadly. The new technologies are applied to these in order to design the complicated technology system. One of these new technologies is Artificial Neural Network (ANNs) which based on the operating principle of human being nerve neural. It is composed of a large number of highly interconnected processing elements (neurons) working in unison to solve specific problems. ANNs, like people, learn by example. An ANN is configured for a specific application, such as pattern recognition or data classification, through a learning process. Learning in biological systems involves adjustments to the connections that exist between the neurons. This is true of ANNs as well. There are a number of articles that use ANNs applications to identify the mathematical DC motor model. Then, this model is applied to control the motor speed. The inverting forward ANN with two input parameters for adaptive control of DC motor ANNs are applied broadly because all the ANN signal are transmitted in one direction, the same as in automatically control system, the ability of ANNs to learn the sample, From the very beginning, it has been realized by systems theorists that most real-world dynamical systems are nonlinear. However, linearization's of such systems around the equilibrium states yield linear models, which are mathematically obedient. In particular, based on the superposition principle, the output of the system can be computed for any arbitrary input, and alternately, in control problems, the input, which optimizes the output in some sense, can also be determined with relative ease. In most of the adaptive control problems, where the plant parameters are assumed to be unknown, the fact that the latter occur linearly makes the estimation procedure straightforward. The fact that most nonlinear systems thus far could be approximated satisfactorily by linear models in their normal ranges of operation has made them attractive in practical contexts as well. It is this combined effect of ease of analysis and practical applicability that accounts for the great success of linear models and has made them the subject of intensive study for over four decades. In recent years, a rapidly advancing technology and a competitive market have required systems to operate in many cases in regions in the state space where linear approximations are no longer satisfactory. To cope with such nonlinear problems, research has been underway on their identification and control using artificial neural networks based entirely on measured inputs and outputs. 7 | ## OUTLINE OF THE PROJECT 8 | 1. The mathematical model of the PID controller and of the BLDC motor have been derived. 9 | 2. Using the model, a conventional controller has been designed in MATLAB for data collection. 10 | 3. A neural network controller has also been designed with MATLAB for supervised machine learning purposes. 11 | 4. The neural network has then been trained using 80% of the collected data from MATLAB by a back-propagation algorithm. 12 | 5. The trained neural network is then tested on the remaining data collected from MATLAB, based on which step-4 is repeated if necessary. 13 | 6. The traditional PID controller is replaced with the neural network controller and tested in real-time. 14 | 7. Finally, the performance of the proposed controller will be compared to the performance of the conventional BLDC motor controller for speed and accuracy. 15 | 16 | ## PURPOSE, SCOPE, AND APPLICABILITY 17 | ### PURPOSE 18 | - To estimate the speed of the DC motor and control it, ANN can replace sensors speed in the control systems model. Using ANN, we don’t have to calculate the parameters of the motor when designing the control system. It may be revealed that an appreciable advantage of a control system using ANNs when parameters of the DC motor is variable during the operation of the motors. The satisfying ability of the system control with ANNs and ANN application can be used in adaptive controlling in the control system machine with the complicated load. To control the speed of DC Motor, experts used PID Controller fortuning the ANN to improve speed accuracy. 19 | ### SCOPE 20 | - An ANN based adaptive controller performance is superior it still lacks with some limitations, which provides room for improvement. Such possible improvements are indicated below, as possible directions for further work. In the present work the number of hidden layers and the number of neurons in the hidden layer are chosen by trial and error, bearing in mind that the smaller the number, the better itis in terms of both memory and time taken to implement the ANN. Further research can be done to find the optimum number of hidden layers and number of neurons in the hidden layer. weights and biases updating feature of the ANN can compensate for both parameter changes and disturbances during operation. The uses of the adaptive learning rate in the proposed controller reduce the possibility of overshooting particularly during the transient conditions. The feedback provision in the modified ANN motor structure also enhances the stability of the system. 21 | ### APPLICABILITY 22 | - Although the adaptive controllers' performance is superior, it still lacks some limitations, which provides room for improvement. As we know, the market potential increases with the increase in the efficiency of the system. Hence, further research can be done to improve the efficiency of the overall system during operation. Moreover, the efficient design of the controller may give a competitive advantage compared to the available systems. 23 | 24 | ## ACKNOWLEDGEMENT 25 | I have taken efforts in this project. However, it would not have been possible without the kind support and help of many individuals like **Santanu**, **Arka**, **Soumik**, **Ishan**, **Bhaswardeep**. I would like to extend my sincere thanks to all of them. I would like to express my sincere gratitude to my project guide **“Dr. Asim Halder”** for giving me the opportunity to work on this topic. It would never be possible for us to take this project to this level without his innovative ideas and his relentless support and encouragement. I would also like to give special thanks and appreciations to all my group mates for their kind co-operation, support, and encouragement which helped me a lot to complete my project within the limited time frame. 26 | 27 | -------------------------------------------------------------------------------- /Result-Analysis/Settling-Time-0.3ms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Result-Analysis/Settling-Time-0.3ms.png -------------------------------------------------------------------------------- /Result-Analysis/Settling-time-0.9ms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Result-Analysis/Settling-time-0.9ms.png -------------------------------------------------------------------------------- /Result-Analysis/Settling-timw-1.7ms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Result-Analysis/Settling-timw-1.7ms.png -------------------------------------------------------------------------------- /Result-Analysis/pid-ann-ref_model.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmAdd9/ANN-PID-Controller/fc943af60f95b49f34273995606718f81da1b8ae/Result-Analysis/pid-ann-ref_model.png -------------------------------------------------------------------------------- /Result-Analysis/report.md: -------------------------------------------------------------------------------- 1 | # -------------------------Result-------------------------- 2 | ## Performance Comparison between PID, ANN and Reference Model 3 | ![rport](https://github.com/EmAdd9/ANN-PID-Controller/blob/31d29d8e26a0f6734554af855b746586e8208b8b/Result-Analysis/pid-ann-ref_model.png) 4 | 5 | ## Output of reference model 6 | ![output](https://github.com/EmAdd9/ANN-PID-Controller/blob/31d29d8e26a0f6734554af855b746586e8208b8b/Result-Analysis/Settling-Time-0.3ms.png) 7 | ### Output of reference model. Settling time= 0.3 msec 8 | The speed response of reference model is shown in fig The simulation result shows that the settling time of the reference system is about 0.3 msec along with zero overshoot in the response. To perform the simulation the step time and set time is taken as 0.00001 sec and 13650 respectively. 9 | 10 | ## Output of PID controller 11 | ![output](https://github.com/EmAdd9/ANN-PID-Controller/blob/31d29d8e26a0f6734554af855b746586e8208b8b/Result-Analysis/Settling-timw-1.7ms.png) 12 | ### Output of PID Controller. Settling time= 1.7 sec 13 | The response of PID controller for the BLDC system is depicted in this fig. In this case the settling of the system is measured as around 1.7 sec which can be seen from the graph. Moreover, the response of the PID controller shows the overshoot of the response around 0.219 %. It can be clearly seen that the settling time and the overshoot of the BLDC motor controlled by PID controller is much higher than that of the reference model. 14 | 15 | ## Output of ANN controller 16 | ![output](https://github.com/EmAdd9/ANN-PID-Controller/blob/31d29d8e26a0f6734554af855b746586e8208b8b/Result-Analysis/Settling-time-0.9ms.png) 17 | ### Output of ANN Controller. Settling time= 0.9 msec 18 | The output response of the BLDC motor with ANN controller is shown in fig. In this case also the set point of the speed is taken as 13650. The simulation result shows that the settling time of the response here in this case is around 0.9 msec which is better than the case of PID controller but it is more than the case of reference model. Furthermore, the response shows no overshoot in ANN based system unlike the PID based system. Therefore, it may be said that the ANN controller is more effective that the PID controller for the speed control of BLDC motor. 19 | --------------------------------------------------------------------------------