Programming project

السلام عليكم ورحمة الله وبركاته

هل استطيع برمج دائره كهربيه في الماتلاب بشكل عام دون تحديد قيم العناصر

واذا انتهيت من البرمجه
ادخل القيم

وشكرا

كيف سنعرف انك تستطيع تبرمج دائرة كهربية ؟؟
يرجى توضيح السؤال اكثر


هذي الدائره

اخى العزيز اى نظام طبيعى لابد اولا من عمل ما يسمى بالنمذجة modeling ومن ثم نقوم بعمل السميوليشن simulation

والنمذجة عبارة عن ايجاد ال transfer function لهذا النظام وهى تكون فى صورة معادلة تحكم المدخلات والمخرجات

اريد خطوات تحليل الدائره بواسطة الماتلاب واستخراج قيمة التيارات 1,2,3

وشكرا

ليس عندى فكرة عن هذا الموضوع ربما احد الاعضاء يستطيع مساعدتك

سبحان الله وبحمده عدد خلقه ورضى نفسه وزنه عرشه ومداد كلماته

سبحان الله وبحمده عدد خلقه ورضى نفسه وزنه عرشه ومداد كلماته

[CENTER]السلام عليكم

كما قال لك الاخ المدير

لحساب التيارات يجب عليك ايجاد transfer function بما ان الدارة بسيطة اظن انها ليست صعبة

هذه محاولتي، لكن
لست متاكد لا من النتيجة ولا من الطريقة
هي فقط مساعدة

اولا نقوم باعطاء اسماء لتسهيل الحساب

بحيث يكون

فيكون الحساب بالترتيب
الدائرة العلوية
الدائرة السفلية على اليمين
الدائرة السفلية على اليسار
كالاتي

وبالكتابة على شكل مصفوفة تصبح المعادلات

وهذا يعود الى حل
Z.I=V
اي نبحث على I

فاذا كنت تملك toolbox symbolic math في اصدار الماتلاب الذي تعمل عليه تستطيع استخدام الدالة
solve

لكن بما ان هذه المعادلات خطية، وعدد المجاهيل يساوي عدد المعادلات تستطيع استخدام قسمة المصفوفات بشكل عادي
I=Z\V

الكود

clear all
clc
close all


Z_1=4;
Z_2=2j;
Z_3=-3j;
Z_4=1;
Z_5=8;
Z_6=10;
Z_7=-5j;
V=20;
I_4=-4j;

Z=[Z_1+Z_2+Z_3+Z_4+Z_5, -(Z_3+Z_4), -Z_5;...
    -(Z_3+Z_4), Z_3+Z_4+Z_6+Z_7, -1;...
    -Z_5, -1, Z_5];

V=[0;-I_4;V+I_4];

I=Z\V

والحل يكون

I =

   4.3986 - 0.6425i
   1.0410 - 0.2439i
   7.0287 - 1.1729i

وهي قيم التيارات I1، I2 و I3

اكرر

لست متاكد لا من النتيجة ولا من الطريقة
[/center]

وعليكم السلام

هذي هي المعادلات

 % this program determines the current
% it computes the loop currents given the impedance
% matrix Z and voltage vector V
% Z is the impedance matrix
% V is the voltage matrix
% initialize the matrix Z and vector V
Z = [(Z_1+Z_12+Z_13) -Z_12 -Z_13;
Z_1 Z_2 Z_3;
0 1 -1];
V = [(E_12+E_13-E_1) (E_3-E_1-E_2) I_s]';
% solve for the loop currents
I = inv(Z)*V;
??? Undefined function or variable 'Z_1'.
 

كيف احدد المتغيرات
وشكرا

[CENTER]هذا الكتاب سيساعدك

Circuit Analysis I With MATLAB Applications
[/center]

مشكور

طيب كيف اعرف المتغيرات

[SIZE=4] % this program determines the current % it computes the loop currents given the impedance % matrix Z and voltage vector V % Z is the impedance matrix % V is the voltage matrix % initialize the matrix Z and vector V Z = [(Z_1+Z_12+Z_13) -Z_12 -Z_13; Z_1 Z_2 Z_3; 0 1 -1]; V = [(E_12+E_13-E_1) (E_3-E_1-E_2) I_s]'; % solve for the loop currents I = inv(Z)*V; ??? Undefined function or variable 'Z_1'.[/size]

جزاك الله خيرا DzArticles على مجهودك الرائع

طيب وشلون اكتب البرنامج المعادلات عندي

المعادلات موجوده وكتبتها بالماتلاب
بس كيف اكتب البرنامج
ابي اذا فتحت البرنامج يطلع لي ادخل قيم المقاومات والفولتات

[LEFT][COLOR=#000000]

[/color][/left]
انا اريد ان اكتب البرنامج ماهي الاوامر
مثل اول ماافتح البرنامج يقول لي ادخل قيمة Z_1, Z_2, … etc
بعدين يطلع لي قيم التيارات I1,I2,I3

هذه المتغيرات اختياريه تحددها كما تشاء وتجد الخرج المقابل لها

انا اريد ان اعمل لها انترفيس
يقول لي ادخل قيم المتغيرات ويعطيني المخرجات
بدون ان ادخل الكود مره اخرى او يفتح الماتلاب
وشكرا

[CENTER]ان تصنع برنامجا مستقلا عن الماتلاب ويشتغل دون ان تفتح الماتلاب ليس بالامر السهل والبسيط

اما اذا تريد انترفيس
فيمكنك تحويل الكود السابق الى function واستخدامها في الانترفيس
لكن يبقى محدودا طبعا وتستطيع استخدامه على هذه الدارة لا غير
ونستطيع القول ان لا معنى له

اما اذا تريد برنامج يعمل على جميع الدارت فذلك ليس بالامر البديهي ويتطلب الكثير من العمل


كتابة الكود على شكل function

function [I]=circuito(Z_1,Z_2,Z_3,Z_4,Z_5,Z_6,Z_7,V,I_4)
Z=[Z_1+Z_2+Z_3+Z_4+Z_5, -(Z_3+Z_4), -Z_5;...
    -(Z_3+Z_4), Z_3+Z_4+Z_6+Z_7, -1;...
    -Z_5, -1, Z_5];

V=[0;-I_4;V+I_4];

I=Z\V;

اضافة انترفيس

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

ستجد 3 ملفات في المرفق
ملف ال function
circuito.m
ملفين الواجهة
circuitoInter.m
circuitoInter.fig

ضعها جميعها في مستند الماتلاب الرئيسي وشغل بعد ذلك
circuitoInter.m

في الاخير اكرر اني
لا ارى اي فائدة ترجى من برنامج مثل هذا النوع

مادام يطبق على دارة واحدة فقط

[/center]

function [I]=circuito(Z_1,Z_2,Z_3,Z_12,Z_13,E_1,E_2,E_3,E_12,E_13,I_s)
Z=[Z_1+Z_12+Z_13,-Z_12,-Z_13;...
    Z_1,Z_2,Z_3;...
    0,1,-1];

V=[E_12+E_13-E_1;E_3-E_1-E_2;Vr+I_s];

I = inv(Z)*V;

هل استطيع ان اجعل المدخلات بنفس اسمائها بالدائره الاصليه

وشكرا