انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمودارهای P-V و P-I پنل خورشیدی

نمودارهای P-V و P-I پنل خورشیدی

#1
Video 
این شبیه سازی که در محیط سیمولینک انجام گرفته ،ماژول خورشیدی توسط روابط ریاضی (بلوک های کنترلی )ساخته شده است (این بلوک به درستی کار میکند و از روی مقاله ساخته شده است).ورودی های این ماژول شامل یک اطلاعات اولیه :مقاومت موازی ،مقاومت سری ،ضریب ایده آلی دیود،...است که در داخل فایل(pv_model_example_(15x2array  قرار داده شده است که باید در ابتدای کار اجرا شود ،ورودی های دیگر که باید تنظیم شوند تابش و درجه حرارت هستند که تابش از مقدار نرمال 1000w/m2 تا 0 و دما نیز بر حسب کلوین است که در فایل اصلی به صورت دو ثابت به باکس اعمال شده اند ،نمودارهایی که برای سیستم های حورشیدی رسم می شوند نمودارهای P-V وV-I هستند (V بر روی محور افقی ).
نمونه های واقعی شامل 10-20 ماژول سری شده هستند ،در صورتی که بخواهیم تابش های مختلف را برای تک تک ماژول ها رسم کنیم(1000-1000-900... ،1000-500-300-...)این کار نیاز به تغییر دستی مقدار تابش دارد که با توجه به تعدادحالت های ممکن برای مثلا سه ماژول(10*9*8+(30))طولانی خواهد بود .روشی برای حل این مشکل نیست ،مثلا ورودی که با زمان تغییر کند ؟اما این کار نیز نتیجه نداد.
فایل pv_model_example_(15x2array) شمل اطلاعات اولیه ماژول هست
فایل pv_model_subsystem_simulink_R2006b فایل اصلی شامل ماژول و بلوک هایی برای رسم نمودار است 
فایل Untitled ام فایل رسم نمودار می باشد ،البته محورها باید تنظیم شود 
فایل ورد شامل نونه منحنی ها برای فایل ضمیمه شده است.


فایل‌های پیوست

دانلود Untitled.m

نام فایل Untitled.m
نوع فایل .m
دفعات دانلود 305
اندازه 126 بایت
ارسال کننده فایل mvedadim

دانلود pv_model_subsystem_simulink_R2006b.mdl

نام فایل pv_model_subsystem_simulink_R2006b.mdl
نوع فایل .mdl
دفعات دانلود 299
اندازه 60.35 KB
ارسال کننده فایل mvedadim

دانلود Doc.docx

نام فایل Doc.docx
نوع فایل .docx
دفعات دانلود 274
اندازه 19.92 KB
ارسال کننده فایل mvedadim

دانلود pv_model_example_(15x2array).mat

نام فایل pv_model_example_(15x2array).mat
نوع فایل .mat
دفعات دانلود 298
اندازه 124.53 KB
ارسال کننده فایل mvedadim
پاسخ

نمودارهای P-V و P-I پنل خورشیدی

#2
سلام دوست عزیز.
قبل از هر چیز، از توضیحات کاملتون متشکرم. 
این طور که من متوجه شدم، شما یک مدل سیمولینک دارید که یک تعداد ورودی میگیره، سپس سیمولینک شبیه سازی باید بشه و در آخر، بر اساس اطلاعات شبیه سازی سیمولینک، شکل هایی رو رسم می کنیم.
از توضیحات شما، نتیجه می گیرم که مشکل اینجاست که یک پارامتر سیمولینک را باید دستی وارد کنیم و چون تعداد حالات شبیه سازی زیاده، عملا به مشکل بر می خوریم.
راه حلی که به ذهن من میرسه، اینه که در یک m-file ، برنامه ای بنویسیم که شامل یک حلقه باشد که مقادیری که باید در سیمولینک وارد می کردیم را از یک بردار خوانده (در هر گام حلقه، یک مقدار مورد نیاز) و توسط یک سری کد، به سیمولینک بدهد (در ادامه می گویم چگونه). سپس با دستور sim که برای شبیه سازی simulink به کار می رود، مدل را شبیه سازی کرده تا خروجی های آن محاسبه گردد. سپس دستورات رسم شکل، شکل مورد نظرمان را رسم می کنند (در هر گام حلقه). یا می توانید خروجی های هر گام حلقه را در بخشی از یک ماتریس بزرگ ذخیره کنید تا بعدا مورد استفاده قرار گیرد.
همان طور که گفتم، برای شبیه سازی یک مدل سیمولینک، بدون نیاز به باز کردن فایل مدل آن و تنها توسط کد، باید از دستور sim استفاده کنید. توضیحات آن را در help متلب بخوانید.
اما می ماند این مورد که چگونه ورودی هایی که دستی درون سیمولینک تعریف می کردیم را با یک سری کد به آن بدهیم. برای این منظور، قبلا یک مبحث نوشته شده است، توصیه می کنم آن را بخوانید :

http://www.kelidestan.com/matlab/matlab-174.php

امیدوارم این توضیحاتی که دادم، مشکلتون رو حل کنه.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ
 سپاس شده توسط mvedadim

نمودارهای P-V و P-I پنل خورشیدی

#3
سلام،
من می خوام برنامه ای بنویسم که تمام حالات ممکن برای تابش ورودی یک سری پنل خورشیدی که سری شده اند را تولید کند،به دلیل سری شدن این پنل ها حالات تکراری باید حذف بشوند(بسیا مهم:***یعنی اینکه از سه ماژول سری با تابش های 1000-1000-800 فرقی با حالت 800-1000-1000 یا 1000-800-1000 نمی کنه و تکراری محسوب می شوند ).
حالات ممکن:1000-1000-1000     800-1000-1000  600-1000-1000  400-1000-1000  200-1000-1000  800-800-1000  600-800-1000  400-800-1000  200-800-1000  600-600-1000         400-600-1000  200-600-1000  400-400-1000  200-400-1000  200-200-1000  800-800-800  600-800-800  400-800-800  200-800-800            600-600-800 800- ....

کد زیر البته نصفه است ،اما سئوالم اینه که برای ذخیره اطلاعات به صورت بالا در هر iteration که شامل اطلاعات برای هر سه پنل باشد چه باید کرد که در هر حلقه اطلاعات پاک نشه؟


کد:
clc;
clear;
close all;

A(1)=1000;
B(1)=1000;
C(1)=1000;
o=0;
for i=1:9
A(i+1)=A(i)-100;

for j=1:9
B(j+1)=B(j)-100;

for k=1:9
C(k+1)=C(k)-100;


end

end

end


با تشکر
 
پاسخ

نمودارهای P-V و P-I پنل خورشیدی

#4
از یک ماتریس چند بعدی استفاده کنید و در آن، نتایج هر مرحله را ذخیره نمایید.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

نمودارهای P-V و P-I پنل خورشیدی

#5
سلام،
همان طور که از  پست های قبلی اطلاع دارید ،من دارم یک آرایه خورشیدی را که شامل چند پنل به صورت سری است را به ازای تابش های متفاوت شبیه سازی می کنم.
مشکل تولید اعداد حل شد و کد به صورت زیر است:

کد:
clc;
clear;
close all;


A(1)=1000;
B(1)=1000;
C(1)=1000;
o=1;

for i=1:10
A(i+1)=A(i)-100;

for j=i:10
B(j+1)=B(j)-100;

for k=j:10
C(k+1)=C(k)-100;

Q{o}=[A(i) B(j) C(k)];
o=o+1;

end

end

end

برای فرستادن اطلاعات هم که از دستور sim استفاده می کنیم و کد ها به صورت زیر می شوند:

کد:
clc;
clear;
close all;

load modelexample;

A(1)=1000;
B(1)=1000;
C(1)=1000;
o=1;

for i=1:10
A(i+1)=A(i)-100;

for j=i:10
B(j+1)=B(j)-100;

for k=j:10
C(k+1)=C(k)-100;
L1=A(i);
L2=B(j);
L3=C(k);
simout=sim('pv_model_subsystem_simulink_R2006b');
Q{o}=[L1 L2 L3];
o=o+1;

end

end

end

اما با اجرای برنامه خطای Algebraic state in algebraic loop containing 'pv_model_subsystem_simulink_R2006b/PV model
subsystem3/Product1' computed at time 0.0 is Inf or NaN.  There may be a singularity in the
solution.  If the model is correct, try reducing the step size (either by reducing the
fixed step size or by tightening the error tolerances)
ظاهر می شود ،البته با تغییر پله ها نیز مشکل حل نمی شود.جالب اینجاست که در صورت اجرای دستی ،یعنی لود اطلاعات و گذاشتن اعداد اجرا می شود.لطفا راهنمایی کنید.
 


فایل‌های پیوست

دانلود module.m

نام فایل module.m
نوع فایل .m
دفعات دانلود 292
اندازه 479 بایت
ارسال کننده فایل mvedadim

دانلود pv_model_subsystem_simulink_R2006b.mdl

نام فایل pv_model_subsystem_simulink_R2006b.mdl
نوع فایل .mdl
دفعات دانلود 268
اندازه 110.07 KB
ارسال کننده فایل mvedadim

دانلود modelexample.mat

نام فایل modelexample.mat
نوع فایل .mat
دفعات دانلود 263
اندازه 124.53 KB
ارسال کننده فایل mvedadim
پاسخ

نمودارهای P-V و P-I پنل خورشیدی

#6
هیچ تفاوتی بین اجرای دستی مدل سیمولینک و اجرا با کد، نباید باشه.
بنابراین حدس می زنم که در اجرای سیمولینک با کد، بخشی از اطلاعات ورودی را اشتباه تعریف کرده اید.
کدهایتان را بازبینی کنید.
همچنین، برای مواردی که هم اجرای دستی و هم اجرای با کد، جواب می دهد، ببینید که مقادیر به دست آمده، برابر هستند یا خیر.
 
bookbook 
لطفا برای درج کد، از دکمه مخصوص درج کد در ادیتور انجمن استفاده کنید.
در مورد برنامه نویسی، مدیران تنها راهنمایی می کنند و نوشتن برنامه نهایی، به عهده کاربران می باشد (اینجا محلی برای یادگیری است، نه سفارش کدنویسی).
کاربران باید ابتدا خود به خطایابی برنامه بپردازند، نه اینکه به محض دیدن خطا، کدها را در انجمن، copy و paste کرده و از مدیران انتظار بررسی داشته باشند.
پاسخ

نمودارهای P-V و P-I پنل خورشیدی

#7
سلام،
با تشکر از راهنمایی هاتون در پستهای قبلی ،مشکل اجرا نشدن فایل سیمولینک از داخل ام فایل حل شد ،که به دلیل یکسان بودن اندیس یکی از حلقه ها با مقادیر تعریف شده ورودی بود .


 
پاسخ
 سپاس شده توسط شماره مجازی امارات ، تلگرام ضد فیلتر 2023


پرش به انجمن:


کاربران در حال بازدید این موضوع: 3 مهمان