Upload
others
View
15
Download
0
Embed Size (px)
Citation preview
Steady State Analysis of Autonomous WindEnergy Conversion System Employing
Induction Machines for Irrigation Purpose
Kanoj B, Arjun MA B Raju and Satish Annigeri
Department of Electrical and Electronics Engineering,B. V. B. College of Engineering and Technology,
HUBLI-580 031, [email protected]
December 29, 2012
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 1/18
Overview
1 Objective of the Presentation2 Block Diagram and Flowchart3 Wind turbine and Induction Machine Specifications4 Equivalent Circuit5 Building Mathematical Model6 Why Python and SciPy?7 SciPy Code for solving nonlinear algebraic equations8 Results9 Conclusion
10 References
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 2/18
Objective of the presentation
To use Scientific Python as a computational toolfor steady state analysis of wind energy
conversion system
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 3/18
Block diagram and flow chart
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 4/18
Wind Turbine and Induction Machine Specifications
Wind turbine specifications:Swept area radius r = 1.27 mcut-in wind speed vc = 3 m/srated wind speed vr = 15 m/sfurl-on wind speed vf = 25 m/sInduction Machine specifications3 Phase, 50 Hz, 4 pole, 5 HP, 1450 rpm, 415 VStator resistance rs = 5.2 ΩRotor Resistance rr = 4.66 ΩStator and rotor reactances xs and xr = 2.46 ΩCore resistance rc = 746.40 Ω
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 5/18
Equivalent Circuit
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 6/18
Building Mathematical Model
Applying Kirchhoff’s voltage law to the loop current Ig theresulting equation is
IgZg = 0Zg = Z1 + Z2 + Z3
Z1 =Zr Zm
Zr + Zm
Zm =F jXmRm
Rm + F jXm
Z2 = Rs + F jXs
Z3 =(Rl + F jXl)jXc
Rl + F jXl + jXc
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 7/18
Substituting Z1, Z2 and Z3, we get
−XlXc + jXlRlF
−FRl + j(Xc − F 2Xl)+
Rs
F+ jXs +
−Xr Xm + jXmRr
F−vRr
F−v + j(Xr + Xm)= 0
Its a complex non-linear algebraic equation and is solvedfor F and Xm by separating real and imaginary parts andequating them to zero separately.
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 8/18
Solving Non Linear Equations
Non linear equations can be solved numerically eitherwriting our own code in compiled languages like:
1 C or C++2 Fortran
or using the readily available routines in interpreterlanguages like:
1 MATLAB2 Scilab and3 Octave4 Python
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 9/18
Why Python and Scipy?
Free and open-source software, widely used, with a vibrantcommunity.It has rich modules/libraries.Well thought out language, allowing to write very readableand well structured code.Capability of handling complex numbers and equations.Possibility of improving performance comparable tocompiled languagesPossibility of developing GUI application.
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 10/18
Why Python and Scipy?
1 SciPy is an Open Source library of scientific tools forPython.
2 It gathers a variety of high level science and engineeringmodules together as a single package.
3 Using numpy, scipy and matplotlib modules, one can thinkof replacing a well known proprietary software.
In this presented work, we have used the followingroutines from scipy.optimize
fsolve()newton krylov() andmatplotlib.pyplot
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 11/18
SciPy Code For Solving Non-Linear Equations
def funct(x):
Xmg = x[1]
F = x[0]
Zl = (Rl/F) + (1j*Xl)
Zc = (-1j*Xc)/(F**2)
Zcc = (Zl * Zc ) /(Zl + Zc)
Zsg = (Rs/F) + (1j*Xs)
Zrg = (Rr/(F-v)) + (1j*Xr)
Zmg = ((F/Rc) + (1/(1j* Xmg)))**(-1)
Zaa = (Zmg * Zrg)/(Zmg + Zrg)
g = Zaa + Zsg + Zcc
out = [real(g)]
out.append(imag(g))
return array(out)
D = fsolve(funct,array([1.0, 1.0]))
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 12/18
Results
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 13/18
Results
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 14/18
Results of Python against Matlab
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 15/18
Conclusion
Python code executes faster than the correspondingMatlab code by a factor of about 7.197474264.Ten iterations of Matlab code using fsolve() took 1.8346 s,whereas Python fsolve() took 0.254894971848 s, andnewton krylov() took 1.17562890053 s.newton krylov() function of python executes faster thanfsolve() by a factor of 4.612209068
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 16/18
L. Shridhar, Bhim Singh, C. S . Jha and B.P. Singh,“Analysis of Self Excited Induction Generator feedingInduction Motor”, Analysis of Self Excited InductionGenerator feeding Induction Motor,pp. p. 390 - 396, June,1994.
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 17/18
THANK YOU
Kanoj B, Arjun M A B Raju and Satish Annigeri SciPy 2012 18/18