主要内容

mcb.PMSMSpeeds

Calculate milestone speeds of PMSM

Since R2022b

    Description

    milestone_speeds = mcb.PMSMSpeeds(pmsm,inverter) returns milestone speeds for a permanent magnet synchronous motor (PMSM) with parameters pmsm and inverter with parameters inverter.

    milestone_speeds = mcb.PMSMSpeeds(pmsm,inverter,Name=Value) specifies options using one or more name-value arguments.

    example

    Examples

    collapse all

    Get parameters for your motor and inverter. This example uses a BLY171D PMSM and DRV8312-C2-KIT inverter.

    pmsm = mcb.getPMSMParameters("BLY171D");
    inverter = mcb.getInverterParameters("DRV8312-C2-KIT");

    Get milestone speeds for the PMSM using the CVCP field-weakening control method.

    milestone_speeds = mcb.PMSMSpeeds(pmsm,inverter,FWCMethod="cvcp")
    milestone_speeds =
    
            5393
            7008
            8361

    Get parameters for your motor and inverter. This example uses a BLY171D PMSM and DRV8312-C2-KIT inverter.

    pmsm = mcb.getPMSMParameters("BLY171D");
    inverter = mcb.getInverterParameters("DRV8312-C2-KIT");

    Get d-axis and q-axis currents and electrical speeds for the PMSM using the CVCP field-weakening control method by enabling outputAll.

    output = mcb.PMSMSpeeds(pmsm,inverter,FWCMethod="cvcp",outputAll=1)
    output =
       1.0e+03 *
             0   -0.0011   -0.0018
        0.0018    0.0014    0.0003
        2.2591    2.9355    3.5023

    Input Arguments

    collapse all

    PMSM parameters, specified as a struct.

    Specify lumped linear parameters with the following required fields:

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

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

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

    • p — Number of pole pairs, specified as a scalar

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

    • B — Viscous damping coefficient (in kg-m2/ sec), specified as a scalar

    • I_rated — Rated current (in amperes), specified as a scalar

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

    Alternatively, specify nonlinear 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 weber) 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

    Whether you specify lumped parameters or lookup tables, 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

    • J — Motor inertia coefficient (in kg-m2), specified as a scalar

    • Ke — Back EMF constant (in volts/krpm), specified as a scalar

    • Kt — Torque constant (in Nm/amperes), specified as a scalar

    • N_max — Maximum rotor speed (in rpm), specified as a scalar

    • PositionOffset — Rotor position offset (in PU), specified as a scalar

    • QEPSlits — Number of quadrature encoder pulse (QEP) slits, specified as a scalar

    • T_rated — Rated torque (in Nm), specified as a scalar

    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

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: mcb.PMSMSpeeds(pmsm,inverter,FWCMethod="cvcp")

    Field-weakening control method, specified as a character vector or string. Specify one of the following:

    • "vclmt" — Use voltage and current limited maximum torque (VCLMT) method.

    • "none" — Do not use field-weakening control.

    • "cvcp" — Use constant voltage constant power (CVCP) method.

    • "cccp" — Use constant current constant power (CCCP) method.

    Example: mcb.PMSMSpeeds(pmsm,inverter,FWCMethod="cvcp") uses CVCP field-weakening method to compute the milestone speeds.

    Data Types: char | string

    Voltage equations for calculating base speed, specified as a character vector or string. Specify one of the following:

    • "actual" — Use actual voltage equations.

    • "approximate" — Use approximate voltage equations.

    Example: mcb.PMSMSpeeds(pmsm,inverter,voltageEquation="approximate") uses approximate voltage equations.

    Data Types: char | string

    Options to show verbose output when calculating the milestone speeds. Specify one of the following:

    • 0 — Do not show verbose output

    • 1 — Show information about computed milestone speeds.

    • 2 — Show information about computed milestone speeds and additional information about convergence of the Newton-Raphson solver.

    Example: mcb.PMSMSpeeds(pmsm,inverter,verbose=1) shows information about computed milestone speeds.

    Data Types: int

    Option to plot constraint curves in current space.

    Example: mcb.PMSMSpeeds(pmsm,inverter,constraintCurves=0) disables plotting constraint curves.

    Data Types: logical

    Option to output all current and speed values as a matrix of values in the format [id; iq; we] where id and iq are vectors of d-axis and q-axis currents (in amperes), respectively, and we is a vector of electrical speeds (in rpm).

    Example: mcb.PMSMSpeeds(pmsm,inverter,outputAll=1) outputs current and speed values as a matrix.

    Data Types: logical

    Output Arguments

    collapse all

    If you disable outputAll:

    • Milestone speeds of PMSM (in rpm), returned as a vector.

    If you enable outputAll:

    • d-axis and q-axis currents (in amperes) and electrical speeds (in rpm), returned as a matrix.

    Version History

    Introduced in R2022b

    expand all