Connect with us

A three phase H-bridge

Discussion in 'General Electronics Discussion' started by Konstantin Metodiev, Jul 17, 2015.

Scroll to continue with content
  1. Konstantin Metodiev

    Konstantin Metodiev

    3
    0
    Jul 17, 2015
    Hello! I am newbie in electronics which is why probably, I am going to ask a simple question. I am trying to design an H-bridge to drive a three phase brushless DC motor within Proteus environment. The circuit is shown in the attached image. The microcontroller is PIC18F2550 and the driver is IR2101.
    Both the ucontroller and the driver do whatever they are expected. The MCU switches two pins of PORTB in a row according to the attached source code. The IR2101 in turn amplifies the signal within 0...12V DC. The MOSFETs' gates are switched ON and OFF accordingly so that each time two phases are connected obeying the current commutation step:
    1) Phase U -> Phase W
    2) Phase U -> Phase V
    3) Phase W -> Phase V
    4) Phase W -> Phase U
    5) Phase V- > Phase U
    6) Phase V -> Phase W
    The Hall sensor isn't considered here.
    Needless to say, the simulation stops after few sconds. Each phase suffers from severe ripples which are visible in the oscilloscope windows. Please note, the ripples appear if the current phase is not connected by the MOSFETs. For instance, whenever Phase U and Phase W are connected (step 1) the Phase V voltage oscillates significantly.
    I can't deal with that issue. Could anybody help me?
    Thank you in advance!


    void InitMain(void) {

    CMCON = 0x07; // Disables comparators
    ADCON1 = 0x0F; // All digital

    TRISB.F0 = 0; // Sets up an output
    TRISB.F1 = 0; // Sets up an output
    TRISB.F2 = 0; // Sets up an output
    TRISB.F3 = 0; // Sets up an output
    TRISB.F4 = 0; // Sets up an output
    TRISB.F5 = 0; // Sets up an output

    return;
    }

    const unsigned char delay = 100;

    void main() {

    InitMain();

    PORTB = 0b00000000;

    while(1) {
    /* UH UL VH VL WH WL */
    PORTB.F0 = 1; PORTB.F1 = 0; PORTB.F2 = 0; PORTB.F3 = 0; PORTB.F4 = 0; PORTB.F5 = 1; Delay_ms(delay);
    PORTB.F0 = 1; PORTB.F1 = 0; PORTB.F2 = 0; PORTB.F3 = 1; PORTB.F4 = 0; PORTB.F5 = 0; Delay_ms(delay);
    PORTB.F0 = 0; PORTB.F1 = 0; PORTB.F2 = 0; PORTB.F3 = 1; PORTB.F4 = 1; PORTB.F5 = 0; Delay_ms(delay);
    PORTB.F0 = 0; PORTB.F1 = 1; PORTB.F2 = 0; PORTB.F3 = 0; PORTB.F4 = 1; PORTB.F5 = 0; Delay_ms(delay);
    PORTB.F0 = 0; PORTB.F1 = 1; PORTB.F2 = 1; PORTB.F3 = 0; PORTB.F4 = 0; PORTB.F5 = 0; Delay_ms(delay);
    PORTB.F0 = 0; PORTB.F1 = 0; PORTB.F2 = 1; PORTB.F3 = 0; PORTB.F4 = 0; PORTB.F5 = 1; Delay_ms(delay);
    }//while

    return;
    }

    circuit3.png
     
  2. Arouse1973

    Arouse1973 Adam

    5,165
    1,087
    Dec 18, 2013
    Hello
    Why have you not followed the data sheet for the drivers? You drive two N-Channel MOSFETs straight from the drivers and not through BJTs.
    Adam
     
  3. Konstantin Metodiev

    Konstantin Metodiev

    3
    0
    Jul 17, 2015
    Thkns for the advice. I'll try it.
     
  4. Arouse1973

    Arouse1973 Adam

    5,165
    1,087
    Dec 18, 2013
    Was there a reason you did it that way?
    Adam
     
  5. Konstantin Metodiev

    Konstantin Metodiev

    3
    0
    Jul 17, 2015
    Now I understand that there is an error in the circuit. The bipolar transistors act like switches. They switch the gate ON and OFF thus let the current flow through the drain. For instance, if the NPN transistor at UH is OFF (no signal to the base) the gate voltage is HIGH and the p-channel MOSFET is OFF. The PNP transistors at the lower half of the schematics do the same following an opposite logic.
    Another inportant reason to use the bipolar transistors is protecting the microcontroller ports. The MOSFETS are supplied with 12V DC which is too high for the chip.
    Here is the redundancy. The IR2101 does exactly the same thing. The IR2101 appear to be an interface between the ucontroller and the MOSFETS. I removed the bipolar transistors yet the situation didn't get better. The ripples persist.
    Thank you for your interest in the project!
    Konstantin
     
  6. Arouse1973

    Arouse1973 Adam

    5,165
    1,087
    Dec 18, 2013
    The MOSFET drivers are the interface to the micro. You don't need the BJTs if you drive the circuit how the data sheet tells you. How much delay do you have in your software between turning one MOSFET on and the other off?

    Edit: I am pretty sure the waveforms are showing shoot through which is why I asked what delay you had in your software.

    Adam
     
    Last edited: Jul 18, 2015
Ask a Question
Want to reply to this thread or ask your own question?
You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.
Electronics Point Logo
Continue to site
Quote of the day

-