反余弦函数的使用

[复制链接]
8035|16
 楼主| yzzly 发表于 2012-2-9 11:24 | 显示全部楼层 |阅读模式
本帖最后由 yzzly 于 2012-2-9 11:27 编辑

本人103VE系统需要测试两个信号之间的角度差,已经用cos函数计算出功率因数,但是在试图使用arccos(反余弦)函数计算角度时,MDK编译器总是说“ function "arccos" declared implicitly”,这是什么原因啊?已经包含了math.h库的呀!

U0angle=PhaseEstimate(U0py[1],U0px[1],PI);          //计算U0的相对相位
I0angle=PhaseEstimate(I0py[1],I0px[1],0);          //计算I0的相对相位
TempAngleU0I0=cos(U0angle-I0angle);            //计算U0与I0的相位差
TempAngleU0I0=arccos(TempAngleU0I0);
香水城 发表于 2012-2-9 11:37 | 显示全部楼层
自己打开math.h文件看看,你的拼写对不对。
airwill 发表于 2012-2-9 12:39 | 显示全部楼层
呵呵, 又是想当然地写了函数名.
常犯的错误. 仔细看下库函数介绍吧
 楼主| yzzly 发表于 2012-2-9 12:58 | 显示全部楼层
谢谢香版的提示,打开math.h文件后看到有acos和acosf,可是acos(0.866)和acosf(0.866)都不是30度而是0.5236496,实在不知道是什么意思!:'(
 楼主| yzzly 发表于 2012-2-9 13:37 | 显示全部楼层
请大虾帮助
rockli 发表于 2012-2-9 14:01 | 显示全部楼层
0.5236496 = PI/6  就是30度
 楼主| yzzly 发表于 2012-2-9 14:15 | 显示全部楼层
本帖最后由 yzzly 于 2012-2-9 14:22 编辑

6楼:凭什么说0.5236496就是30度?怎么换算?虽然0.5236496*57.29就是30度,但为什么要这样换算?你在电脑计算器上用反余弦函数计算0.866结果就是直观的30度。
香水城 发表于 2012-2-9 14:22 | 显示全部楼层
6楼:凭什么说0.5236496就是30度?怎么换算?虽然0.5236496*57.29就是30度,但为什么要这样换算?你在电脑计算器上用反余弦函数计算0.866结果就是直观的30度。 ...
yzzly 发表于 2012-2-9 14:15


你能肯定电脑计算器上用反余弦函数,与你在MDK中的反余弦函数具有相同的意义吗?
864 发表于 2012-2-9 14:33 | 显示全部楼层
0.5236496单位是弧度 换算成角度就约等于30度
864 发表于 2012-2-9 14:35 | 显示全部楼层
7# yzzly
1度 = PI / 180 弧度, 那30度就等于 PI / 6 弧度 就是0.5236496
第二道彩虹 发表于 2012-2-9 16:31 | 显示全部楼层
4# yzzly
哎 你那个数不正是PI/6吗?难道不是三十度?
第二道彩虹 发表于 2012-2-9 16:32 | 显示全部楼层
7# yzzly
表示很无语。
rockli 发表于 2012-2-9 17:01 | 显示全部楼层
6楼:凭什么说0.5236496就是30度?怎么换算?虽然0.5236496*57.29就是30度,但为什么要这样换算?你在电脑计算器上用反余弦函数计算0.866结果就是直观的30度。 ...
yzzly 发表于 2012-2-9 14:15


无语,好心回答你问题,居然这个态度。
楼主先回去复习一下高中的数学课本,然后再讨论这个问题吧。
Cortex-M0 发表于 2012-2-9 17:13 | 显示全部楼层
lxyppc 发表于 2012-2-9 19:25 | 显示全部楼层
不看帮助的人伤不起啊
lxyppc 发表于 2012-2-9 19:26 | 显示全部楼层
  函数名: acos
  功 能: 反余弦函数
  用 法: double acos(double x),x范围在 -1~1 之间;
  返回值:返回的是一个数值的反余弦弧度值,其范围是 0~ pi 。 例如: acos(1) 返回值是 0 。
  acos(- 0.5) 返回的是 2.0944 弧度。
godzy 发表于 2012-9-18 16:27 | 显示全部楼层
  函数名: acos
  功 能: 反余弦函数
  用 法: double acos(double x),x范围在 -1~1 之间;
  返回值:返回的是一个数值的反余弦弧度值,其范围是 0~ pi 。 例如: acos(1) 返回值是 0 。
  acos(- 0.5) 返 ...
lxyppc 发表于 2012-2-9 19:26


但是普通的单片机只支持整数,不支持浮点运算,那返回的2.0944得到的结果岂不是四舍五入为2了,不知道是否有做放大处理的,如何解决精度问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

428

主题

1192

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部