Angles in Sine/Cosine swap
3 views (last 30 days)
Show older comments
Hi folks, Using MATLAB 2011b. I have a code in which I have equations with symbolic variables. Now, when I am setting up a sin or cosine function, it keeps switching the two angles. How do I stop that from happening? Here is an example:
What I want: y=sin(del_5-del_3)
What MATLAB stores: y=sin(del_3-del_5)
It is important that the two angles remain where they are so I am not sure what I can do to fix it. Any help will be much appreciated!
Code (Please note that I am still working on it so its incomplete). The sines and cosines can be seen in the "Equations Setup" section with the for loops
clear all
clc
%%Initialization
% Bus Voltages and angles
V1=1.03;
V2=1.03;
del_V1=0;
% Transformer 4 changes
T4_init = (0.01+0.11i)*25/36;
t=12.9/13.8;
T4=(1/T4_init)*t;
s79=(1/T4_init)*(t^2-t);
s97=(1/T4_init)*(1-t);
% Impedance Table
L1=0.008+0.08i;
L2=0.005+0.05i;
L3=0.008+0.08i;
L4=0.005+0.04i;
L5=0.005+0.05i;
L6=0.005+0.5i;
T1=(0.01+0.09i)/5;
T2=(0.006+0.06i)/5;
T3=(0.01+0.11i)*25/36;
L=[0 1/L2 1/L1 0 0 0 0 0 0;
1/L2 0 0 1/L3 0 0 0 0 0;
1/L1 0 0 1/L4 1/T1 0 0 0 0;
0 1/L3 1/L4 0 0 0 0 1/T2 0;
0 0 1/T1 0 0 1/L5 0 0 0;
0 0 0 0 1/L5 0 1/T3 0 0;
0 0 0 0 0 1/T3 0 0 T4;
0 0 0 1/T2 0 0 0 0 1/L6;
0 0 0 0 0 0 T4 1/L6 0];
S=[0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 0 0 s79;
0 0 0 0 0 0 0 0 0;
0 0 0 0 0 0 s97 0 0];
% Load Conditions
LoadA_4 = 400-100i;
LoadA_7 = 60+10i;
LoadA_9 = 50+20i;
LoadB_4 = 500-200i;
LoadB_7 = 80+10i;
LoadB_9 = 100+20i;
LoadC_4 = 600-200i;
LoadC_7 = 100+10i;
LoadC_9 = 200-20i;
if true
% code
end
% Unknowns
syms V3; syms V4; syms V5; syms V6;
syms V7; syms V8; syms V9;
syms del_V2; syms del_V3; syms del_V4; syms del_V5;
syms del_V6; syms del_V7; syms del_V8; syms del_V9;
% Other Setup variables
syms V
syms del
syms g_P
V=[V1;V2;V3;V4;V5;V6;V7;V8;V9];
del=[del_V1;del_V2;del_V3;del_V4;del_V5;del_V6;del_V7;del_V8;del_V9];
%%Equations Setup
for i=1:1:9
for j=1:1:9
g_P(i,j)=(real(L(i,j))*V(i)^2)-(real(L(i,j))*V(i)*V(j)*cos(del(i)-del(j)))+(-imag(L(i,j))*V(i)*V(j)*sin(del(i)-del(j)));
g_Q(i,j)=-(imag(S(i,j))*V(i)^2)+(-imag(L(i,j))*V(i)^2)-(real(L(i,j))*V(i)*V(j)*sin(del(i)-del(j)))-(-imag(L(i,j))*V(i)*V(j)*cos(del(i)-del(j)));
end
end
g(1,1)=4.5-g_P(2,1)-g_P(2,4); % Node 2 Real
g(2,1)=g_P(3,1)+g_P(3,4)+g_P(3,5); % Node 3 Real
g(3,1)=g_P(4,2)+g_P(4,3)+g_P(4,8); % Node 4 Real
g(4,1)=g_P(5,3)+g_P(5,5); % Node 5 Real
g(5,1)=g_P(6,5)+g_P(6,7); % Node 6 Real
g(6,1)=g_P(7,6)+g_P(7,9); % Node 7 Real
g(7,1)=g_P(8,4)+g_P(8,9); % Node 8 Real
g(8,1)=g_P(9,8)+g_P(9,7); % Node 9 Real
g(9,1)=g_P(3,1)+g_P(3,4)+g_P(3,5); % Node 3 Imaginary
g(10,1)=g_P(4,2)+g_P(4,3)+g_P(4,8); % Node 4 Imaginary
g(11,1)=g_P(5,3)+g_P(5,5); % Node 5 Imaginary
g(12,1)=g_P(6,5)+g_P(6,7); % Node 6 Imaginary
g(13,1)=g_P(7,6)+g_P(7,9); % Node 7 Imaginary
g(14,1)=g_P(8,4)+g_P(8,9); % Node 8 Imaginary
g(15,1)=g_P(9,8)+g_P(9,7); % Node 9 Imaginary
%%Solution
1 Comment
Answers (1)
Image Analyst
on 30 Nov 2014
Here is your code:
g_Q(i,j)=-(imag(S(i,j))*V(i)^2)+(-imag(L(i,j))*V(i)^2)-(real(L(i,j))*V(i)*V(j)*sin(del(i)-del(j)))-(-imag(L(i,j))*V(i)*V(j)*cos(del(i)-del(j)));
I see that it does the subtraction of the del array elements twice in that equation: del(i)-del(j). You say you want to add them instead. So just change your equation so that it uses del(i)+del(j):
g_Q(i,j)=-(imag(S(i,j))*V(i)^2)+(-imag(L(i,j))*V(i)^2)-(real(L(i,j))*V(i)*V(j)*sin(del(i)+del(j)))-(-imag(L(i,j))*V(i)*V(j)*cos(del(i)+del(j)));
Do the same thing for the g_P equation.
6 Comments
Image Analyst
on 30 Nov 2014
It doesn't . There is a problem in your code somewhere and you will discover it by breaking the equation down into simpler terms and inspecting them, like I suggested. Did you do that yet? Learn how to do that here.
See Also
Categories
Find more on Number Theory in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!