دراسـة الـحـالـة الـمـسـتـقـرة

تحليل الدارات الكهربائية في الحالة المستقرة


تحليل دارات التيار المستمر
فيما يلي سنعتمد على الطرائق المختلفة المعتمدة في حساب التيارات والتوترات في دارات التيار المستمر, ومن ثم سنعتمد على برنامج الماتلاب من أجل حل التوابع المعقدة التي يصعب الوصول لنتائجها بدون الحاسب.
يمكنكم الاطلاع على مقدمة في تحليل دارات التيار المستمر و نظرية كيرشوف في تحليل الدارات في الفيديو المرفق. 
المصدر : MIT circuit course.


تحليل نقاط الدارة (قانون كيرشوف الأول)
Y11V1 + Y12V2 + …….+ Y1mVm = I1
Y21V1 + Y22V2 + …….+ Y2mVm = I2
Ym1V1 + Ym2V2 + …….+ YmmVm = Im

مثال :
المطلوب إيجاد كمونات العقد للدارة المبينة بالشكل التالي :
 

ويكون الكود البرمجي الذي نكتبه في الماتلاب كملف M-file كالتالي :
clc
clear
Y=[0.15 -0.1 -0.05; -0.1 0.145 -0.025; -0.05 -0.025 0.075];
I=[5; 0; 2];
fprintf('Nodal Voltages V1, V2 and V3 are: \n')
v=inv(Y)*I
النتائج التي حصلنا عليها بعد التطبيق :
Nodal Voltages V1, V2 and V3 are:
تحليل حلقات الدارة (قانون كيرشوف الثاني)
Z11I1 + Z12I2 + Z13I3 + ….. + Z1nIn = V1
Z21I1 + Z22I2 + Z23I3 + ….. + Z2nIn = V2
Zn1I1 + Zn2I2 + Zn3I3 + ….. + ZnnIn = Vn

مثال :
المطلوب حساب قيمة التيار المار عبر المقاومة RB ومن ثم إيجاد الاستطاعة التي يؤمنها منبع الجهد (10v) , وذلك للدارة الموضحة بالشكل الموضح .
بتحليل الحلقات كما يبين الشكل التالي : 



ويكون الكود البرمجي الذي نكتبه في الماتلاب كملف M-file كالتالي :
clear
clc
Z=[40 -10 -30; -10 30 -5; -30 -5 65];
V=[10; 0; 0];
I=inv(Z)*V;
IRB=I(3)-I(2);
fprintf('The current through R is %8.10f Amps \n', IRB)
PS=I(1)*10;
fprintf('The Power supplied by 10V source is %8.10f watts \n', PS)
النتائج التي حصلنا عليها بعد التطبيق :
The current through R is 0.0370370370 Amps
The Power supplied by 10V source is 4.7530864198 watts


لنفرض لدينا منبع الجهد المبين بالشكل الموضح حيث Rs مقاومة منبع الجهد و RL الحمل.
باستخدام مجزئ الجهد نجد أن :

وللحصول على القيمة مقاومة الحمل التي تعطينا القيمة الأعظمية للطاقة نشتق معادلة الاستطاعة الأخيرة بالنسبة للمقاومة ونجعل الناتج مساوي للصفر فنجد : 



وبتبسيط العلاقة الأخيرة بعد جعلها مساوية للصفر نجد : RL = Rs
ويمكن استخدام الماتلاب لمراقبة تغيير الجهد وتبديد الطاقة  في الحمولة وذلك تبعاً لقيمة مقاومة الحمل.
find التابع

 يستخدم هذا التابع لتحديد قيم العناصر من المصفوفة التي قيمها لا تساوي الصفر


مثال :
في الدارة الأخيرة لنفرض أن قيمة مقاومة الحمل تتغير من 0 إلى 50 كيلواوم , والمطلوب رسم تغييرات الاستطاعة في الحمل , حدد الاستطاعة العظمى على الحمل عندما .RL=10K
الكود البرمجي الذي نكتبه في الماتلاب كملف M-file كالتالي :
clc
clear
vs=10;    rs=10e3;       rl=0:1e3:50e3;
k=length(rl);
for i=1:k
    pl(i) = ((vs/(rs+rl(i)))^2)*rl(i);
end
dp=diff(pl)./diff(rl);
rld=rl(2:length(rl));
prod=dp(1:length(dp)-1).*dp(2:length(dp));
crit_pt=rld(find(prod<0));
max_power=max(pl);
fprintf('Maximum Power occurs at %8.3f ohms  \n', crit_pt)
fprintf('Maximum Power dissipation is %8.5f Watts  \n', max_power)
plot(rl,pl,'r-*')
title('Power delivered to load')
xlabel('load resistance in Ohms')
ylabel('Power in Watts')
النتائج التي حصلنا عليها بعد التطبيق :
Maximum Power occurs at 10000.000 ohms
Maximum Power dissipation is  0.00250 Watts

في هذه الجلسة سندرس دارات التيار المتناوب وسنستعين بالتكامل العددي للحصول على القيم الوسطية للاستطاعة. سنتطرق بعد ذلك لتحليل الدارات ثلاثية الطور وذلك بتحويلها لمجال التردد ومن ذلك الاستعانة بقوانين كيرشوف لحل الدارة. ولما سبق سنعتمد على المصفوفات من أجل حسابات التوترات والتيارات. وسنستعين بتوابع كثيرة في الماتلاب سيكون لها دور كبير في تسهيل الحسابات.

دراسة الحالة المستقرة لدارات التيار المتناوب


متوسط الطاقة :
 

quad & quad8 التوابع
يوفر الماتلاب هذين التابعين من أجل إجراء التكامل لأي تابع والصيغة العامة للتابعين هي :
 
 quad(ˈfunctˈ,a,b,tol,trace)
quad8(ˈfunctˈ,a,b,tol,trace)
حيث :

اسم التابع كما تم تعريفه في الماتلاب
funct
القيمة الحدية الدنيا للتكامل
a
القيمة الحدية العليا للتكامل
b
حدود التأرجح المسموح بها من أجل الدقة ولها قيمة افتراضية
tol
لتفعيل إمكانية رسم التكامل ويمكن تفعيلها بوضع أي قيمة غير مساوية للصفر حيث أن القيمة صفر هي الافتراضية
trace

مثال :
 v(t) = 10.cos(120 t + 30)        i(t) = 6.cos(120 t + 60)
والمطلوب تحديد القيمة الوسطية للطاقة والقيمة اللحظية للتوتر وكذلك معامل الاستطاعة وذلك بالطريقتين التحليلية والرياضية.
من أجل ذلك نكتب الكود البرمجي التالي في ملف M-file كالتالي :
clc
T=2*pi/(120*pi);
a=0;
b=T;
x=0:0.02:1;
t=x.*b;
v_int=quad('voltage1',a,b);
v_rms=sqrt(v_int/b);
i_int=quad('current1',a,b);
i_rms=sqrt(i_int/b);
p_int=quad('inst_pr',a,b);
p_ave=p_int/b;
pf=p_ave/(i_rms*v_rms);
p_ave_an=(60/2)*cos(30*pi/180);
v_rms_an=10/sqrt(2);
pf_an=cos(30*pi/180);
fprintf('Average power, analytical: %f \n average power, numerical: %f \n', p_ave_an, p_ave)
fprintf('rms power, analytical: %f \n rms power, numerical: %f \n', p_ave_an, p_ave)
fprintf('Power vactor, analytical: %f \n power factor, numerical: %f \n', pf_an, pf)

نلاحظ في البرنامج أننا استخدمنا عدة توابع ولذلك لابد من كتابتها في ملفات خاصة بها وهي كالتالي (يكتب كل تابع في ملف لوحده)
function vsq=voltage1(t)
vsq=(10*cos(120*pi*t + 60*pi/180)).^2;
end

function isq=current1(t)
isq=(6*cos(120*pi*t+30*pi/180)).^2;
end

function pt=inst_pr(t)
it=6*cos(120*pi*t+30*pi/180);
vt=10*cos(120*pi*t+60*pi/180);
pt=it.*vt;
end
النتائج التي حصلنا عليها بعد التطبيق :
Average power, analytical: 25.980762
average power, numerical: 25.980762
rms power, analytical: 25.980762
rms power, numerical: 25.980762
Power vactor, analytical: 0.866025
power factor, numerical: 0.866025

وبالتالي نجد أنه باستخدام الطريقة التحليلية أو الرقمية فإن النتائج ستكون متشابهة تماماً.

دارات التيار المتناوب الأحادية والثلاثية الطور
مثال (1)
لتكن لدينا الدارة الموضحة بالشكل:



والمطلوب حساب طويلة وزاوية توتر الخرج.


وبعد ترتيب عناصر المعادلات الثلاثة الأخيرة وإعادة تنسيقها نحصل على المصفوفة  التالية :
 
 
برنامج حل المصفوفة :
clc
clear
Y=[0.05-0.0225*j 0.025*j -0.0025*j; 0.025*j 0.01-0.0375*j 0.0125*j; -0.0025*j 0.0125*j 0.02-0.01*j];
c1=0.4*exp(pi*15*j/180);
I=[c1; 0; 0];
V=inv(Y)*I;
v3_abs=abs(V(3));
v3_ang=angle(V(3))*180/pi;
fprintf('Voltage V3, magnitude : %f \nvoltage V3, angle in degree : %f \n', v3_abs,v3_ang)

النتائج التي حصلنا عليها بعد التطبيق :
Voltage V3, magnitude : 1.850409
voltage V3, angle in degree : -72.453299
v3(t) =1.85cos(10t – 72.45) v

مثال (2)
ليكن لدينا النظام غير المتوازن المبين بالشكل التالي:
والمطلوب حساب التوترات الطورية VAN , VBN  , VCN .
باستخدام قانون كيرشوف نجد : 
برنامج الماتلاب :
clc
clear
Z=[6-13*j 0 0; 0 4+2*j 0; 0 0 6-12.5*j];
c2=110*exp(j*pi*(-120/180));
c3=110*exp(j*pi*(120/180));
V=[110; c2; c3];
I = inv(Z)*V;
Van=(5+12*j)*I(1);
Vbn=(3+4*j)*I(2);
Vcn=(5-12*j)*I(3);
Van_abs=abs(Van);
Van_ang=angle(Van)*180/pi;
Vbn_abs=abs(Vbn);
Vbn_ang=angle(Vbn)*180/pi;
Vcn_abs=abs(Vcn);
Vcn_ang=angle(Vcn)*180/pi;
fprintf('Phasor voltage Van, magnitude : %f \nphasor Voltage Van, angle in degree : %f \n', Van_abs, Van_ang)
fprintf('Phasor voltage Vbn, magnitude : %f \nphasor Voltage Vbn, angle in degree : %f \n', Vbn_abs, Vbn_ang)
fprintf('Phasor voltage Vcn, magnitude : %f \nphasor Voltage Vcn, angle in degree : %f \n', Vcn_abs, Vcn_ang)


النتائج التي حصلنا عليها بعد التطبيق :
Phasor voltage Van, magnitude : 99.875532
phasor Voltage Van, angle in degree : 132.604994
Phasor voltage Vbn, magnitude : 122.983739
phasor Voltage Vbn, angle in degree : -93.434949
Phasor voltage Vcn, magnitude : 103.134238
phasor Voltage Vcn, angle in degree : 116.978859


الشكل يبين شبكة خطية لها دخل x(t) وخرج y(t) .
 

يمكن تمثيل هذه الدخل والخرج في هذه الشبكة بالمعادلة التفاضلية التالية :



حيث :

بالانتقال إلى مستوي لابلاس تصبح المعادلة التفاضلية



وبالتالي فإن التابع الذي يعبر عن الشبكة الخطية يكون بالشكل :


وبإعادة ترتيب تابع الشبكة نحصل على الشكل التالي :

حيث :


مثال (1)

من أجل تفريق الكسر المبين نكتب مايلي : 
num=[4 3 6 10 20];
den=[1 2 5 2 8];
[r,p,k]=residue(num,den)
النتائج التي حصلنا عليها عند تنفيذ البرنامج :


ويمكن العودة بشكل معاكس للتابع الأصلي بكتابة :
[num,den] = residue[r,p,k]
وستكون النتيجة في نسقين منفصلين , الأول يمثل معاملات كثير الحدود (البسط) والثاني معاملات كثير الحدود (المقام).


