This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Step response of lab10a vs. lab 11

Other Parts Discussed in Thread: MOTORWARE, LAUNCHXL-F28027F

I was just doing some more testing of the motorware software and came across something I don't fully understand.  When running my motor with a load (propeller) and I command a reasonably large step change lab11 will sometimes fail, but lab10a works fine.  By failure I mean the motor makes a horrible squealing noise then the driver faults.

For example, stepping from 2400rpm to 3750rpm will more often than not cause a fault in lab11.  In this case I am powering the board with a bench supply with the current limiter set at 20A and about 130,000uF of extra bulk capacitance.  If I switch over to using a battery with no extra capacitance it works 100% of the time but failures still occur with larger step sizes.  When a failure does occur I can observe a very ugly voltage transient on the supply rail.  

Doing the same testing with lab10a the failure never occurs, even when commanding changes from very low speed to full speed.  The transients measured on the supply rail are MUCH less extreme than the fault case of lab11.  I plotted the RPM (measured externally) vs time for both labs and found the response to be identical.  In my application it is critical to have rapid response to changes in commanded speed.

I know that lab11 is missing the trajectory controller.  In lab10 I have MaxAccel_krpmps set to 32.  Is the lack of the trajectory control the root of the problem in lab 11, or is there some other factor?  Maybe something like slew rate control on the current loops?

  • Do you get similar voltage transient on the supply rail on both labs? Is it possible to get some scope plots of the supply rail?
  • The voltage transient is different.  Attached is a plot of a transient during a fault.

    The thicker portion that starts halfway through the first division I see in all cases.  The really ugly stuff that starts around the 4th division I don't see when there is no fault.  At around 7.5 is I think where it gives up (undervoltage fault) and the motor coasts to a stop.  In this case this is AC coupled 5v/div

    I also confirmed this problem is not present in lab11a.  

  • What is the rated value? 15V? please share your user.h, and please confirm this issue is NOT present in lab 11a.

    -Jorge
  • Nominal voltage is 15v, but I am using the LAUNCHXL-F28027F+BOOSTXL-DRV8305 setup.  The problem is NOT present in lab11a.

    0131.user.h

  • I think this is related to overmodulation issues. lab 11 does not have any of the overmodulation changes, as 11a does. Try the attached document, where I got 11 and added overmodulation changes.

    proj_lab11_ovm.c
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    // --COPYRIGHT--,BSD
    // Copyright (c) 2015, Texas Instruments Incorporated
    // All rights reserved.
    //
    // Redistribution and use in source and binary forms, with or without
    // modification, are permitted provided that the following conditions
    // are met:
    //
    // * Redistributions of source code must retain the above copyright
    // notice, this list of conditions and the following disclaimer.
    //
    // * Redistributions in binary form must reproduce the above copyright
    // notice, this list of conditions and the following disclaimer in the
    // documentation and/or other materials provided with the distribution.
    //
    // * Neither the name of Texas Instruments Incorporated nor the names of
    // its contributors may be used to endorse or promote products derived
    // from this software without specific prior written permission.
    //
    // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
    // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
    // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
    // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
    // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
    // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
    // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
    // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
    // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
    // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
    // EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
    // --/COPYRIGHT
    //! \file solutions/instaspin_foc/src/proj_lab011.c
    //! \brief Adjusting the speed current controller
    //!
    //! (C) Copyright 2015, Texas Instruments, Inc.
    //! \defgroup PROJ_LAB11 PROJ_LAB11
    //@{
    //! \defgroup PROJ_LAB11_OVERVIEW Project Overview
    //!
    //! Basic implementation of FOC by using the estimator for angle and speed
    //! feedback only
    //!
    // **************************************************************************
    // the includes
    // system includes
    #include <math.h>
    #include "main.h"
    #ifdef FLASH
    #pragma CODE_SECTION(mainISR,"ramfuncs");
    #endif
    // Include header files used in the main function
    // **************************************************************************
    // the defines
    // **************************************************************************
    // the globals
    CLARKE_Handle clarkeHandle_I; //!< the handle for the current Clarke
    //!< transform
    CLARKE_Obj clarke_I; //!< the current Clarke transform object
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    You also need to add this module to your lab 11 project:

    -Jorge

  • Your message didn't come through quite right, but I'm guessing you were meaning I needed to add svgen_current.c. I added your changes to my main file and all seems well now. I'll try later on a battery as well, but it works with the bench supply which it never did before.

    Thanks