⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 compute_power.lst

📁 基于8051F实现导纳分析仪,键盘,液晶,功能都全有,其中包含测频,测相,测高电平,测低电平,测幅.等多种算法思想.用C语言实现.绝对原创!
💻 LST
字号:
C51 COMPILER V8.02   COMPUTE_POWER                                                         04/04/2008 19:55:15 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE COMPUTE_POWER
OBJECT MODULE PLACED IN Compute_Power.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Compute_Power.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          /*===============================================================*/
   2          /*函数名称: Compute_Power.c                                     */
   3          /*函数功能: 计算平均功率,无功功率,功率因素                    */
   4          /*入口参数: 无                                                  */
   5          /*出口参数: 无                                                  */
   6          /*参数说明: reactive_power--------------------------------无功功率
   7                           average_power-----------------------有功功率(平均功率)
   8                                   theta-----------------------------------------功率因素
   9                                                                           */
  10          /*修改记录: 无修改记录                                          */
  11          /*编写作者: t483-4-19chenyong                                   */
  12          /*编写日期: 2007-4-14                                           */
  13          /*===============================================================*/
  14          #include"common.h"
  15          #include"ad9851.h"
  16          #include<math.h> 
  17          #define  Command_Time    0.48             //1/25MHz(系统时钟为25MHz)
  18          
  19          extern float Current,Voltage;
  20          extern float Y_Real, Y_Image;
  21          extern float Y_Abs,  Y_Phase;
  22          extern float theta;
  23          extern float reactive_power;
  24          extern float average_power;
  25          extern unsigned long Pulse_Number;    //所测量的脉冲个数   
  26          //unsigned long  Frequncy;
  27          extern unsigned long  FrequencyLong_HZ; 
  28          
  29          void  Compute_Power(void)
  30          {
  31   1      
  32   1            float Angle_Frequncy=0.0;  
  33   1                float t=0.0,error_duty=0.0; 
  34   1      
  35   1      //        ad9851();
  36   1      
  37   1      //        FrequencyLong_HZ = FrequencyLong_HZ*5.99;
  38   1            Angle_Frequncy = 2*3.1415926;
  39   1                Pulse_Number = Pulse_Number*1.06358;
  40   1                Pulse_Number = Pulse_Number-6.35466;            //直线拟和后的值
  41   1      
  42   1                t = (float)0.48*Pulse_Number;               //计算相位
  43   1                t = (float)t/100;
  44   1                t = (float)t*FrequencyLong_HZ*6;
  45   1                t = (float)t/10;
  46   1      
  47   1      
  48   1                Y_Phase = (float)t*Angle_Frequncy;
  49   1                Y_Phase = (float)Y_Phase/1000;              //单位变成秒 
  50   1                error_duty = Y_Phase*0.12292701;
  51   1                error_duty = error_duty-0.030691098;            //误差直线拟和后的参数值
  52   1                Y_Phase = Y_Phase+0.0306876;                //静态误差为0.403832733
  53   1                Y_Phase = Y_Phase-error_duty;
  54   1                Y_Phase = (float)Y_Phase;
  55   1      
C51 COMPILER V8.02   COMPUTE_POWER                                                         04/04/2008 19:55:15 PAGE 2   

  56   1                if(Y_Phase<=3.1415926) 
  57   1                {
  58   2                      Y_Phase = Y_Phase;                        //化成弧度    
  59   2                           
  60   2                }
  61   1                else
  62   1                {       
  63   2                          Y_Phase=6.283185-Y_Phase;             
  64   2                }
  65   1                     
  66   1                average_power = Voltage*Current;
  67   1                average_power = average_power*cos(Y_Phase);     //计算有功功率
  68   1      
  69   1                reactive_power = Voltage*Current;
  70   1                reactive_power = reactive_power*sin(Y_Phase);   //计算无功功率
  71   1      
  72   1                theta = cos(Y_Phase);                                                   //计算功率因素
  73   1      
  74   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    531    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -