打印

反余弦函数的使用

[复制链接]
6809|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,实在不知道是什么意思!:'(

使用特权

评论回复
5
yzzly|  楼主 | 2012-2-9 13:37 | 只看该作者
请大虾帮助

使用特权

评论回复
6
rockli| | 2012-2-9 14:01 | 只看该作者
0.5236496 = PI/6  就是30度

使用特权

评论回复
7
yzzly|  楼主 | 2012-2-9 14:15 | 只看该作者
本帖最后由 yzzly 于 2012-2-9 14:22 编辑

6楼:凭什么说0.5236496就是30度?怎么换算?虽然0.5236496*57.29就是30度,但为什么要这样换算?你在电脑计算器上用反余弦函数计算0.866结果就是直观的30度。

使用特权

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


你能肯定电脑计算器上用反余弦函数,与你在MDK中的反余弦函数具有相同的意义吗?

使用特权

评论回复
9
864| | 2012-2-9 14:33 | 只看该作者
0.5236496单位是弧度 换算成角度就约等于30度

使用特权

评论回复
10
864| | 2012-2-9 14:35 | 只看该作者
7# yzzly
1度 = PI / 180 弧度, 那30度就等于 PI / 6 弧度 就是0.5236496

使用特权

评论回复
11
第二道彩虹| | 2012-2-9 16:31 | 只看该作者
4# yzzly
哎 你那个数不正是PI/6吗?难道不是三十度?

使用特权

评论回复
12
第二道彩虹| | 2012-2-9 16:32 | 只看该作者
7# yzzly
表示很无语。

使用特权

评论回复
13
rockli| | 2012-2-9 17:01 | 只看该作者
6楼:凭什么说0.5236496就是30度?怎么换算?虽然0.5236496*57.29就是30度,但为什么要这样换算?你在电脑计算器上用反余弦函数计算0.866结果就是直观的30度。 ...
yzzly 发表于 2012-2-9 14:15


无语,好心回答你问题,居然这个态度。
楼主先回去复习一下高中的数学课本,然后再讨论这个问题吧。

使用特权

评论回复
14
Cortex-M0| | 2012-2-9 17:13 | 只看该作者
:dizzy:

使用特权

评论回复
15
lxyppc| | 2012-2-9 19:25 | 只看该作者
不看帮助的人伤不起啊

使用特权

评论回复
16
lxyppc| | 2012-2-9 19:26 | 只看该作者
  函数名: acos
  功 能: 反余弦函数
  用 法: double acos(double x),x范围在 -1~1 之间;
  返回值:返回的是一个数值的反余弦弧度值,其范围是 0~ pi 。 例如: acos(1) 返回值是 0 。
  acos(- 0.5) 返回的是 2.0944 弧度。

使用特权

评论回复
17
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

主题

1183

帖子

3

粉丝