Contenido principal

mcb.updateInverterParameters

Update inverter parameters for selected hardware and motor

    Description

    inverter = mcb.updateInverterParameters(motor,inverter,target) updates inverter parameters inverter for the specified inverter, motor, and target processor.

    The function updates the following fields of the inverter structure:

    • ADCGain — ADC gain factor scaled by SPI

    • ISenseVoltPerAmp — Current sensor voltage output per ampere of current (in V/A)

    • ISenseMax — Maximum peak-neutral current that can be measured by current sensor (in amperes)

    • SPI_Gain_Setting — SPI hex value encoding op-amp gain

    example

    Examples

    collapse all

    Get parameters for your motor and inverter. This example uses a BLY171D PMSM and BoostXL-DRV8305 inverter.

    pmsm = mcb.getPMSMParameters("BLY171D");
    inverter = mcb.getInverterParameters("BoostXL-DRV8305")
    inverter = 
    
      struct with fields:
    
                   model: 'BoostXL-DRV8305'
                      sn: 'INV_XXXX'
                    V_dc: 24
                  I_trip: 10
                  Rds_on: 0.0020
                  Rshunt: 0.0070
           CtSensAOffset: 2295
           CtSensBOffset: 2286
           CtSensCOffset: 2295
                 ADCGain: 1
             EnableLogic: 1
            invertingAmp: 1
              ISenseVref: 3.3000
        ISenseVoltPerAmp: 0.0700
               ISenseMax: 23.5714
                 R_board: 0.0043
         CtSensOffsetMax: 2500
         CtSensOffsetMin: 1500

    Populate a target processor structure with an ADC reference voltage.

    target.ADC_Vref = 3.3000;

    Update inverter parameters.

    mcb.updateInverterParameters(pmsm,inverter,target)
    ans = 
    
      struct with fields:
    
                   model: 'BoostXL-DRV8305'
                      sn: 'INV_XXXX'
                    V_dc: 24
                  I_trip: 10
                  Rds_on: 0.0020
                  Rshunt: 0.0070
           CtSensAOffset: 2295
           CtSensBOffset: 2286
           CtSensCOffset: 2295
                 ADCGain: 4
             EnableLogic: 1
            invertingAmp: 1
              ISenseVref: 3.3000
        ISenseVoltPerAmp: 0.2800
               ISenseMax: 5.8929
                 R_board: 0.0043
         CtSensOffsetMax: 2500
         CtSensOffsetMin: 1500
        SPI_Gain_Setting: 20522

    The ADCGain, ISenseVoltPerAmp, ISenseMax, and SPI_Gain_Setting fields have been updated to reflect the target hardware and motor.

    Input Arguments

    collapse all

    Motor parameters, specified as a struct.

    Specify lumped linear parameters with the following required fields:

    • Ldd-axis stator winding inductance (in henries), specified as a double

    • Lqq-axis stator winding inductance (in henries), specified as a double

    • FluxPM — Permanent magnet flux (in webers), specified as a double

    • p — Number of pole pairs, specified as an integer

    • Rs — Stator resistance (in ohms), specified as a double

    You can create a structure with lumped linear parameters using mcb.getPMSMParameters or mcb.getACIMParameters.

    Alternatively, for PMSM topologies, specify non-linear lookup table data with the following required fields:

    • PMSMLUT.idvecd-axis current breakpoints (in amperes) of lookup tables, specified as a vector

    • PMSMLUT.iqvecq-axis current breakpoints (in amperes) of lookup tables, specified as a vector

    • PMSMLUT.LdTabled-axis inductance (in henries) lookup table, specified as matrix

    • PMSMLUT.LqTableq-axis inductance (in henries) lookup table, specified as a matrix

    • PMSMLUT.FluxPMTable — Permanent magnet flux linkage (in webers) lookup table, specified as a matrix

    or the following required fields:

    • PMSMLUT.idvecd-axis current breakpoints (in amperes) of lookup tables, specified as a vector

    • PMSMLUT.iqvecq-axis current breakpoints (in amperes) of lookup tables, specified as a vector

    • PMSMLUT.FluxDTabled-axis flux linkage lookup table, specified as a matrix

    • PMSMLUT.FluxQTableq-axis flux linkage lookup table, specified as a matrix

    The structure can also contain the following optional field:

    • motorType — Type of motor, specified as one of the following:

      • 'ipmsm' — Interior PMSM

      • 'spmsm' — Surface PMSM

      • 'synrm' — SynRM

      • 'pmasynrm' — PMa-SynRM

      • 'acim' — ACIM

    If you do not specify the motorType field, the function assumes an interior PMSM.

    Data Types: struct

    Inverter parameters, specified as a struct. You can create this structure using mcb.getInverterParameters. Specify the structure with the following required field:

    • V_dc — DC voltage

    The structure can also contain the following optional fields:

    • model — Manufacturer's model number, specified as a character vector

    • sn — Manufacturer's serial number, specified as a character vector

    • I_trip — Maximum permissible inverter current (in amperes), specified as a scalar

    • Rds_on — On-state resistance of MOSFETs (in ohms), specified as a scalar

    • Rshunt — Shunt resistance for current sensing (in ohms), specified as a scalar

    • R_board — Per-phase board resistance seen by motor (in ohms), specified as a scalar

    • CtSensAOffset — ADC offset for phase A, specified as a scalar

    • CtSensBOffset — ADC offset for phase B, specified as a scalar

    • CtSensCOffset — ADC offset for phase C, specified as a scalar

    • CtSensOffsetMax — Maximum limit of automatically calibrated ADC offsets for current sensor, specified as a scalar

    • CtSensOffsetMin — Minimum limit of automatically calibrated ADC offsets for current sensor, specified as a scalar

    • ADCGain — ADC gain factor scaled by SPI, specified as a scalar

    • EnableLogic — Type of inverter, specified as one of the following:

      • 1 — Active-high enabled inverter

      • 0 — Active-low enabled inverter

    • invertingAmp — Convention for current entering motor, specified as one of the following:

      • 1 — Current entering motor sensed as positive by current sense amplifier

      • –1 — Current entering motor sensed as negative by current sense amplifier

    • ISenseVref — Reference voltage of current sensor circuit (in volts), specified as a scalar

    • ISenseVoltPerAmp — Current sensor voltage output per ampere of current (in V/A), specified as a scalar

    • ISenseMax — Maximum peak-neutral current that can be measured by current sensor (in amperes), specified as a scalar

    The following optional fields are not in the structure you create with mcb.getInverterParameters:

    • ADCOffsetCalibEnable — Auto-calibration setting for current sense ADCs, specified as one of the following:

      • 1 — Enable auto-calibration

      • 0 — Disable auto-calibration

    • SPI_Gain_Setting — SPI hex value encoding op-amp gain, specified as a scalar

    Data Types: struct

    Target processor parameters, specified as a struct. Specify the structure with the following required field:

    • ADC_Vref — ADC reference voltage (in volts)

    Other fields of this structure are not used by mcb.updateInverterParameters.

    Data Types: struct

    Output Arguments

    collapse all

    Inverter parameters, returned as a struct with the same fields as the input argument inverter, with the following fields updated to reflect the target hardware and motor:

    • ADCGain — ADC gain factor scaled by SPI, returned as a scalar

    • ISenseVoltPerAmp — Current sensor voltage output per ampere of current (in V/A), returned as a scalar

    • ISenseMax — Maximum peak-neutral current that can be measured by current sensor (in amperes), returned as a scalar

    • SPI_Gain_Setting — SPI hex value encoding op-amp gain, returned as a scalar

    Version History

    Introduced in R2020a

    expand all