Некорректное вычисление переменных
21.07.2019
Здравствуйте.
В приведенном коде некорректно вычисляются переменные Ni. Прикладываю скрин графиков A=atan2(Fs, Fc) и N1. Видно, что первая ступень N1 удовлетворяет условию, а вторая нет. Подскажите, пожалуйста, что не так.
t=0:10^-4:0.025;
w=2*pi*50;
Fs=sin(w*t)
Fc=cos(w*t)
% вычисление фазового сектора вектора потокосцепления
A=atan2(Fs, Fc)
plot(t, A)
grid on
hold on
N1(A<0.5236 & A>-0.5236)=1;
N2(A>0.5236 & A<1.5708)=1;
N3(A>1.5708 & A<2.618)=1;
N4(A>2.618 | A<-2.618)=1;
N5(A>-2.618 & A<-1.5708)=1;
N6(A>-1.5708 & A<-0.5236)=1;
t=linspace(0,0.025,length(N1))
plot(t, N1)
Ответы
Здравствуйте. Я полагаю происходит сбив времени из-за команды
t=linspace(0,0.025,length(N1)).
Вы её применяете из-за того,что просле команд, аналогичных
N1(A<0.5236 & A>-0.5236)=1;
ваш массив становиться меньше исходного.
Из хэлпа:
Попробуйте переработать код примерно так:
clc
t=0:10^-4:0.025;
w=2*pi*50;
Fs=sin(w*t);
Fc=cos(w*t);
% вычисление фазового сектора вектора потокосцепления
A=atan2(Fs, Fc);
plot(t, A)
grid on
hold on
N1=A;
N1(N1<0.5236 & N1>-0.5236)=1;% подходят условию
N1(N1~=1)=0;%не подходят условию
plot(t, N1)