gumengyinyin 发表于 2016-11-9 17:03

已知正余弦信号求解反正切值

问题背景:已知电机旋变信号的正余弦值(sin(sita),cos(sita),其中sita为电机转过的角度),求解电机转速
原理:y=tan(sita)=sin(sita)/cos(sita);
         sita=actan(y);
=xlsread('xuanbian.xls');
t=num(:,1);%采样时间
vc1=num(:,3);%已经经低通滤波器的余弦信号即cos(sita)
vs1=num(:,2);%已经经低通滤波器的正弦信号即sin(sita)
n=length(t);
fs=48000;%信号的采样频率
for i=1:n
y(i)=vs1(i)/vc1(i);
end
for k=1:n-1
if y(k)>0 && y(k+1)<0 %当正切值从正变到负,说明已经转过180度,所以每次变号就转过一个周期,加上180度
j=j+1;
end
sita(k)=atan2(vs1(k),vc1(k))*180/pi+j*180;
end
%对角度sita进行微分
w=diff(actan')./diff(t);%w为角速度
r=w*60/(2*pi)/360;%r为单位rpm的转速

正余弦信号如第一张图,我自己算的转过的sita如第二张图,显然是错的{:{33}:},求指教



Generation 发表于 2016-11-10 08:51

j是什么?

Generation 发表于 2016-11-10 08:51

Generation 发表于 2016-11-10 08:51
j是什么?

周期数吗?

gumengyinyin 发表于 2016-11-14 12:37

Generation 发表于 2016-11-10 08:51
周期数吗?

是的,

hcharlie 发表于 2016-11-14 15:45

本帖最后由 hcharlie 于 2016-11-15 11:01 编辑

我看你的“转过角度”图上有这么几个点有突变,其它都对,还是有规律可循的,再努一把力按4个象限考虑就成了。
页: [1]
查看完整版本: 已知正余弦信号求解反正切值