Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of BAE_FRDM by
ACS.cpp
- Committer:
- sakthipriya
- Date:
- 2014-12-05
- Revision:
- 6:e346d720c451
- Parent:
- 0:8b0d43fe6c05
File content as of revision 6:e346d720c451:
#include "ACS.h"
PwmOut PWM1(PTD4);        //Functions used to generate PWM signal 
                        //PWM output comes from pins p6
Serial pc1(USBTX, USBRX);
void FUNC_ACS_GENPWM()
 {
     printf("\nEnterd PWMGEN function\n");
     double DCx = 0;         //Duty cycle of Moment in x, y, z directions
     double ix = 0;          //Current sent in x, y, z TR's
     float timep = 0.02 ;  
     double Mx=1.5;            //Time period is set to 0.2s  
                             //Moment in x, y, z directions
      
     
        ix = Mx * 0.3 ;      //Moment and Current always have the linear relationship
     
        if( ix>0&& ix < 0.006 )                     //Current and Duty cycle have the linear relationship between 1% and 100%
         {
             DCx =  6*1000000*pow(ix,4) - 377291*pow(ix,3) + 4689.6*pow(ix,2) + 149.19*ix - 0.0008;
             PWM1.period(timep);
             PWM1 = DCx/100 ;
         }
        else if( ix >= 0.006&& ix < 0.0116)
         { 
            DCx = 1*100000000*pow(ix,4) - 5*1000000*pow(ix,3) + 62603*pow(ix,2) - 199.29*ix + 0.7648;
            PWM1.period(timep);
            PWM1 = DCx/100 ;             
         }
        else if (ix >= 0.0116&& ix < 0.0624)
         {
              
            DCx = 212444*pow(ix,4) - 33244*pow(ix,3) + 1778.4*pow(ix,2) + 120.91*ix + 0.3878;
            PWM1.period(timep);
            PWM1 = DCx/100 ;            
         }
        else if(ix >= 0.0624&& ix < 0.555)
         {
            printf("\nACS entered if\n");
            DCx =  331.15*pow(ix,4) - 368.09*pow(ix,3) + 140.43*pow(ix,2) + 158.59*ix + 0.0338;
            PWM1.period(timep);
            PWM1 = DCx/100 ;            
         }
         else if(ix==0)
         {
             DCx = 0;
            PWM1.period(timep);
            PWM1 = DCx/100 ;            
         }
         else
         {
            // printf("!!!!!!!!!!Error!!!!!!!!!");
         } 
              
    
printf("\nExited PWMGEN function\n");
}
          
            
    