Erklärung zur SVM

Gast #1863044
Lesenswert?

Hallo,
könnte mir jemand diese Berechnung kurz erklären?
Bei einer App Notes zum XC878 von Infineon gibt es eine CORDIC 
Berechnung

Ta   = (unsigned int) ((CD_CORDY));     //ta  =m*sin(angle)

Tb   = ((unsigned int) (((7*(CD_CORDX))>>2)-(CD_CORDY)))>>1;     //tb 
=m*sin(60-angle)

Würde dies gerne durchrechnen, aber mir fehlt die Angabe zu m in der 
Formel. Könnte mir jemand erklären was m bedeutet??

  Grüße
   jack
Gast #1863057
Lesenswert?

Noch zur Vervollständigung die kompl. Berechnung.

  Angle = Angle+Speed_Reference;

  Sector = (int)((((long)(Angle)*6)>>16) & 0x0007);

  AngleTab= (unsigned int)Angle-10922*Sector;

  //  AngleTab=(Angle*6)/6 ;


  //cordic implementation

  SYSCON0 |= 0x01;

  CD_STATC = 0x00;
  CD_CON   = 0x0A;             //Circular /Rotation Mode
  CD_CORDYL = 0x00;          //Xfinal = K[X cos(Z) - Y sin(Z)]
  CD_CORDYH = 0x00;          //Yfinal = K[Y cos(Z) + X sin(Z)]
  CD_CORDXH = (Amplitude>>8);
  CD_CORDZH = (AngleTab>>8);
  CD_CORDZL = (AngleTab);
  CD_CORDXL = Amplitude;

    while(!(CD_STATC & 0x04));


  if((Sector&0x0001)==1)
  {
  Ta   = (unsigned int) ((CD_CORDY));     //ta  =m*sin(angle)

  Tb   = ((unsigned int) (((7*(CD_CORDX))>>2)-(CD_CORDY)))>>1;     //tb 
=m*sin(60-angle)
  } // tb= (sqrt(3)*cos(angle)-sin(angle))/2

  else
  {
  Tb = (unsigned int) ((CD_CORDY));     //tb  =m*sin(angle)

  Ta   = ((unsigned int) (((7*(CD_CORDX))>>2)-(CD_CORDY)))>>1;     //ta 
=m*sin(60-angle)
  } // tb= (sqrt(3)*cos(angle)-sin(angle))/2


Ich denke das m steht für den Modulationsindex.
Ich würde aber gerne die Berechnung im CORDIC nachvollziehen können um m 
ohne CORDIC zu berechnen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren