5.1 Conclusion
This thesis has presented the design of the Buck Converter and its implementation in the power converter Unit. The buck converter was designed to operate with the input range of 32-64V DC. A load range of 3-14 was selected that would result in a power output range of 10-50W. The control of the buck converter is carried out by the by the flexible controller integrated platform developed in the SPEED laboratory. A user end interface to the FCIV controller using visual basic programming was designed. A complete model comprising of a rectifier, buck converter and inverter was created using the Portunus simulation software.
Due to equipment limitation and the prototype nature of the buck converter the efficiency 67% was obtained.
Fig. 5.1 Efficiency Verses Speed of Generator
Fig 5.1 illustrates the efficiencies obtained at different speeds. This is due to the losses due to Resistance of the switch, Diode forward voltage drop, Inductor winding resistance, Capacitor equivalent resistance.
56 When the Buck Converter is operated in closed loop, the losses are not considered as it does not affect the buck converter output as the control loop compensates for the voltage drop by increasing the duty cycle.
57
REFERENCE
[1] Donald Schelle and Jorge Castorena. Maxim Integrated Products. Retrieved from Maxim Integrated Products website:
http://powerelectronics.com/power_systems/dc_dc_converters/power_buckconverter_
design_demystif
[2] AWG to Metric Conversion table . Retrieved from Engineering ToolBox website:
http://www.engineeringtoolbox.com/awg-wire-gauge-d_731.html
[3] The practical design of a buck converter by Johor Bahru. Retrieved from IEEE Website: http://ewh.ieee.org/r10/malaysia/ie_ia_pel/pecon2008/akhtar_tutorial.pdf [4] Bennett, J. C. (2006). Practical computer analysis of switch mode power supplies.
CRC Press.
[5] Buck Conver Basics. Retrieved from eCircuit Center website:
www.ecircuitcenter.com/Circuits/smps_buck/smps_buck.html [6] Unitode Magnetics Design Handbook .
[7] 600 Watt Pure Sine Wave Inverter. Retrieved from http://www.donrowe.com/inverters/puresine 600.html
[8] Portunus Information. Retrieved from Cedrat Groupe Website:
http://www.cedrat.com/en/software-software-solutions/portunus.html
[9] Introduction to power supplies . Retrieved from National Semiconductor website:
http://www.national.com/an/AN/AN-556.pdf
[10] Lee, Yim. (1993). Computer-aided analysis and design of switch mode power supplies. CRC Press.
[11] Mohan,Undeland and Robbins. (2007). Power electronics: converters, applications and design. Wiley India.
[12] Raymond A. Mack, J. (2005). Demystifying Switching Power Supplies . Newnes.
[13] Operation Of A 3-Phase Fully-Controlled Rectifier. Retrieved from university of Sydney website: http://services.eng.uts.edu.au/~venkat/pe_html/ch05s1/ch05s1p1.htm [14] Step down: SMPS Buck Converter Ideal Circuit. Retrieved from university of Sydney website: http://services.eng.uts.edu.au/~venkat/pe_html/ch07s1/ch07s1p1.htm#intro
58 [15] Robert Warren Erickson, D. M. (2001). Fundamentals of Power Electronics.
Springer.
[16] ETD39 Datasheet. Retrieved from Fexxocube website:
http://www.ferroxcube.com/prod/assets/etd39.pdf [17] ETD44 Datasheet. Retrieved from Fexxocube website:
http://www.ferroxcube.com/prod/assets/etd44.pdf [18] ETD34 Datasheet. Retrieved from Fexxocube website:
http://www.ferroxcube.com/prod/assets/etd34.pdf [19] ETD29 Datasheet. Retrieved from Fexxocube website:
http://www.ferroxcube.com/prod/assets/etd29.pdf
[20] Feucht, D. L. (n.d.). Practical Design of a Buck Converter. AnalogZONE .
[21] Understanding variable output characteristics of wind Power. Retrieved from wind energy the facts.org website:
http://www.wind-energy-the-facts.org/_includes/print.php?lg=en&cmp_id=48&safe_mode= 8/13/2009
59 APPENDIX A
60 APPENDIX B
61 APPENDIX C
Public Class Simulation_Form Dim bytLength As Byte
Dim bytPackage11(10) As Byte, bytPackage8(7) As Byte Dim bytEcho11(10) As Byte, bytEcho8(7) As Byte
Dim vntwarning As Object
Dim blnComunication As Boolean Dim bytStatusInfo As Byte
'Sequence to carry out Serial Communications via RS232 Port
'---
Public Sub Comunication(ByVal bytLength As Byte, ByRef bytPackage() As Byte)
Dim intCount As Integer ' Used to count read/write buffers through TX/RX arrays
Dim varWarning As VariantType ' Used to Launch Error Warnings
Dim intVerify As Integer ' Used to wait check message is recieved.
Dim intError As Integer ' Used to timeout the waiting for a message to be recieved
intError = 0
62 ' Write bytPackage to the output buffer of the serial port
Do Until intVerify = intCount ' if recieve operation times out then throw an exception
End If
Threading.Thread.Sleep(1) ' delay a millisecond per loop (500ms delay total)
Loop ' Close the programme if the communications fail
End Try Try
' MSComm1.Read(bytRecieve, 0, intCount) ' Read the serial port input buffer and store in bytReceive
Catch readException As System.TimeoutException ' If the read operation times out show warning
varWarning = MsgBox("The Interface has not recieved data "
& _
"from FCIV, check serial connection", _
63
Private Sub btn_configure_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_configure.Click
Call Comunication(bytLength, bytPackage11) If intFF = 1 Then
64
Private Sub btn_stop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Label11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub GroupBox4_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox4.Enter
End Sub
65
Private Sub txt_gen_voltage_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
txt_gen_voltage.TextChanged End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
rdbCloseLoop.CheckedChanged
If rdbCloseLoop.Checked = True Then txtDutyCycle.Enabled = False
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
rdbOpenLoop.CheckedChanged
If rdbOpenLoop.Checked = True Then txtDutyCycle.Enabled = True txtKP.Enabled = False
txtKI.Enabled = False
txtRefVoltage.Enabled = False intBM = 1 'open loop
End Sub
Private Sub Label10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label10.Click
End Sub
Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter
End Sub
Private Sub Label11_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label11.Click
End Sub
Private Sub btn_run_stop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_run.Click
66 Call Comunication(bytLength, bytPackage11) 'Package to send Mod Index Command
bytLength = 11
Call BuildPackage(bytLength, 18, 102, 0, _ CByte(intMI), 0)
Call Comunication(bytLength, bytPackage11) 'Package to send Duty Cycle Command
bytLength = 11
Call BuildPackage(bytLength, 18, 104, 0, _
CByte(Fix(intDC / 256)), CByte(intDC Mod 256)) Call Comunication(bytLength, bytPackage11)
67
Call Comunication(bytLength, bytPackage11) 'Package to send Kp Command
bytLength = 11
Call BuildPackage(bytLength, 18, 106, 0, _
CByte(Fix(intKp / 256)), CByte(intKp Mod 256)) Call Comunication(bytLength, bytPackage11)
'Package to send Ki Command bytLength = 11
Call BuildPackage(bytLength, 18, 107, 0, _
CByte(Fix(intKi / 256)), CByte(intKi Mod 256)) Call Comunication(bytLength, bytPackage11)
End Sub
Public Sub BuildPackage(ByVal intLength As Integer, ByVal bytCmd As Byte, ByVal bytFunc1 As Byte, ByVal bytFunc2 As Byte, _
ByVal bytMsb As Byte, ByVal bytLsb As Byte)
68
Call Comunication(bytLength, bytPackage11) End Sub
Call Comunication(bytLength, bytPackage11) End Sub
Private Sub txtDC_Change() intDCF = 1
txtDutyCycle.ForeColor = Color.FromArgb(192, 0, 0) End Sub
69
txtModulationIndex.ForeColor = Color.FromArgb(192, 0, 0) End Sub
Private Sub txtVref_Change() intVF = 1
txtRefVoltage.ForeColor = Color.FromArgb(192, 0, 0) End Sub
Private Function ValidateForm() As Boolean If (rdbCloseLoop.Checked = True) Then
70
Private Sub btn_run_EnabledChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_run.EnabledChanged
End Sub
Private Sub txtFrequency_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtFrequency.TextChanged
intFF = 1 End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
71
End Sub
Private Sub txtDutyCycle_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDutyCycle.TextChanged
Private Sub txtRefVoltage_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
txtRefVoltage.TextChanged intVF = 1
End Sub
Private Sub txtKI_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtKI.TextChanged
intKiF = 1 End Sub
Private Sub txtKP_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtKP.TextChanged
intKpF = 1 End Sub
Private Sub Simulation_Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
intRun = 0 End Sub
Private Sub txtModulationIndex_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
txtModulationIndex.TextChanged intMIF = 1
End Sub End Class
72 APPENDIX D