السلام عليكم ورحمة الله وبركاته
هل استطيع برمج دائره كهربيه في الماتلاب بشكل عام دون تحديد قيم العناصر
واذا انتهيت من البرمجه
ادخل القيم
وشكرا
السلام عليكم ورحمة الله وبركاته
هل استطيع برمج دائره كهربيه في الماتلاب بشكل عام دون تحديد قيم العناصر
واذا انتهيت من البرمجه
ادخل القيم
وشكرا
كيف سنعرف انك تستطيع تبرمج دائرة كهربية ؟؟
يرجى توضيح السؤال اكثر
اخى العزيز اى نظام طبيعى لابد اولا من عمل ما يسمى بالنمذجة modeling ومن ثم نقوم بعمل السميوليشن simulation
والنمذجة عبارة عن ايجاد ال transfer function لهذا النظام وهى تكون فى صورة معادلة تحكم المدخلات والمخرجات
ليس عندى فكرة عن هذا الموضوع ربما احد الاعضاء يستطيع مساعدتك
سبحان الله وبحمده عدد خلقه ورضى نفسه وزنه عرشه ومداد كلماته
سبحان الله وبحمده عدد خلقه ورضى نفسه وزنه عرشه ومداد كلماته
[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'.
كيف احدد المتغيرات
وشكرا
مشكور
طيب كيف اعرف المتغيرات
[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]
طيب وشلون اكتب البرنامج المعادلات عندي
المعادلات موجوده وكتبتها بالماتلاب
بس كيف اكتب البرنامج
ابي اذا فتحت البرنامج يطلع لي ادخل قيم المقاومات والفولتات
[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;
هل استطيع ان اجعل المدخلات بنفس اسمائها بالدائره الاصليه
وشكرا