diff options
Diffstat (limited to 'Electrical_Power_Systems_by_C_L_Wadhwa/17-POWER_SYSTEM_SYNCHRONOUS_STABILITY.ipynb')
-rw-r--r-- | Electrical_Power_Systems_by_C_L_Wadhwa/17-POWER_SYSTEM_SYNCHRONOUS_STABILITY.ipynb | 426 |
1 files changed, 426 insertions, 0 deletions
diff --git a/Electrical_Power_Systems_by_C_L_Wadhwa/17-POWER_SYSTEM_SYNCHRONOUS_STABILITY.ipynb b/Electrical_Power_Systems_by_C_L_Wadhwa/17-POWER_SYSTEM_SYNCHRONOUS_STABILITY.ipynb new file mode 100644 index 0000000..19d9555 --- /dev/null +++ b/Electrical_Power_Systems_by_C_L_Wadhwa/17-POWER_SYSTEM_SYNCHRONOUS_STABILITY.ipynb @@ -0,0 +1,426 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 17: POWER SYSTEM SYNCHRONOUS STABILITY" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.10: EX17_10.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"// To Determine the rotor angle and angular frequency using runga kutta and euler`s modified method\n", +"\n", +"clc\n", +"clear\n", +"Pm=3;\n", +"r1Pm=1.2;\n", +"r2Pm=2;\n", +"H=3;\n", +"f=60;\n", +"Dt=.02;\n", +"Pe=1.5;\n", +"Do=asind(1.5/3);\n", +"do=Do/57.33;\n", +"wo=0;\n", +"d=0;\n", +"K10=0;\n", +"l10=62.83*(1.5-1.2*sin(do))*.02;\n", +"K20=(377.5574-376.992)*.02;\n", +"l20=62.83*(1.5-1.2*sin(do))*.02;\n", +"K30=(377.5574-376.992)*.02;\n", +"l30=62.83*(1.5-1.2*sin(.5296547))*.02;\n", +"K40=l30*0.02;\n", +"l40=62.83*(1.5-1.2*sin(.5353094))*.02;\n", +"d1=.53528;\n", +"Dwo=(3*1.13094+2*1.123045+1.115699)/6;\n", +"w1=wo+Dwo;\n", +"d1=.53528;\n", +"mprintf('Runga-Kutta method-\n')\n", +"mprintf('w1=%.6f \nd1=%.5f\n',w1,d1);\n", +"d7=1.026;\n", +"w7=6.501;\n", +"wp=376.992+6.501;\n", +"K17=(wp-376.992)*0.02;\n", +"l17=62.83*(1.5-1.2*sin(1.026))*.02;\n", +"K27=(6.501+.297638)*0.02;\n", +"l27=62.83*(1.5-1.2*sin(1.09101))*.02;\n", +"K37=(6.501+.2736169)*0.02;\n", +"l37=62.83*(1.5-1.2*sin(1.0939863))*.02;\n", +"K47=(6.501+.545168)*0.02;\n", +"l47=62.83*(1.5-1.2*sin(1.16149))*.02;\n", +"Dd7=(K17+2*K27+2*K37+K47)/6;\n", +"d8=d7+Dd7;\n", +"Dw7=(l17+2*l27+2*l37+l47)/6;\n", +"w8=w7+Dw7;\n", +"mprintf('d8=%.5f rad.\nw8=%.4frad/sec\n\n',d8,w8)\n", +"mprintf('using Euler`s Modified Method-\n');\n", +"d0=0;\n", +"d10=.524;\n", +"w=62.83*(1.5-1.2*sin(.524));\n", +"d11=d10+0;\n", +"w11=w*.02;\n", +"d=1.13094;\n", +"dav=(0+d)/2;\n", +"wav=(56.547+56.547)/2;\n", +"d01=.524+.56547*.02;\n", +"w11=0+56.547*0.02;\n", +"mprintf('d01=%.4f\nw11=%.5f',d01,w11);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.1: EX17_1.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"// To determine the acceleration . Also determine the change in torque angle and r.p.mat the end of 15 cycles\n", +"clear\n", +"clc;\n", +"H=9;\n", +"G=20;// machine Rating(MVA)\n", +"KE=H*G;\n", +"mprintf('(a)K.E stored in the rotor =%.0f MJ\n',KE);\n", +"Pi=25000*.735;\n", +"PG=15000;\n", +"Pa=(Pi-PG)/(1000);\n", +"f=50;\n", +"M=G*H/(%pi*f);\n", +"a=Pa/M;\n", +"mprintf('(b) The accelerating power =%.3f MW\n',Pa);\n", +"mprintf('Acceleration =%.3f rad/sec_2\n',a);\n", +"t=15/50;\n", +"del=sqrt(5.89)*t/2;\n", +"Del=del^2;\n", +"k=2.425*sqrt(Del)*60/4*%pi;\n", +"speed=1504.2;\n", +"mprintf('(c)Rotor speed at the end of 15 cycles =%.1f r.p.m',speed);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.2: EX17_2.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"// To determine the frequency of natural oscillations if the genrator is loaded to (i)60% and (ii)75% of its maximum power transfer capacity\n", +"clear \n", +"clc;\n", +"V1=1.1;\n", +"V2=1;\n", +"X=.5;\n", +"cosdo=.8;\n", +"G=1;\n", +"H=3;\n", +"f=50;\n", +"M=G*H/(%pi*f);\n", +"dPe=V1*V2*cosdo/X;\n", +"fn=(((dPe)/M)^.5)/6.28;\n", +"sind0=.75;\n", +"d0=asind(sind0);\n", +"dPe2=V1*V2*cosd(d0)/X;\n", +"fn2=(((dPe2)/M)^.5)/6.28;\n", +"mprintf('(i)fn=%.2f Hz\n',fn);\n", +"mprintf('(i)fn(Hz)=%.2f Hz',fn2);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.3: EX17_3.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//To calculate the maximum value of d during the swinging of the rotor around its new equilibrium position\n", +"clc\n", +"clear\n", +"a=.25;//sindo=.25\n", +"do=asind(a);//\n", +"b=.5//sindc=.5\n", +"dc=asind(b);\n", +"c=cosd(do)+.5*do*%pi/180;\n", +"dm=dc;\n", +"e=1;\n", +"while(e>.0001)\n", +" dm=dm+.1;\n", +" e=abs(c-(((.5*dm*%pi)/180)+cosd(dm)));\n", +"end\n", +"printf('dm approximately found to be %d degree',dm);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.4: To_calculate_the_critical_clearing_angle_for_the_condition_described.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"// To calculate the critical clearing angle for the condition described.\n", +"clear \n", +"clc;\n", +"sindo=.5;\n", +"d0=asind(sindo)*%pi/180;\n", +"r1=.2;\n", +"r2=.75;\n", +"sindm=.5/.75;\n", +"d=asind(sindm);\n", +"cosdm=cosd(d);\n", +"dm=%pi*(180-(asind(sindm)))/180;\n", +"Dc=((.5*(dm-d0))-(r2*cosdm)-(r1*cosd(d0)))/(r2-r1);\n", +"dc=acosd(Dc);// critical angle\n", +"mprintf('The critical clearing angle is given by=%.2f degrees',dc);//Answers don't match due to difference in rounding off of digits" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.5: To_calculate_the_critical_clearing_angle_for_the_generator_for_a_3phase_fault.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"// To calculate the critical clearing angle for the generator for a 3-phase fault\n", +"clear \n", +"clc;\n", +"ZA=.375;\n", +"ZB=.35;\n", +"ZC=.0545;\n", +"ZAB=((ZA*ZB)+(ZB*ZC)+(ZC*ZA))/ZC;//Reactance between the generator and infinite bus during the fault(p.u)\n", +"Zgbf=%i*.3+ %i*(.55/2) +%i*.15;//Reactance between the generator and infinite bus before the fault(p.u)\n", +"Zgb=%i*.3+ %i*(.55) +%i*.15;//Reactance between the generator and infinite bus after the fault is cleared (p.u)\n", +"Pmaxo=1.2*1/abs(Zgbf);// Maximum power output Before the fault(p.u)\n", +"Pmax1=1.2*1/abs(ZAB);// Maximum power output during the fault(p.u)\n", +"Pmax2=1.2*1/abs(Zgb);// Maximum power output after the fault(p.u)\n", +"r1=Pmax1/Pmaxo;\n", +"r2=Pmax2/Pmaxo;\n", +"Ps=1;\n", +"sindo=Ps/Pmaxo;\n", +"do=asind(sindo);\n", +"d0=asind(sindo)*%pi/180;\n", +"sindm=1/Pmax2;\n", +"cosdm=cosd(asind(sindm));\n", +"Dm=%pi*(180-(asind(sindm)))/180;\n", +"Dc=(((sindo*(Dm-d0))-(r2*cosdm))-(r1*cosd(do)))/(r2-r1);\n", +"dc=acosd(Dc);// critical angle\n", +"mprintf('The critical clearing angle is given by= %.1f ',dc);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.6: determine_the_critical_clearing_angle.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//(A) determine the critical clearing angle \n", +"clear \n", +"clc;\n", +"Pm=%i*.12 + %i*.035 + ((%i*.25*%i*.3)/%i*.55);\n", +"Pm1=0;\n", +"Pm2=1.1*1/.405;\n", +"r1=0;\n", +"r2=2.716/3.775;\n", +"d0=(asind(1/3.775));\n", +"dM=(180-asind(1/2.716));\n", +"do=d0*%pi/180;\n", +"dm=dM*%pi/180;\n", +"dc=acosd((((dm-do)*sind(d0))-(r1*cosd(d0))+(r2*cosd(dM)))/(r2-r1));\n", +"mprintf('dc=%.2f',dc);\n", +"" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.7: EX17_7.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"// To determine the centre and radius for the pull out curve ans also minimum output vars when the output powers are (i)0 (ii).25p.u (iii) .5p.u\n", +"clear \n", +"clc;\n", +"Pc=0;\n", +"V=.98;\n", +"Qc=V^2*((1/.4)-(1/1.1))/2;\n", +"R=V^2*((1/.4)+(1/1.1))/2;\n", +"Q=-(.98^2*((1.1-.4)/.44)/2) + (.98^2)*1.5/(2*.44);\n", +"mprintf('(i)Q=%.2f MVAr\n',abs(Q)*100);\n", +"P=.25;\n", +"Q2=-((1.637^2)-(.25^2))^.5 + .7639;\n", +"mprintf('(ii)Q=%.4f p.u\n',Q2);\n", +"Q3=-((1.637^2)-(.5^2))^.5 + .7639;\n", +"mprintf('(iii)Q=%.4f p.u',Q3);" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.8: Compute_the_prefault_faulted_and_post_fault_reduced_Y_matrices.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"// Compute the prefault, faulted and post fault reduced Y matrices\n", +"clear \n", +"clc;\n", +"y=[-%i*5 0 %i*5 ; 0 -%i*5 %i*5;%i*5 %i*5 -%i*10 ];\n", +"YAA=[-%i*5 0;0 -%i*5];\n", +"YAB=[%i*5;%i*5];\n", +"YBA=[%i*5 %i*5];\n", +"YBB=[%i*10];\n", +"Y=YAA-YAB*(inv(YBB))*YBA;\n", +"Yfull=[-%i*5 0 %i*5;0 -%i*7.5 %i*2.5;%i*5 %i*2.5 -%i*12.5];\n", +"disp(Yfull,'(i)faulted case, full matrix(admittance)=');\n", +"Y=[-%i*3 %i*1;%i*1 -%i*7];\n", +"disp(Y,'(ii)Pre-fault case, reduced admittance matrix=');\n", +"Y=[-%i*5 0 %i*5;0 -%i*2.5 %i*2.5;%i*5 %i*2.5 -%i*7.5];\n", +"disp(Y,'(iii)Post-fault case, full matrix(admittance)=');\n", +"Y=[-%i*1.667 %i*1.667;%i*1.667 -%i*1.667];\n", +"disp(Y,' reduced admittance matrix=');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 17.9: EX17_9.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Determine the reduced admittance matrices for prefault, fault and post fault conditions and determine the power angle characterstics for three conditions.\n", +"clear \n", +"clc;\n", +"Y=[-%i*8.33 0 %i*8.33 0;0 -%i*28.57 0 %i*28.75;%i*8.33 0 -%i*15.67 %i*7.33;0 %i*28.57 %i*7.33 -%i*35.9];\n", +"YBB=[-%i*15.67 %i*7.33;%i*7.33 -%i*35.9];\n", +"YAA=[-%i*8.33 0;0 -%i*28.57];\n", +"YAB=[%i*8.33 0;0 %i*28.57];\n", +"YBA=YAB;\n", +"Y=YAA-(YAB*(inv(YBB))*YBA);\n", +"Y1=([-%i*8.33 0;0 -%i*28.57])-(([0;(%i*28.57/-%i*35.9)]*[0 %i*28.57]));\n", +"disp(Y1,'Reduced admittance matrix during fault=');\n", +"Yfull=[-%i*8.33 0 %i*8.33 0;0 -%i*28.57 0 %i*28.75;%i*8.33 0 -%i*12.33 %i*4;0 %i*28.57 %i*4 -%i*32.57];\n", +"YBB=[-%i*12.33 %i*4;%i*4 -%i*32.57];\n", +"Y=YAA-(YAB*(inv(YBB))*YBA);\n", +"disp(Y,'(i) Post fault condition ,reduced matrix=');\n", +"Y12=Y(1,2);\n", +"E1=1.1;\n", +"E2=1;\n", +"printf('\n Power angle characterstics , Pe= %fsind',abs(Y12)*E1*E2);" + ] + } +], +"metadata": { + "kernelspec": { + "display_name": "Scilab", + "language": "scilab", + "name": "scilab" + }, + "language_info": { + "file_extension": ".sce", + "help_links": [ + { + "text": "MetaKernel Magics", + "url": "https://github.com/calysto/metakernel/blob/master/metakernel/magics/README.md" + } + ], + "mimetype": "text/x-octave", + "name": "scilab", + "version": "0.7.1" + } + }, + "nbformat": 4, + "nbformat_minor": 0 +} |