Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

For a PMSM BLDCmodel configured to use the PMSM Variable Ld/Lq machine type, a JSON file is required to define the machine characteristics. The file must contain the following information:

Parameter (JSON key)

Value type

Unit

Description

Example

PolePairs

int


Number of pole pairs of the machine.

Code Block
languagejson
"PolePairs": 2

DqTransformAngleOffset

double

degree

Angle offset applied to the abc to dq Transform, before Id and Iq are referenced to look up Ld, Lq, and Fm. A value of 0 indicates that the direct axis is aligned with Phase A when the rotor angle θ=0. In other words, the active power reaches a maximum when Id is at a maximum.  This is the default behavior.

For more information, see the Reference Frame Transformation description.

Code Block
languagejson
"DqTransformAngleOffset": 0

TableInputCutoffFrequency

double

Hz

Sets the low-pass filter cutoff frequency for the Id and Iq inputs of the Ld, Lq, and Fm lookup tables.

This parameter is optional, and if omitted from the JSON file, the default cutoff frequency is 200Hz. The parameter typically needs adjustment only if the Permanent Magnet Flux Linkage (Fm) table data is not constant, as improper tuning in this case can affect the PMSM output currents.

Please contact OPAL-RT Support for additional information.

Code Block
languagejson
"TableInputCutoffFrequency": 500

Ra

double

Ohm

Phase A Resistance of the machine

Code Block
"Ra": 0.04

Rb

double

Ohm

Phase B Resistance of the machine

Code Block
"Rb": 0.04

Rc

double

Ohm

Phase C Resistance of the machine

Code Block
"Rc": 0.04

Id_axis

double[]

A

One dimensional array of the current values along the direct axis of the stator.

This array must be the same size as Iq_axis, it can contain up to 128 values, and they must be arranged in ascending order.

Code Block
"Id_axis": [
  -50.0,
  0.0,
  50.0
],

Iq_axis

double[]

A

One dimensional array of the current values along the quadratic axis of the stator.

This array must be the same size as Id_axis, it can contain up to 128 values, and they must be arranged in ascending order.

Code Block
"Iq_axis": [
  -50.0,
  0.0,
  50.0
],

Ld

double[][]

H

Two dimensional array of the direct-axis inductance values. 

The size of this array must be n x n, where n is equal to the number of current values in Id_axis and Iq_axis.

Figure 1 below describes how the inductance values are mapped from the JSON file array to the Ld table.

Code Block
languagejson
"Ld": [
  [
    0.0004,
    0.00042,
    0.00041
  ],
  [
    0.00041,
    0.00044,
    0.00043
  ],
  [
    0.0004,
    0.00042,
    0.000425
  ]
],

Lq

double[][]

H

Two dimensional array of the quadratic-axis inductance values. 

The size of this array must be n x n, where n is equal to the number of current values in Id_axis and Iq_axis.

Figure 1below describes how the inductance values are mapped from the JSON file array to the Lq table.

Code Block
languagejson
"Lq": [
  [
    0.0004,
    0.00042,
    0.00041
  ],
  [
    0.00041,
    0.00044,
    0.00043
  ],
  [
    0.0004,
    0.00042,
    0.000425
  ]
],

Fm

double[][]

Wb

Two dimensional array of the Permanent Magnet Flux Linkage values. 

The size of this array must be n x n, where n is equal to the number of current values in Id_axis and Iq_axis.

Figure 1below describes how the inductance values are mapped from the JSON file array to the Permanent Magnet Flux Linkage table.

For the majority of use cases, the data entered in this table is constant, as shown in the example column. Entering variable data into this table may cause unexpected simulation results. If your application requires variable Permanent Magnet Flux Linkage values, it may be necessary to tune the TableInputCutoffFrequency. Please contact OPAL-RT Support for additional information.

Code Block
languagejson
"Fm": [
  [
    0.1,
    0.1,
    0.1
  ],
  [
    0.1,
    0.1,
    0.1
  ],
  [
    0.1,
    0.1,
    0.1
  ]
]

...