打印
[STM32F1]

有了交流信号的实部和虚部,如何计算初始相位?

[复制链接]
5013|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzzly|  楼主 | 2016-11-8 11:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有了交流信号的实部和虚部,如何计算初始相位?谢谢!
沙发
airwill| | 2016-11-8 12:47 | 只看该作者
这是个电路里面的书本知识问题, arctg(虚部/实部)

使用特权

评论回复
板凳
小曾1220| | 2016-11-8 13:30 | 只看该作者

使用特权

评论回复
地板
yzzly|  楼主 | 2016-11-8 13:48 | 只看该作者
本帖最后由 yzzly 于 2016-11-8 13:50 编辑

二楼,这又是什么意思?
Angle=atan(Px/Py);
if(Px>0 && Py<0)Angle=Angle+PI;
else if(Px<0 && Py<0)Angle=Angle+PI;
else if(Px<0 && Py>0)Angle=Angle+2*PI;




使用特权

评论回复
5
菜狗| | 2016-11-8 14:19 | 只看该作者
yzzly 发表于 2016-11-8 13:48
二楼,这又是什么意思?
Angle=atan(Px/Py);
if(Px>0 && Py

angle 相位
tan(angle)=sin(angle)/cos(angle)=Px/Py,-90°<angle<90°;
后面的乱七八糟的不用管,tan函数周期是180°,加一个两个180°,不影响波形。他的单位是弧度PI 3.14 等效于180°。

使用特权

评论回复
6
hxfxt| | 2016-11-8 14:45 | 只看该作者
yzzly 发表于 2016-11-8 13:48
二楼,这又是什么意思?
Angle=atan(Px/Py);
if(Px>0 && Py

Angle=atan(Px/Py); 这样求出的值是弧度值,范围:-π/2 ~ π/2
if(Px>0 && Py<0)Angle=Angle+PI;
else if(Px<0 && Py<0)Angle=Angle+PI;
else if(Px<0 && Py>0)Angle=Angle+2*PI
上面的这些是为了判断(py,px)所在象限,为了让弧度值变到0~2π之间,PI即π

使用特权

评论回复
7
菜狗| | 2016-11-8 16:05 | 只看该作者
hxfxt 发表于 2016-11-8 14:45
Angle=atan(Px/Py); 这样求出的值是弧度值,范围:-π/2 ~ π/2
if(Px>0 && Py

你说得对,要判断象限

使用特权

评论回复
8
wahahaheihei| | 2016-11-8 22:22 | 只看该作者
跟各位大神又学了一招。

使用特权

评论回复
9
fxmxh_| | 2016-11-9 08:40 | 只看该作者
楼猪, 偶 以前 也 弄啥个,

你是做 跟   POWER  相关的工作吧

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

427

主题

1173

帖子

3

粉丝