مثال (2)
للدارة المبينة بالشكل : 

1-  أوجد تابع الشبكة  H(s .
2-  أوجد أقطاب ورواسب تابع الشبكة .
3-  إذا كانت المعادلة الممثلة لمنبع التغذية معطاة بالشكل : 
فأوجد المعادلة الممثلة للخرج vo.

الحل :
بالانتقال للمستوي اللابلاسي تصبح عناصر الدارة كالتالي :

تذكر أن :

والآن سنستخدم البيئة البرمجية (ماتلاب) من أجل إيجاد الأقطاب والرواسب للتابع
clear
clc
num=[4 6 0];
den=[6 25 30 9];
disp('The zeros are : ')
z=roots(num)
disp('The poles are : ')
p=roots(den)
s1=-3+2*j;
n1=polyval(num,s1);
d1=polyval(den,s1);
vo=10*exp(j*pi*(40/180))*n1/d1;
vo_abs=abs(vo);
vo_ang=angle(vo)*180/pi;
fprintf('phasor voltage vo, magnitude : %f \nphasor voltage vo, angle in degrees : %f \n' , vo_abs, vo_ang)
النتائج التي حصلنا عليها بعد التطبيق :
The zeros are :
z =
         0
-  1.5000

The poles are :
p =
-   2.2153
-   1.5000
-   0.4514
phasor voltage vo, magnitude : 3.453492
phasor voltage vo, angle in degrees : -66.990823

وبالنتيجة يكون الخرج :
الاستجابة الترددية
تعطى الصيغة العامة لتابع النقل لإشارة تمثيلية بالمعادلة :

توابع نقل شهيرة :
-         مرشح تمرير منخفض 



-         مرشح تمرير مرتفع
-         مرشح تمرير مجال

-         مرشح منع مجال

حيث :
 


الاستجابة الترددية هي استجابة الشبكة لإشارة الدخل الجيبية , فإذا استبدلنا s=jw في تابع الشبكة نحصل على :
حيث :

وبرسم تغيرات  بالنسبة للتردد نحصل على الاستجابة الترددية للطويلة وكذلك برسم تغيرات  بالنسبة للتردد نحصل على الاستجابة الترددية للطور.
ويمكننا الحصول على هذه الميزات باستخدام تابع شهير في الماتلاب هو : freqs والذي تعطى الصيغة العامة له بالشكل :
hs = freqs(num,den,range)

حيث :
num = [bm bm-1 ……. b1 b0]
den = [an an-1 ……. a1 a0]
range  : مجال التردد للحالة المدروسة
   hs :  الاستجابة الترددية بالصيغة العقدية

مثال :
من أجل الدارة المبينة بالشكل :

1-  بين أن تابع النقل يعطى بالشكل :
2-   إذا علمنا أن L = 5H, C =1.12µf, and R = 10000Ω بين شكل الاستجابة الترددية.
3-   إذا جعلنا قيمة المقاومة R = 100Ω ما التغير الذي سيحدث , بين بالرسم.

والآن سنستعين بالماتلاب من أجل الرسم :
l=5;      c=1.25e-6;          r1=10000;            r2=100;
num1=[r1/l 0];           
den1=[1 r1/l 1/(l*c)];
w=logspace(1,4);
h1=freqs(num1,den1,w);
f=w/(2*pi);
mag1=abs(h1);
phase1=angle(h1)*180/pi;

num2=[r2/l 0];
den2=[1 r2/l 1/(l*c)];
h2=freqs(num2,den2,w)
mag2=abs(h2);
phase2=angle(h2)*180/pi;

subplot(2,2,1)
loglog(f,mag1,'.')
title('magniture response R=10K')
ylabel('magnitude')

subplot(2,2,2)
loglog(f,mag2,'.')
title('magniture response R=1K')
ylabel('magnitude')

subplot(2,2,3)
semilogx(f,phase1,'.')
title('phase response R=10K')
xlabel('Frequency,Hz')
ylabel('angle in fegrees')

subplot(2,2,4)
semilogx(f,phase2,'.')
title('phase response R=1K')
xlabel('Frequency,Hz')
ylabel('angle in fegrees')