how to have a continious sine wave in different periods

조회 수: 3 (최근 30일)
azerty and qwerty
azerty and qwerty 2022년 6월 6일
편집: Sam Chak 2022년 6월 7일
hello guys,
I have created a code to generate a kind of three phases voltage drop, but i have a problem connecting between the curves in the different periods .. i dont have a problem in the first phase which its angle is 2*pi ... but in the 2 others phases where i have 2*pi/3 and -2*pi/3 i cant connect between them
  댓글 수: 6
azerty and qwerty
azerty and qwerty 2022년 6월 6일
i tried using
plot(t1,MyVoltage1,'r', t1,MyVoltage2,'r', t1,MyVoltage3,'r', t2, MyPerturbation1+MyVoltage1(end),'b', t2, MyPerturbation2+MyVoltage2(end),'b', t2, MyPerturbation3+MyVoltage3(end),'b')
but its not working aswell
Sam Chak
Sam Chak 2022년 6월 6일
편집: Sam Chak 2022년 6월 6일
By the way, how many cycles in between 0 and 1000 sec for a sine wave ?
t = linspace(0, 1000, 5000);
y1 = sin(2*pi*50*t);
y2 = sin(2*pi/100*t);
y = [y1' y2'];
plot(t, y)
legend('y1', 'y2')

댓글을 달려면 로그인하십시오.

채택된 답변

Sam Chak
Sam Chak 2022년 6월 6일
Think you probably want to show something like this.
Do you remember I mentioned about the points where there is a continuity when the voltages dip? I picked the points when V = 0.
fs = 10001; % Sampling Frequency in Hz
t1V1 = linspace(0, 0.30/3, fs); % Period in ms
t1V2 = linspace(0, 7/75, fs);
t1V3 = linspace(0, 8/75, fs);
MyVoltage1 = U1*sin(2*pi*f*t1V1); % Sine wave generation
MyVoltage2 = U1*sin(2*pi*f*t1V2 + 2*pi/3);
MyVoltage3 = U1*sin(2*pi*f*t1V3 - 2*pi/3);
t2V1 = linspace(0.30/3, 0.2, fs); % Period in ms
t2V2 = linspace( 7/75, 0.2, fs);
t2V3 = linspace( 8/75, 0.2, fs);
MyPerturbation1 = U2*sin(2*pi*f*t2V1); % Sine wave generation
MyPerturbation2 = U2*sin(2*pi*f*t2V2 + 2*pi/3);
MyPerturbation3 = U2*sin(2*pi*f*t2V3 - 2*pi/3);
plot(t1V1, MyVoltage1, 'r', t1V2, MyVoltage2, 'b', t1V3, MyVoltage3, 'g' , t2V1, MyPerturbation1, 'r', t2V2, MyPerturbation2, 'b', t2V3, MyPerturbation3,'g')
  댓글 수: 2
azerty and qwerty
azerty and qwerty 2022년 6월 7일
i understand what u mean but when i need a specific period for ex from 0 to 1000 ms and if i want to change it from 0 to 500 ms .. i have to calculate the passage of 0 everytime .. there is no automatic way to do it ?
Sam Chak
Sam Chak 2022년 6월 7일
편집: Sam Chak 2022년 6월 7일
I'm not aware of any special function, but you can definitely perform a little math and program it in the script as shown in the following example:
Solving gives
where .
Rearranging this yields
Similarly, solving and give
, and
, respectively.
tdipV1 = 500; % desired time for voltage dip to occur
n = 100*tdipV1;
tdipV2 = 1/300*(3*n - 2);
tdipV3 = 1/300*(3*(n + 1) - 4);
tstart = tdipV1 - 0.03;
tfinal = tdipV1 + 0.03;
fs = 10001;
t1V1 = linspace(tstart, tdipV1, fs);
t1V2 = linspace(tstart, tdipV2, fs);
t1V3 = linspace(tstart, tdipV3, fs);
f = 50;
U1 = 230;
U2 = 0.7*U1;
MyVoltage1 = U1*sin(2*pi*f*t1V1);
MyVoltage2 = U1*sin(2*pi*f*t1V2 + 2*pi/3);
MyVoltage3 = U1*sin(2*pi*f*t1V3 - 2*pi/3);
t2V1 = linspace(tdipV1, tfinal, fs);
t2V2 = linspace(tdipV2, tfinal, fs);
t2V3 = linspace(tdipV3, tfinal, fs);
MyPerturbation1 = U2*sin(2*pi*f*t2V1);
MyPerturbation2 = U2*sin(2*pi*f*t2V2 + 2*pi/3);
MyPerturbation3 = U2*sin(2*pi*f*t2V3 - 2*pi/3);
plot(t1V1, MyVoltage1, 'r', t1V2, MyVoltage2, 'b', t1V3, MyVoltage3, 'g' , t2V1, MyPerturbation1, 'r', t2V2, MyPerturbation2, 'b', t2V3, MyPerturbation3,'g')
grid on
xlabel('t')
ylabel('V')
title('Voltage Dip around 500 s');

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by