📄 compute_reandim.lst
字号:
C51 COMPILER V8.02 COMPUTE_REANDIM 04/04/2008 19:55:15 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE COMPUTE_REANDIM
OBJECT MODULE PLACED IN Compute_REandIM.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Compute_REandIM.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*===============================================================*/
2 /*函数名称: Compute_REandIM.c */
3 /*函数功能: 计算相位,实部,虚部 */
4 /*参数说明: Angle_Frequncy----------------------------2*3.14156926
5 Y_Real----------------------------------网络函数的实部
6 Y_Image---------------------------------网络函数的虚部
7 t-------------------------------------高电平对应的时间
8 Y_Phase---------------------------------电压电流相位差
9 error_duty----------------------------------占空比误差
10 FrequencyLong_HZ-------------------------DDS发出的频率
11 Pulse_Number--------------------- 高电平对应的脉冲个数
12 */
13 /*修改记录: 无修改记录 */
14 /*编写作者: t483-4-19chenyong */
15 /*编写日期: 2007-4-14 */
16 /*===============================================================*/
17 #include"common.h"
18 #include"ad9851.h"
19 #include<math.h>
20
21
22 //#define Frequncy 9015 //由DDS发出,在这里常数
23 #define Command_Time 0.48 //1/25MHz(系统时钟为25MHz)
24 extern float Y_Real, Y_Image;
25 extern float Y_Abs, Y_Phase;
26 extern float Current,Voltage;
27 extern unsigned long Pulse_Number; //所测量的脉冲个数
28 //unsigned long Frequncy;
29 extern unsigned long FrequencyLong_HZ;
30 void Compute_REALandIMAGE()
31 {
32 1
33 1 float Angle_Frequncy=0.0;
34 1 float t=0.0,error_duty=0.0;
35 1
36 1
37 1 // Frequncy=ad9851();
38 1 ad9851();
39 1 // FrequencyLong_HZ = FrequencyLong_HZ*5.99;
40 1 Angle_Frequncy = 2*3.1415926;
41 1 Pulse_Number = Pulse_Number*1.06358;
42 1 Pulse_Number = Pulse_Number-6.35466; //直线拟和后的值
43 1
44 1 t = (float)0.48*Pulse_Number; //计算相位
45 1 t = (float)t/100;
46 1 t = (float)t*FrequencyLong_HZ;
47 1 t = (float)t/10;
48 1
49 1
50 1 Y_Phase = (float)t*Angle_Frequncy;
51 1 Y_Phase = (float)Y_Phase/1000; //单位变成秒
52 1 error_duty = Y_Phase*0.12292701;
53 1 error_duty = error_duty-0.030691098; //误差直线拟和后的参数值
54 1 // Y_Phase = Y_Phase+0.092048856; //静态误差为0.403832733
55 1 Y_Phase = Y_Phase-error_duty;
C51 COMPILER V8.02 COMPUTE_REANDIM 04/04/2008 19:55:15 PAGE 2
56 1 Y_Phase = (float)Y_Phase;
57 1
58 1 if(Y_Phase<=3.1415926)
59 1 {
60 2
61 2 Current = (float)data_process(0); //采样电流
62 2 Voltage = (float)data_process(2); //采样电压
63 2 Y_Abs = (float)Current/Voltage; //计算导纳模
64 2
65 2 Y_Real = (float)fabs(Y_Abs*cos(Y_Phase)); //计算实部
66 2 Y_Image = (float)fabs(Y_Abs*sin(Y_Phase)); //计算虚部
67 2 Y_Phase = Y_Phase*180; //化成弧度
68 2 Y_Phase = Y_Phase/3.1415926;
69 2
70 2 }
71 1 else
72 1 {
73 2
74 2 Y_Phase=6.283185-Y_Phase;
75 2 Current = (float)data_process(0); //采样电流
76 2 Voltage = (float)data_process(2); //采样电压
77 2 Y_Abs = (float)Current/Voltage; //计算导纳模
78 2
79 2 Y_Real = (float)fabs(Y_Abs*cos(Y_Phase)); //计算实部
80 2 Y_Image = (float)fabs(Y_Abs*sin(Y_Phase)); //计算虚部
81 2 Y_Phase = Y_Phase*180; //化成弧度
82 2 Y_Phase = Y_Phase/3.1415926;
83 2
84 2 }
85 1 // Show_FloatData(FrequencyLong_HZ,5,3);
86 1
87 1
88 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 525 ----
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 + -