From 476705d693c7122d34f9b049fa79b935405c9b49 Mon Sep 17 00:00:00 2001 From: prashantsinalkar Date: Tue, 14 Apr 2020 10:19:27 +0530 Subject: Initial commit --- ...Thyristors_Principles_and_Characteristics.ipynb | 1400 ++++++++++++++++++++ .../2-Phase_Controlled_Rectifiers.ipynb | 997 ++++++++++++++ .../3-Inverters.ipynb | 344 +++++ .../4-Choppers.ipynb | 705 ++++++++++ .../6-Control_of_DC_drives.ipynb | 161 +++ 5 files changed, 3607 insertions(+) create mode 100644 Introduction_to_Electric_Drives_by_V_Singhal/1-Thyristors_Principles_and_Characteristics.ipynb create mode 100644 Introduction_to_Electric_Drives_by_V_Singhal/2-Phase_Controlled_Rectifiers.ipynb create mode 100644 Introduction_to_Electric_Drives_by_V_Singhal/3-Inverters.ipynb create mode 100644 Introduction_to_Electric_Drives_by_V_Singhal/4-Choppers.ipynb create mode 100644 Introduction_to_Electric_Drives_by_V_Singhal/6-Control_of_DC_drives.ipynb (limited to 'Introduction_to_Electric_Drives_by_V_Singhal') diff --git a/Introduction_to_Electric_Drives_by_V_Singhal/1-Thyristors_Principles_and_Characteristics.ipynb b/Introduction_to_Electric_Drives_by_V_Singhal/1-Thyristors_Principles_and_Characteristics.ipynb new file mode 100644 index 0000000..d964053 --- /dev/null +++ b/Introduction_to_Electric_Drives_by_V_Singhal/1-Thyristors_Principles_and_Characteristics.ipynb @@ -0,0 +1,1400 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 1: Thyristors Principles and Characteristics" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.12: RMS_current_and_form_factor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_12\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"I=120;//A\n", +"Gamma=180;//degree\n", +"RMS_current=I*sqrt(Gamma/360);//A\n", +"AVG_current=I*(Gamma/360);//A\n", +"FormFactor=RMS_current/AVG_current;//no unit\n", +"disp(RMS_current,'rms current (in A) : ');\n", +"disp(FormFactor,'Form Factor : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.13: Power_supplied.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_13\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=130;//V\n", +"R=100;//ohm\n", +"theta1=60;//degree\n", +"theta2=45;//degree\n", +"v=sqrt(2)*V;//\n", +"Irms=sqrt(1/2/%pi*integrate('(3.25*sin(omega_t))^2','omega_t',theta1*%pi/180,%pi));//A\n", +"P=Irms^2*R;//W\n", +"disp(P,'(a) Power supplied to load (in W) : ');\n", +"Irms=sqrt(1/2/%pi*integrate('(3.25*sin(omega_t))^2','omega_t',theta2*%pi/180,%pi));//A\n", +"P=Irms^2*R;//W\n", +"disp(P,'(a) Power supplied to load (in W) : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.14: Average_power_loss.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_14\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Iavg=200;//A\n", +"period1=2*%pi;\n", +"period2=%pi;\n", +"Vth1=1.8;//V\n", +"I1=200;//A\n", +"Vth2=1.9;//V\n", +"I2=400;//A\n", +"//part (a)\n", +"Ploss1=I1*Vth1*period1/2/%pi;//W\n", +"disp(Ploss1,'(a) Average power loss (in W) : ');\n", +"Ploss2=I2*Vth2*period2/2/%pi;//W\n", +"disp(Ploss2,'(b) Average power loss (in W) : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.15: Average_on_state_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_15\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Irms=40;//A\n", +"f=50;//Hz\n", +"period1=170;//degree\n", +"period2=100;//degree\n", +"period3=40;//degree\n", +"//part (a)\n", +"alfa1=%pi-period1*%pi/180;//degree\n", +"Irms_by_Im=sqrt(1/2/%pi*((%pi-alfa1)/2+sin(2*alfa1)/4));\n", +"Im=Irms/Irms_by_Im;//A\n", +"Iav1=Im/2/%pi*(1+cos(alfa1));//A\n", +"disp(Iav1,'(a) Average current (in A) : ');\n", +"//part (b)\n", +"alfa2=%pi-period2*%pi/180;//degree\n", +"Irms_by_Im=sqrt(1/2/%pi*((%pi-alfa2)/2+sin(2*alfa2)/4));\n", +"Im=Irms/Irms_by_Im;//A\n", +"Iav2=Im/2/%pi*(1+cos(alfa2));//A\n", +"disp(Iav2,'(b) Average current (in A) : ');\n", +"//part (c)\n", +"alfa3=%pi-period3*%pi/180;//radian\n", +"Irms_by_Im=sqrt(1/2/%pi*((%pi-alfa3)/2+sin(2*alfa3)/4));\n", +"Im=Irms/Irms_by_Im;//A\n", +"Iav3=Im/2/%pi*(1+cos(alfa3));//A\n", +"disp(Iav3,'(c) Average current (in A) : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.16: Mean_power_dissipation.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_16\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"//VT=0.9+0.02*IT;//V\n", +"//part (a)\n", +"IT=20;//A\n", +"VT=0.9+0.02*IT;//V\n", +"Pdiss=VT*IT;//W\n", +"disp(Pdiss,'(a) Mean power dissipation (in W) : ');\n", +"//part (b)\n", +"IT_mean=20;//A\n", +"IT_peak=20*%pi;//A\n", +"Pdiss=1/2/%pi*integrate('(0.9+0.02*IT_peak*sin(theta))*(IT_peak*sin(theta))','theta',0,%pi);//W\n", +"disp(Pdiss,'(b) Mean power dissipation (in W) : ');\n", +"//part (c)\n", +"IT=20;//A//for half cycle\n", +"VT=0.9+0.02*IT;//V\n", +"Pdiss=VT*IT/2;//W\n", +"disp(Pdiss,'(c) Power dissipation occur only during half cycle. Mean power dissipation (W)');\n", +"//part (d)\n", +"IT=20;//A//for half cycle\n", +"VT=0.9+0.02*IT;//V\n", +"Pdiss=VT*IT/3;//W\n", +"disp(Pdiss,'(d) Power dissipation occur only during 1/3rd period in a cycle. Mean power dissipation (W)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.17: Current_rating_and_I2t_rating.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_17\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"Isub=2000;//A\n", +"f=50;//Hz\n", +"t=10*10^-3;//s\n", +"T=2*t;//s//duration of half cycle\n", +"I=sqrt(Isub^2*t/T);//A\n", +"I2t=I^2*t;//A^2 seconds\n", +"disp(I2t,'I^2*t rating in A^2-seconds ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.18: Series_resistance_and_average_gate_power_loss.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_18\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"Vgate=12;//V\n", +"t=60*10^-6;//s\n", +"cycle=0.3;\n", +"P_peak=6;//W\n", +"//part (a)\n", +"//P_peak=Vg*Ig leads to 9*Ig^2+Ig-P_peak=0\n", +"X=[9 1 -6];//polynomial\n", +"Ig=roots(X);//A\n", +"Ig=Ig(2);//A(taking +ve value)\n", +"Vg=1+9*Ig\n", +"Rg=(Vgate-Vg)/Ig;//ohm\n", +"disp(Rg,'Series resistance Rg in ohm');\n", +"PavgLoss=P_peak*cycle;//W\n", +"disp(PavgLoss,'Average power loss in W ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.19: Source_Resistance_Trigger_Current_and_voltage.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_19\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"Vs=12;//V\n", +"P=0.3;//W\n", +"Rs=100;//ohm//as slope is -100V/A\n", +"//Vs=Vg+Ig*Rg leads to Rs*Ig^2-Vs*Ig+P=0\n", +"X=[Rs -Vs P];//polynomial\n", +"Ig=roots(X);//A\n", +"Ig=Ig(2);//A(taking one value)\n", +"disp(Rs,'Source resistance, Rs in ohm ');\n", +"disp(Ig*1000,'Trigger current in mA ');\n", +"Vg=P/Ig;//V\n", +"disp(Vg,'Voltage Vg in V ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.1: Anode_Current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_1\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"alfa1=0.35;\n", +"alfa2=0.4;\n", +"IG=40*10^-3;//A\n", +"\n", +"//Solution :\n", +"IA=alfa2*IG/(1-(alfa1+alfa2));//A\n", +"disp(IA,'Anode current in A : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.20: Find_Rs_R1_and_R2.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_20\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"V=800;//V\n", +"I=110;//A\n", +"Es=12;//V\n", +"Im=250;//mA\n", +"Ish=600;//mA\n", +"VG=2.4;//V\n", +"IG=50;//mA\n", +"IGm=100;//mA\n", +"VGm=3;//V\n", +"Rs=Es/(Ish*10^-3);//ohm\n", +"disp(Rs,'Value of Rs in ohm ');\n", +"R1=Es/(Im*10^-3)-Rs;//ohm(Assumed R2 is not connected)\n", +"//Rs_plus_R1>=Es/(IGm*10^-3);//ohm\n", +"Rs_plus_R1=Es/(IGm*10^-3);//ohm\n", +"R1_Lower=Rs_plus_R1-Rs;//ohm\n", +"//Rs_plus_R1<=(Es-VG)/(IGm*10^-3);//ohm\n", +"Rs_plus_R1=(Es-VG)/(IG*10^-3);//ohm\n", +"R1_Upper=Rs_plus_R1-Rs;//ohm\n", +"disp('R1 must be more than '+string(R1_Lower)+' ohm and less than '+string(R1_Upper)+' ohm.')\n", +"disp('Let R1 is 125 ohm.');\n", +"R1=125;//ohm\n", +"//R2*Es/(R1+R2+Rs)<=VGm\n", +"R2=(VGm*R1+VGm*Rs)/(Es-VGm);//ohm\n", +"disp('R2<='+string(R2)+' ohm ')\n", +"disp('Let R2 is 48 ohm.');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.21: Finf_thermal_resistance.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_21\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"l=0.2;//m\n", +"w=0.01;//m\n", +"d=0.01;//m\n", +"P=3;//W\n", +"Tc=220;//W/m/degreeC\n", +"T1=30;//degreeC\n", +"theta=l/Tc/w/d;//degreeC/W\n", +"T2=P*theta+T1;//degreeC\n", +"disp(T2,'Temperature of the surface in degree C ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.22: Find_maximum_losses.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_22\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"l=2/1000;//m\n", +"A=12/10000;//m^2\n", +"T21=4;//degreeC(T2-T1)\n", +"Tc=220;//W/m/degreeC\n", +"theta=l/Tc/A;//degreeC/W\n", +"Losses=T21/theta;//W\n", +"disp(Losses,'Maximum losses in W ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.23: Thermal_resistance_of_heat_sink.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_23\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"P=30;//W\n", +"T1=125;//degreeC\n", +"T2=50;//degreeC\n", +"theta=1;//degree C/W\n", +"theta_mica=0.3;//degree C/W\n", +"Rth_total=(T1-T2)/P;//degree C/W\n", +"Rth_heat_sink=Rth_total-theta-theta_mica;//degree C/W\n", +"disp(Rth_heat_sink,'Thermal resistance of heat sink in degree C/W ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.24: Find_Junction_temperature.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_25\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"T1=120;//degreeC(Junction Temperature)\n", +"T2=35;//degreeC(Ambient Temperature)\n", +"P=40;//W\n", +"theta_dash=0.8;//degree C/W(junction to heat sink)\n", +"theta=(T1-T2)/P;//degree C/W\n", +"disp(theta-theta_dash,'Resistance of heat sink in degree C/W');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.25: Maximum_thermal_resiatance.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_25\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"T1=120;//degreeC(Junction Temperature)\n", +"T2=35;//degreeC(Ambient Temperature)\n", +"P=40;//W\n", +"theta_dash=0.8;//degree C/W(junction to heat sink)\n", +"theta=(T1-T2)/P;//degree C/W\n", +"disp(theta-theta_dash,'Resistance of heat sink in degree C/W');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.26: Average_power_loss_and_increase_in_rating.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_26\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Tj=125;//degreeC\n", +"Ts=80;//degreeC\n", +"theta_jc=0.7;//degree C/W\n", +"theta_cs=0.4;//degree C/W\n", +"//part (a)\n", +"Pav1=(Tj-Ts)/(theta_jc+theta_cs);//W\n", +"disp(Pav1,'(a) Average power loss in W')\n", +"//part (b)\n", +"Ts=50;//degreeC\n", +"Pav2=(Tj-Ts)/(theta_jc+theta_cs);//W\n", +"disp(Pav2,'(b) Permisible average power loss in W')\n", +"rating_increase=(sqrt(Pav2)-sqrt(Pav1))/sqrt(Pav1)*100;//%\n", +"disp(rating_increase,'Percentage increase in rating')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.27: Minimum_and_maximum_firing_angle.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_27\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Vs=230;//V\n", +"f=50;//Hz\n", +"vc=25;//V\n", +"C=0.6*10^-6;//F\n", +"R=2000:20000;//ohm\n", +"Xc=1/(2*%pi*f*C);//ohm\n", +"//When R=2000 ohm\n", +"Z=min(R)-%i*Xc;//ohm\n", +"I=Vs/Z;//A\n", +"Vc=-%i*I*Xc;//V\n", +"//vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))\n", +"omega_t=asind(vc/sqrt(2)/abs(Vc))-atand(imag(Vc),real(Vc));//degree\n", +"alfa1=omega_t;//degree\n", +"\n", +"//When R=20000 ohm\n", +"Z=max(R)-%i*Xc;//ohm\n", +"I=Vs/Z;//A\n", +"Vc=-%i*I*Xc;//V\n", +"//vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))\n", +"omega_t=asind(vc/sqrt(2)/abs(Vc))-atand(imag(Vc),real(Vc));//degree\n", +"alfa2=omega_t;//degree\n", +"disp(alfa1,'Minimum firing angle in degree')\n", +"disp(alfa2,'Maximum firing angle in degree')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.28: Design_a_UJTcircuit.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_28\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=32;//V\n", +"Eta=0.63;\n", +"Ip=10*10^-6;//A\n", +"Vv=3.5;//V\n", +"Iv=10*10^-3;//A\n", +"Vf=0.5;//V\n", +"f=50;//Hz\n", +"tau=50*10^-3;//s\n", +"T=1/f//s\n", +"Vp=Eta*V+Vf;//V\n", +"C=0.4*10^-6;//F//assumed\n", +"disp(C*10^6,'Suitable value of C in micro F ')\n", +"//V-Ip*R>Vp\n", +"R_upper=(V-Vp)/Ip;//ohm\n", +"//V-Iv*RVp\n", +"R_upper=(Vdc-Vp)/Ip;//ohm\n", +"disp('Value of R should be less than '+string(R_upper)+' ohm')\n", +"C=0.5*10^-6;//F//assumed\n", +"disp(C*10^6,'Let value of C in micro F ')\n", +"T=1/f//s\n", +"R=T/C/log(1/(1-Eta));//ohm\n", +"disp('For C=0.5 micro F, calculated value of R '+string(R)+' ohm. But it is not suitable');\n", +"C=1*10^-6;//F//assumed\n", +"disp(C*10^6,'Let value of C in micro F ')\n", +"R=T/C/log(1/(1-Eta));//ohm\n", +"disp('For C=1 micro F, calculated value of R '+string(R)+' ohm. It is suitable');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.2: Equivalent_capacitance.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_2\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"dv_dt=190;//V/µs\n", +"IC=8*10^-3;//A\n", +"\n", +"//Solution :\n", +"C=IC/(dv_dt/10^-6);//F\n", +"disp(C,'Capacitance of depletion layer in F : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.30: Range_of_firing_angle.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_30\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Vs=230;//V\n", +"R=1000:22000;//ohm\n", +"Vg=2;//V\n", +"C=0.47*10^-6;//F\n", +"f=50;//Hz\n", +"Xc=1/(2*%pi*f*C);//ohm\n", +"//When R=1000 ohm\n", +"theta=atand(min(R)/Xc);//degree\n", +"Z=min(R)-%i*Xc;//ohm\n", +"I=Vs/Z;//A\n", +"Vc=-%i*I*Xc;//V\n", +"//vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))\n", +"omega_t=asind(Vg/sqrt(2)/abs(Vc))-atand(imag(Vc),real(Vc));//degree\n", +"alfa1=omega_t;//degree\n", +"//When R=22000 ohm\n", +"Z=max(R)-%i*Xc;//ohm\n", +"I=Vs/Z;//A\n", +"Vc=-%i*I*Xc;//V\n", +"//vc=sqrt(2)*abs(Vc)*sind(omega_t+atand(imag(Vc),real(Vc)))\n", +"omega_t=asind(Vg/sqrt(2)/abs(Vc))-atand(imag(Vc),real(Vc));//degree\n", +"alfa2=omega_t;//degree\n", +"disp(alfa1,'Minimum firing angle in degree')\n", +"disp(alfa2,'Maximum firing angle in degree')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.31: Time_of_conduction.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_31\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"R=0.8;//ohm\n", +"L=10*10^-6;//H\n", +"C=50*10^-6;//F\n", +"//RVC^2*C/IL\n", +"L_lower=VC^2*C/IL^2;//H\n", +"Ip=VC*sqrt(C/L_lower);//A\n", +"disp('Value of L should be greater than '+string(L_lower)+' H. For this value of L, Peak capacitor current is '+string(Ip)+' A. But it should be less than maximum load current.')\n", +"//Let Ip=34.6 A\n", +"Ip=34.6;//A\n", +"L=C/(Ip/VC)^2;//H\n", +"disp(L,'Value of L(H)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.35: Current_rating_of_thyristor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_35\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Vdc=100;//V\n", +"L=0.1*10^-3;//H\n", +"C=10*10^-6;//F\n", +"Vc=100;//V\n", +"t_off_thyristor=25*10^-6;//s\n", +"IL=10;//A\n", +"t_off=Vc*C/IL;//s\n", +"disp('T_off is '+string(t_off)+' seconds. It is greater than thristor turn off time, so it is sufficient for communication.')\n", +"Ip=Vdc*sqrt(C/L);//A\n", +"disp(Ip,'Current rating(A)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.36: Find_value_of_R_and_C.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_36\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"dv_by_dt=25/10^-6;//V/s\n", +"L=0.2*10^-3;//H\n", +"Vrms=230;//V\n", +"damping=0.65;//damping factor\n", +"Vm=sqrt(2)*Vrms;//V\n", +"C=1/(2*L)*[0.564*Vm/dv_by_dt]^2;//F\n", +"R=2*damping*sqrt(L/C);//ohm\n", +"disp(C,'Value of C(F)');\n", +"disp(R,'Value of R(ohm)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.37: Value_of_R_and_C_Power_loss_and_rating.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_37\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=300;//V\n", +"RL=10;//ohm\n", +"L=0;//H\n", +"Ith=100;//A\n", +"f=2000;//Hz\n", +"dv_by_dt=100*10^6;//V/s\n", +"//dv/dt=(vth(tau)-vth(0))/tau\n", +"//dv/dt=RL*(1-0.368)*V/(R+RL)/((R+RL)*C)\n", +"R=V/Ith;//ohm\n", +"C=RL*(1-0.368)*V/(R+RL)/(R+RL)/dv_by_dt\n", +"disp(R,'Value of R(ohm)');\n", +"disp(C,'Value of C(F)');\n", +"Ploss=1/2*C*V^2*f;//W\n", +"disp(Ploss,'Power loss in snubber circuit(W)')\n", +"disp('Power rating of resitance is '+string(Ploss)+' W as all energy will be disspated in the resistance.')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.38: Value_of_dvbydt_and_dibydt.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_38\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"R=4;//ohm\n", +"L=6*10^-6;//H\n", +"C=6*10^-6;//F\n", +"V=300;//V\n", +"di_by_dt_max=V/L;//A/s\n", +"Isc=V/R;//A\n", +"dvc_by_dt=R*di_by_dt_max+Isc/C;//V/s\n", +"disp(di_by_dt_max,'Maximum permissible value of di/dt(A/s)');\n", +"disp(dvc_by_dt,'Maximum permissible value of dv/dt(V/s)');\n", +"" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.39: Design_a_snubber_circuit.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_39\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"RL=8;//ohm\n", +"V=230;//V\n", +"Ip=100;//A\n", +"SF=2;//safety factor\n", +"di_by_dt_max=40/10^-6/2;//A/s\n", +"dv_by_dt_max=150/10^-6/2;//V/s\n", +"\n", +" L=sqrt(2)*V/di_by_dt_max;//H\n", +"disp(L,'Value of L(H)');\n", +"R=L/(sqrt(2)*V)*dv_by_dt_max;//ohm\n", +"disp(R,'Value of R(ohm)');\n", +"IL_peak=(sqrt(2)*V)/RL;//A\n", +"Ic_peak=(sqrt(2)*V)/R;//A\n", +"Itotal=IL_peak+Ic_peak;//A\n", +"disp(Itotal,'Total current through capacitor for these values(A)');\n", +"disp('Itotal>Ip, therefore value of R should be increased.');\n", +"Ic_max=Ip-IL_peak;//A\n", +"R=(sqrt(2)*V)/Ic_max;//ohm\n", +"R=ceil(R);//ohm\n", +"disp(R,'New Value of R(ohm)');\n", +"damping=0.65;\n", +"C=4*damping^2*L/R^2;//F\n", +"disp(C*10^6,'Value of C(micro F)');\n", +"disp(L*10^6,'Value of L(micro H)');\n", +"//Ic_switching=C*dv/dt\n", +"dv_by_dt=sqrt(2)*V/(R+RL)/C;//V/s\n", +"disp('Value of dv/dt is '+string(dv_by_dt)+' V/s. It is within the limit for the calculated value of R, L & C. Design is safe.')\n", +"" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.3: Find_various_voltages.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_3\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"RG=2000;//ohm\n", +"VCC=20;//V\n", +"VT=0.75;//V\n", +"Vthy=0.7;//V(Voltage across thyristor)\n", +"R=200;//ohm\n", +"IT=7*10^-3;//A\n", +"Ih=5*10^-3;//A\n", +"\n", +"\n", +"//Solution :\n", +"//part (a)\n", +"Vo=VCC;//V////thyristor not conducting\n", +"disp(Vo,'(a) When thyristor is in off state, Output voltage in V')\n", +"//part (b)\n", +"Vs=VT+IT*RG;//V\n", +"disp(Vs,'(b) Voltage necessary to turn on the thyristor in V')\n", +"//part (c)\n", +"VR1=Ih*R;//V\n", +"disp('(c) Current through thyristor should be less than holding current. Voltage should be reduced to less than '+string(VR1)+' V')\n", +"//part (d)\n", +"VR2=VR1+Vthy;//V\n", +"disp('(d) VCC should be reduced to less than '+string(VR2)+' V')" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.40: Fault_clearing_time.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_40\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=230;//V\n", +"R1=2;//ohm\n", +"R2=5;//ohm\n", +"R3=1;//ohm\n", +"R4=6;//ohm\n", +"R5=5;//ohm\n", +"Isqr_t=30;//A^2-s\n", +"R=R1+R2*R3/(R2+R3);//ohm(X grounded)\n", +"Ifault=sqrt(2)*V/R;//A\n", +"tc=Isqr_t/Ifault^2;//s\n", +"disp(tc,'Fault clearing time in seconds');\n", +"" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.4: Find_VG_IG_and_RG.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_4\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"IG=poly(0,'IG');//A\n", +"VG=1+9*IG;//V\n", +"Vgate=25;//V\n", +"t=%pi;//radian(duration)\n", +"Pavg=0.6;//W\n", +"\n", +"//Solution :\n", +"Ploss=Pavg*2*%pi/t;//W\n", +"//Ploss=VG*IG\n", +"X=VG*IG-Ploss;\n", +"IG=roots(X);//A\n", +"IG=IG(2);//A(taking +ve value only)\n", +"VG=1+9*IG;//V\n", +"//Vgate=RG*IG+VG\n", +"RG=(Vgate-VG)/IG;//ohm\n", +"disp(VG,'VG in V');\n", +"disp(IG,'IG in A');\n", +"disp(RG,'RG in ohm');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.5: Minimum_width_of_gate_pulse.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_5\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"Vdc=100;//V\n", +"L=10;//H\n", +"i=80*10^-3;//A\n", +"\n", +"//Solution :\n", +"t=i*L/Vdc;//s\n", +"disp('Width of pulse should be more than '+string(t*1000)+' milli-seconds.');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.6: Minimum_width_of_gate_pulse.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_6\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"Vdc=100;//V\n", +"R=10;//ohm\n", +"L=5;//H\n", +"i=50*10^-3;//A\n", +"\n", +"//Solution :\n", +"//i=Vdc/R*(1-exp(-R*t/L))\n", +"t=-log(1-i/Vdc*R)/R*L;//s\n", +"disp('Minimum width of gate pulse is '+string(t*1000)+' milli-seconds.');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.7: Maximum_value_of_R.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_7\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"i_latch=40*10^-3;//A\n", +"t=40*10^-6;//s\n", +"Vdc=90;//V\n", +"R=25;//ohm\n", +"L=0.5;//H\n", +"\n", +"//Solution :\n", +"i=Vdc/R*(1-exp(-R*t/L));//A\n", +"disp('Current in the circuit is '+string(i)+' A, it is less than latchig current, the thyristor will not turn on.');\n", +"R=Vdc/(i_latch-i);//ohm\n", +"disp('Maximum value of R is '+string(R)+' ohm.');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 1.8: Maximum_value_of_R.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 1_8\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data\n", +"i_h=50*10^-3;//A\n", +"t=50*10^-6;//s\n", +"Vdc=100;//V\n", +"R=20;//ohm\n", +"L=0.5;//H\n", +"\n", +"//Solution :\n", +"i=Vdc/R*(1-exp(-R*t/L));//A\n", +"//i4*L/C, Circuit will not work as a series inverter.');\n", +"end\n", +"omega_m=sqrt(1/(L*10^-3*C*10^-6)-R^2/4/(L*10^-3)^2);//rad/s\n", +"fm=omega_m/2/%pi;//Hz\n", +"disp(fm,'Maximum frequency in Hz : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.2: Frequency_of_output.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3_2\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"R=80;//ohm\n", +"L=8;///mH\n", +"C=1.2;// micro F\n", +"Toff=14;//micro sec\n", +"\n", +"//Solution :\n", +"omega_m=sqrt(1/(L*10^-3*C*10^-6)-R^2/4/(L*10^-3)^2);//rad/s\n", +"fm=omega_m/2/%pi;//Hz\n", +"T=1/fm;//sec\n", +"f=1/(T+2*Toff*10^-6);//Hz\n", +"disp(f,'Frequency of output in Hz : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.3: Voltage_power_and_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3_3\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"RL=3;//in ohm\n", +"V=30;//in V\n", +"\n", +"//Solution :\n", +"Vpeak=2*V/%pi;//V\n", +"Vrms=Vpeak/sqrt(2);//V\n", +"disp(Vrms,'(a) RMS value of output voltage(V) : ');\n", +"//VL=sqrt(2/T*integrate('(V/2)^2','t',0,T/2));//V\n", +"VL=V/2;//V\n", +"Pout=VL^2/RL;//W\n", +"disp(Pout,'(b) Output power(W) : ');\n", +"Ipeak=VL/RL;//A\n", +"disp(Ipeak,'(c) Peak current in thyristor(A) : ');\n", +"Iavg=Ipeak*50/100;//A\n", +"disp(Iavg,'(d) Average current of each thyristor(A) : ');\n", +"Vprb=2*VL;//V\n", +"disp(Vprb,'(e) Peak reverse braking voltage(V) : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.4: Voltage_power_and_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3_4\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"RL=3;//in ohm\n", +"V=30;//in V\n", +"\n", +"//Solution :\n", +"Vpeak=4*V/%pi;//V\n", +"Vrms=Vpeak/sqrt(2);//V\n", +"disp(Vrms,'(a) RMS value of output voltage in volt : ');\n", +"//VL=sqrt(2/T*integrate('V^2','t',0,T/2));//V\n", +"VL=V;//V\n", +"Pout=VL^2/RL;//W\n", +"disp(Pout,'(b) Output power(W) : ');\n", +"Ipeak=VL/RL;//A\n", +"disp(Ipeak,'(c) Peak current in thyristor(A) : ');\n", +"Iavg=Ipeak*50/100;//A\n", +"disp(Iavg,'(d) Average current of each thyristor(A) : ');\n", +"Vprb=VL;//V\n", +"disp(Vprb,'(e) Peak reverse braking voltage(V) : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.5: Current_Distortion_and_power.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3_5\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=200;//V\n", +"R=10;//in ohm\n", +"L=20;//mH\n", +"C=100;//pF\n", +"f=50;//Hz\n", +"\n", +"//Solution :\n", +"Z1=R+%i*(2*%pi*f*L*10^-3-1/(2*%pi*f*C*10^-6));//ohm\n", +"Z3=R+%i*(3*2*%pi*f*L*10^-3-1/(3*2*%pi*f*C*10^-6));//ohm\n", +"Z5=R+%i*(5*2*%pi*f*L*10^-3-1/(5*2*%pi*f*C*10^-6));//ohm\n", +"Z7=R+%i*(7*2*%pi*f*L*10^-3-1/(7*2*%pi*f*C*10^-6));//ohm\n", +"Z9=R+%i*(9*2*%pi*f*L*10^-3-1/(9*2*%pi*f*C*10^-6));//ohm\n", +"I=4*V/%pi/abs(Z1);//A\n", +"Irms=I/sqrt(2);//A\n", +"disp(Irms,'RMS load current(A)');\n", +"Ip=sqrt((4*V/%pi/abs(Z1))^2+(4*V/3/%pi/abs(Z3))^2+(4*V/5/%pi/abs(Z5))^2+(4*V/7/%pi/abs(Z7))^2+(4*V/9/%pi/abs(Z9))^2);//A\n", +"disp(Ip,'Peak value of load current(A)');\n", +"Ih=sqrt(Ip^2-I^2)/sqrt(2);//A\n", +"disp(Ih,'RMS harmonic current(A)');\n", +"hd=sqrt(Ip^2-I^2)/I;//harmonic distortion\n", +"disp(hd*100,'Harmonic distortion(%)');\n", +"Irms_load=Ip/sqrt(2);//A\n", +"Pout=Irms_load^2*R;//W\n", +"disp(Pout,'Total output power(W)');\n", +"Pout_com=Irms^2*R;//W(fundamental component)\n", +"disp(Pout_com,'Fundamental component of power(W)');\n", +"Iavg_in=Pout/V;//A\n", +"disp(Iavg_in,'Average input current(A)');\n", +"Ip_thy=Ip;//A\n", +"disp(Ip_thy,'Peak thyristor current(A)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.6: Find_value_of_C.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3_6\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"R=2;//in ohm\n", +"XL=10;//ohm\n", +"f=4;//kHz\n", +"Toff=12;//micro sec\n", +"\n", +"//Solution :\n", +"Toff_time=Toff*1.5;//micro sec\n", +"theta=2*%pi*f*10^3*Toff_time*10^-6;//radians\n", +"Xc=tan(theta)*R+XL;//ohm\n", +"C=1/(2*%pi*f*1000*Xc);//F\n", +"disp(C,'Value of Capacitance in F : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.7: Current_and_power.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3_7\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=400;//V\n", +"R=10;//in ohm/phase\n", +"\n", +"//Solution :\n", +"Ipeak=V/2/R;//A\n", +"Irms=sqrt(Ipeak^2*2/3);//A\n", +"disp(Irms,'RMS load current in A : ');\n", +"Pout=Irms^2*R*3;//W\n", +"disp(Pout,'Power output(W) : ');\n", +"Iavg=Ipeak/3;//A\n", +"disp(Iavg,'Average thyristor current(A) : ');\n", +"Irms_thyristor=sqrt(Ipeak^2/3);//A\n", +"disp(Irms_thyristor,'RMS value of thyristor current(A) : ');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 3.8: Current_and_power.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 3_8\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=400;//V\n", +"R=10;//in ohm/phase\n", +"\n", +"//Solution :\n", +"RL=R+R/2;//ohm\n", +"i1=V/RL;//A\n", +"i2=V/RL;//A\n", +"i3=V/RL;//A\n", +"Irms_load=sqrt(1/2/%pi*(integrate('i1^2','theta',0,2*%pi/3)+integrate('(i1/2)^2','theta',2*%pi/3,2*%pi)));//A\n", +"disp(Irms_load,'RMS load current in A : ');\n", +"Pout=Irms_load^2*R*3;//W\n", +"disp(Pout,'Power output(W): ');\n", +"Ipeak=i1;//A\n", +"Iavg=1/2/%pi*[Ipeak*%pi/3+Ipeak/2*2*%pi/3];//A\n", +"disp(Iavg,'Average thyristor current(A) : ');\n", +"Irms_thyristor=sqrt(1/2/%pi*[Ipeak^2*%pi/3+(Ipeak/2)^2*2*%pi/3]);//A\n", +"disp(Irms_thyristor,'RMS value of thyristor current(A) : ');" + ] + } +], +"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 +} diff --git a/Introduction_to_Electric_Drives_by_V_Singhal/4-Choppers.ipynb b/Introduction_to_Electric_Drives_by_V_Singhal/4-Choppers.ipynb new file mode 100644 index 0000000..78937f5 --- /dev/null +++ b/Introduction_to_Electric_Drives_by_V_Singhal/4-Choppers.ipynb @@ -0,0 +1,705 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 4: Choppers" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.10: Average_load_voltage.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_10\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=230;//V\n", +"Ton=25/1000;//s\n", +"Toff=10/1000;//s\n", +"\n", +"//Solution :\n", +"Vavg=V*Ton/(Ton+Toff);//V\n", +"disp(Vavg,'Average load voltage(V)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.11: Find_curent_and_voltage.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_11\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=100;//V\n", +"R=0.5;//ohm\n", +"L=1/1000;//H\n", +"Ton=1/1000;//s\n", +"T=3/1000;//s\n", +"\n", +"//Solution :\n", +"Toff=T-Ton;//s\n", +"alfa=Ton/T;//duty cycle\n", +"E=0;//V\n", +"Imax=V/R*[(1-exp(-alfa*T*R/L))/(1-exp(-T*R/L))]-E/R;//A\n", +"Imin=V/R*[(exp(alfa*T*R/L)-1)/(exp(T*R/L)-1)]-E/R;//A\n", +"disp(Imax,'Maximum current(A)');\n", +"disp(Imin,'Minimum current(A)');\n", +"Iavg=(Imax+Imin)/2;//A\n", +"disp(Iavg,'Average load current(A)');\n", +"Vavg=alfa*V;//V\n", +"disp(Vavg,'Average load voltage(V)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.12: Output_current_and_voltage.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_12\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=100;//V\n", +"E=12;//V\n", +"L=0.8/1000;//H\n", +"R=0.2;//ohm\n", +"T=2.4/1000;//s\n", +"Ton=1/1000;//s\n", +"\n", +"//Solution :\n", +"alfa=Ton/T;//duty cycle\n", +"Imax=V/R*[(1-exp(-alfa*T*R/L))/(1-exp(-T*R/L))];//A\n", +"Imin=V/R*[(exp(alfa*T*R/L)-1)/(exp(T*R/L)-1)];//A\n", +"disp(Imax,'Maximum current(A)');\n", +"disp(Imin,'Minimum current(A)');\n", +"Vavg=alfa*V;//V\n", +"disp(Vavg,'Average load voltage(V)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.13: Find_series_inductance.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_13\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=500;//V\n", +"I=10;//A\n", +"f=400;//Hz\n", +"\n", +"//Solution :\n", +"alfa=0.5;//for maximum swing\n", +"//I=V/(4*f*L);//A\n", +"L=V/(4*f*I);//H\n", +"disp(L,'Series inductance(H)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.14: Motor_speed_and_current_swing.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"////Example 4_14\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=800;//V\n", +"P=300;//HP\n", +"Eff=0.9;//Efficiency\n", +"R=0.1;//ohm\n", +"L=100/1000;//H\n", +"alfa=0.2;//duty cycle\n", +"N=900;//rpm\n", +"f=400;//Hz\n", +"\n", +"//Solution :\n", +"Pout=P*735.5/1000;//kW\n", +"Pin=Pout/Eff;//kW\n", +"I=Pin*1000/V;//A\n", +"E=V-I*R;//V(at rated voltage)\n", +"Edash=V*alfa-I*R;//V(at 0.2 duty cycle)\n", +"Ndash=N*Edash/E;//rpm\n", +"disp(Ndash,'Motor speed(rpm)');\n", +"T=1/f;//s\n", +"d_ia=(V-alfa*V)/L*alfa*T;//A\n", +"disp(d_ia,'Current swing(A)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.17: Find_the_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"////Example 4_17\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=200;//V\n", +"R=2;//ohm\n", +"L=10/1000;//H\n", +"E=20;//V\n", +"T=1000/10^6;//s\n", +"Ton=300/10^6;//s\n", +"\n", +"//Solution :\n", +"f=1/T;//Hz\n", +"alfa_min=1/(R*T/L)*log(1+E/V*(exp(R*T/L)-1));//duty cycle\n", +"alfa=Ton/T;//duty cycle\n", +"disp(alfa_min,'Minimum value required of alfa');\n", +"disp(alfa,'Actual value of alfa');\n", +"disp('Load current is continuous as alfa_actual>alfa_min')\n", +"Imax=V/R*[(1-exp(-alfa*T*R/L))/(1-exp(-T*R/L))]-E/R;//A\n", +"Imin=V/R*[(exp(alfa*T*R/L)-1)/(exp(T*R/L)-1)]-E/R;//A\n", +"disp(Imax,'Maximum current(A)');\n", +"disp(Imin,'Minimum current(A)');\n", +"Iavg=(alfa*V-E)/R;//A\n", +"disp(Iavg,'Average load current(A)');\n", +"Iavg_in=alfa*(V-E)/R-L/R/T*(Imax-Imin);//A\n", +"disp(Iavg_in,'Average input current(A)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.18: RMS_value_of_load_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"////Example 4_18\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=200;//V\n", +"T=1000/10^6;//s\n", +"Ton=300/10^6;//s\n", +"R=4;//ohm\n", +"L=10/1000;//H\n", +"\n", +"//Solution :\n", +"f=1/T;//Hz\n", +"Vrms1=sqrt((200/%pi*sin(2*%pi*0.3))^2+(200/%pi*((1-cos(2*%pi*0.3))))^2)/sqrt(2);//V\n", +"Vrms2=sqrt((200/2/%pi*sin(2*%pi*2*0.3))^2+(200/2/%pi*((1-cos(2*%pi*2*0.3))))^2)/sqrt(2);//V\n", +"Vrms3=sqrt((200/3/%pi*sin(2*%pi*3*0.3))^2+(200/3/%pi*((1-cos(2*%pi*3*0.3))))^2)/sqrt(2);//V\n", +"Z1=R+%i*(2*%pi*f*L);//ohm\n", +"I1=Vrms1/abs(Z1);//A\n", +"disp(I1,'RMS value of 1st harmonic of load current(A)');\n", +"Z2=R+%i*(2*2*%pi*f*L);//ohm\n", +"I2=Vrms2/abs(Z2);//A\n", +"disp(I2,'RMS value of 2nd harmonic of load current(A)');\n", +"Z3=R+%i*(3*2*%pi*f*L);//ohm\n", +"I3=Vrms3/abs(Z3);//A\n", +"disp(I3,'RMS value of 3rd harmonic of load current(A)');\n", +"Iavg=V/R*Ton/T;//A\n", +"Irms=sqrt(Iavg^2+I1^2+I2^2+I3^2);//A\n", +"disp(Irms,'RMS value of load current(A)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.19: Period_of_conduction.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_19\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=200;//V\n", +"Vav=250;//V\n", +"Toff=0.6*10^-3;//s\n", +"\n", +"//Solution :\n", +"T=Vav/V*Toff;//s\n", +"Ton=T-Toff;//s\n", +"disp(Ton,'Period of conduction(seconds)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.1: Period_of_conduction_and_blocking.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_1\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=230;//V\n", +"Vav=150;//V\n", +"f=1*1000;//Hz\n", +"\n", +"//Solution :\n", +"T=1/f;//s\n", +"Ton=Vav*T/V;//s\n", +"Toff=T-Ton;//s\n", +"disp(Toff,Ton,'Periods of conduction & blocking(seconds)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.20: Period_of_conduction.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_20\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=150;//V\n", +"Vav=250;//V\n", +"Toff=1*10^-3;//s\n", +"\n", +"//Solution :\n", +"T=Vav/V*Toff;//s\n", +"Ton=T-Toff;//s\n", +"disp(Ton,'Period of conduction(seconds)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.2: Periods_of_conduction_and_blocking.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_2\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Ra=0.06;//ohm\n", +"Rf=0.03;//ohm\n", +"Iav=15;//A\n", +"f=500;//Hz\n", +"Eb=100;//V\n", +"V=200;//V\n", +"\n", +"//Solution :\n", +"Vav=Iav*(Ra+Rf)+Eb;//V\n", +"T=1/f;//s\n", +"Ton=Vav*T/V;//s\n", +"Toff=T-Ton;//s\n", +"disp(Toff,Ton,'Periods of conduction & blocking(seconds)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.3: Find_duty_cycle.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_3\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"N=800;//rpm\n", +"I=20;//A\n", +"Ra=0.5;//ohm\n", +"Vs=240;//V\n", +"Ndash=600;//rpm\n", +"\n", +"//Solution :\n", +"Eb_800=Vs-I*Ra;//V\n", +"Eb_600=Eb_800*Ndash/N;//V\n", +"Vav=I*Ra+Eb_600;//V\n", +"alfa=Vav/Vs;//duty cycle\n", +"disp(alfa,'(a) Duty cycle');\n", +"//Torque reduced to half will reduce I to half\n", +"I=I/2;//A\n", +"Vav=I*Ra+Eb_600;//V\n", +"alfa=Vav/Vs;//duty cycle\n", +"disp(alfa,'(b) Duty cycle');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.4: Voltage_Efficiency_and_resistance.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_4\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=200;//V\n", +"RL=8;//ohm\n", +"Vthy=2;//V\n", +"f=800;//Hz\n", +"alfa=0.4;//duty cycle\n", +"\n", +"//Solution :\n", +"Vav=alfa*(V-Vthy);//V\n", +"disp(Vav,'(a) Average output voltage(V)');\n", +"VL=sqrt(alfa)*(V-Vthy);//V\n", +"disp(VL,'(b) RMS output voltage(V)');\n", +"Pout=VL^2/RL;//W\n", +"Pin=alfa*V*(V-Vthy)/RL;//W\n", +"Eff=Pout/Pin*100;//%\n", +"disp(Eff,'(c) Chopper efficiency(%)');\n", +"Rin=RL/alfa;//ohm\n", +"disp(Rin,'(d) Input resistance(ohm)');\n", +"V1=(V-Vthy)*sqrt(2)/%pi;//V\n", +"disp(V1,'(e) RMS value of fundamental component(V)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.5: Chopping_frequency.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_5\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=400;//V\n", +"R=0;//ohm\n", +"L=0.05;//H\n", +"alfa=0.25;//duty cycle\n", +"delta_i=10;//A\n", +"\n", +"//Solution :\n", +"Vav=alfa*V;//V\n", +"delta_T=L*delta_i/(V-Vav);//s\n", +"Ton=delta_T;///s\n", +"T=Ton/alfa;//s\n", +"f=1/T;//pulses/s\n", +"disp(f,'Chopping frequency(pulses/s)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.6: Find_the_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_6\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"R=4;//ohm\n", +"L=6/1000;//H\n", +"V=200;//V\n", +"alfa=0.5;//duty cycle\n", +"f=1000;//Hz\n", +"\n", +"//Solution :\n", +"T=1/f;//s\n", +"E=0;//V\n", +"Imax=V/R*[(1-exp(-alfa*T*R/L))/(1-exp(-T*R/L))]-E/R;//A\n", +"Imin=V/R*[(exp(alfa*T*R/L)-1)/(exp(T*R/L)-1)]-E/R;//A\n", +"disp(Imax,'Maximum current(A)');\n", +"disp(Imin,'Minimum current(A)');\n", +"Iavg=(Imax+Imin)/2;//A\n", +"disp(Iavg,'Average load current(A)');\n", +"IL=sqrt(1/alfa/T*integrate('(Imin+(Imax-Imin)*t/alfa/T)^2','t',0,alfa*T));//A\n", +"disp(IL,'RMS load current(A)');\n", +"Iavg_in=alfa*Iavg;//A\n", +"disp(Iavg_in,'Average input current(A)');\n", +"Irms_in=sqrt(1/T*integrate('(Imin+(Imax-Imin)*t/alfa/T)^2','t',0,alfa*T));//A\n", +"disp(Irms_in,'RMS input current(A)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.7: Find_load_inductance.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_7\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=300;//V\n", +"R=4;//ohm\n", +"f=250;//Hz\n", +"ripple=20;//%\n", +"Iavg=30;//A\n", +"\n", +"//Solution :\n", +"T=1/f;//s\n", +"E=0;//V\n", +"Imax_sub_Imin=ripple/100*Iavg;//A\n", +"L=V/Imax_sub_Imin/R/f;//H\n", +"disp(L,'Load Inductance(H)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.8: Find_the_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_8\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"Ra=0.5;//ohm\n", +"L=16/1000;//H\n", +"V=200;//V\n", +"E=100;//V\n", +"Imin=10;//A\n", +"t_off=2/1000;//s\n", +"\n", +"//Solution :\n", +"i=(V-E)/Ra*[1-exp(-Ra*t_off/L)]+Imin*exp(-Ra*t_off/L);//A\n", +"disp(i,'Current at instant of turn off(A)');\n", +"t=5/1000;//s\n", +"i_dash=i*exp(-Ra*t/L);//A\n", +"disp(i_dash,'Current 5 ms after turn off(A)');\n", +"//Answer is wrong in the book." + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 4.9: Speed_of_motor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 4_9\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=220;//V\n", +"N_NoLoad=1000;//rpm\n", +"alfa=0.6;//duty cycle\n", +"I=20;//A\n", +"Ra=1;//ohm\n", +"\n", +"//Solution :\n", +"Eb1=V;//V////at no load\n", +"Vin=alfa*V;//V\n", +"Eb2=Vin-I*Ra;//V\n", +"N=N_NoLoad*Eb2/Eb1;//rpm\n", +"disp(N,'Speed of the motor(rpm)');" + ] + } +], +"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 +} diff --git a/Introduction_to_Electric_Drives_by_V_Singhal/6-Control_of_DC_drives.ipynb b/Introduction_to_Electric_Drives_by_V_Singhal/6-Control_of_DC_drives.ipynb new file mode 100644 index 0000000..99d2bf5 --- /dev/null +++ b/Introduction_to_Electric_Drives_by_V_Singhal/6-Control_of_DC_drives.ipynb @@ -0,0 +1,161 @@ +{ +"cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Chapter 6: Control of DC drives" + ] + }, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.1: Proper_size_of_motor.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6_1\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"hp=[50 100 150 120 0];//hp\n", +"t=[20 20 10 20 15];//seconds\n", +"\n", +"//Solution :\n", +"hp_rms_t=0;//initializing\n", +"for i=1:5\n", +" hp_rms_t=hp_rms_t+(hp(i)^2*t(i));//hp\n", +"end\n", +"hp_rms=sqrt(hp_rms_t/sum(t));//hp\n", +"disp(hp_rms,'Required hp(rms)');\n", +"disp('Motor size should be 100 hp');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.2: Thermal_time_constant_and_temperature_rise.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6_2\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"P=30;//kW\n", +"theta1=30;//degree C\n", +"t1=40;//minutes\n", +"theta2=45;//degree C\n", +"t2=80;//minutes\n", +"t2=2*t1;//minutes\n", +"Loss_fl=2;//kW\n", +"Loss_Cu=2.5;//kW\n", +"\n", +"//Solution :\n", +"//theta1=theta_f*(1-exp(-t1/T));\n", +"//let exp(-t1/T)=a\n", +"a=poly(0,'a');\n", +"polynomial=(1-a^2)*(theta1/theta2)-1+a;\n", +"a=roots(polynomial)\n", +"a=a(2);\n", +"T=-t1/log(a);//s\n", +"disp(T,'Thermal time constant(minutes)');\n", +"theta_f=theta1/(1-exp(-t1/T));\n", +"disp(theta_f,'Final temperature rise(degree C)');\n", +"alfa=Loss_fl/Loss_Cu;\n", +"t=20;//minutes\n", +"rating=P*sqrt((1+alfa)/(1-exp(-t/T))-alfa);//kW\n", +"disp(rating,'20 minute rating of motor(kW)');" + ] + } +, +{ + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example 6.3: Field_current.sce" + ] + }, + { +"cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true + }, + "outputs": [], +"source": [ +"//Example 6_3\n", +"clc;\n", +"clear;close;\n", +"\n", +"//Given data: \n", +"V=230;//V\n", +"f=50;//Hz\n", +"alfa=0;//degree\n", +"Rf=200;//ohm\n", +"Ra=0.3;//ohm\n", +"T=50;//N-m\n", +"N=900;//rpm\n", +"Kv=0.8;//V/A-rad/s\n", +"Kt=0.8;//N-m/A^2\n", +"\n", +"//Solution :\n", +"Vm=V*sqrt(2);//V\n", +"Vf=2*Vm/%pi;//V\n", +"If=Vf/Rf;//A\n", +"disp(If,'Field current(A)');\n", +"Ia=T/(Kt*If);//A\n", +"omega=(2*%pi/60)*N;//radian/s\n", +"Eb=Kv*omega*If;//V\n", +"Va=Eb+Ia*Ra;//V\n", +"alfa_a=acosd(Va/(Vm/%pi)-1);//degree\n", +"disp(alfa_a,'Firing angle of armture circuit(degree)');\n", +"Pout=Va*Ia;//W\n", +"I_in=sqrt(2/(2*%pi)*integrate('Ia^2','t',alfa_a*%pi/180,%pi));//A\n", +"VA_in=V*I_in;//VA\n", +"pf_in=Pout/VA_in;//lagging\n", +"disp(pf_in,'Input power factor(lagging)');" + ] + } +], +"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 +} -- cgit