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


رتبه موضوع:
  • 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
اعداد فازی

اعداد فازی

#1
سلام. من میخوام اعمال ریاضی بین سه تا عدد فازی مثلثی انجام بدم. مثلا P=(P1,P2,P3 و Q=(Q1,Q2,Q3 و V=(V1,V2,V3. برای به دست آوردن رابطهI=(P-jQ)/V تو متلب باید چه کار کنم؟ تو مقالات خوندم که مثلا P-Q=(P1-Q3,P2-Q2,P3-Q1. ممنون میشم اگه کمکم کنید.
(آیا نیازی به استفاده از توابع مثلثی مثل trimf و ... می باشد ؟)
پاسخ

اعداد فازی

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

اعداد فازی

#3
از دستور fuzarith استفاده کردم جواب داد
خدا خیرت دهد
باز اگه سوالی پیش امد می پرسم
تشکر
پاسخ
 سپاس شده توسط admin

اعداد فازی

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

اعداد فازی

#5
با سلام مجدد
اعمال ریاضی با همان دستور fuzarith درست انجام میشه فقط یه مشکلی که هست اینه که P+jQ انجام نمیشه یعنی در واقع مشکل در تشکیل عدد فازی مختلط Q است و به سادگی و ضرب کردن در j به دست نمیاد.
اگر میتونید کمکی کنید ممنون میشم
تشکر
پاسخ

اعداد فازی

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

اعداد فازی

#7
هدف به دست آوردن کانجوکیت این رابطه (P+jQ)/V)  
هست که البته با روش تکراریه و باید مثلا 20 بار این رابطه رو حساب کنیم. حالا فرض می کنیم همون یکبار این رابطه رو میخایم به دست بیاریم. ما اطلاعاتP,Q,V رو برای 32تا باس(گره، نقطه) داریم اول این پارامترها رو فازی میکنیم بعد باید رابطه رو به دست بیاریم.این jam اولی رو همینطوری بدون مختلط کردن نوشتم بعد تقسیم واینا.
بعدش به نظرم رسید از complex استفاده کنم جواباش به نظر منطقی نمیاد.
ممنون

کد:
clc
clear all
Sbase=10000000; %VA
j=sqrt(-1);
PM=[0 100 90 120 60 60 200 200 60 60 45 60 60 120 60 60 60 90 90 90 90 90 90 420 420 60 60 60 120 200 150 210 60]*1000/Sbase; % load active power
QM=[0 60 40 80 30 20 100 100 20 20 30 35 35 80 10 20 20 40 40 40 40 40 50 200 200 25 25 20 70 600 70 100 40]*1000/Sbase; % load reactive power
e1=0.2; e2=0.1;
PL=PM*(1-e1);
QL=QM*(1-e1);
PR=PM*(1+e2);
QR=QM*(1+e2);
پاسخ

اعداد فازی

#8
ادامش

کد:
x=0:0.0001:1; y=0:0.00001:1;
for o=1:33
 Pfuzzy(:,o)=trimf(x, [PL(o) PM(o) PR(o)]);
end

for o=1:33
 Qfuzzy(:,o)=trimf(x, [QL(o) QM(o) QR(o)]);
end

for u=1:32
 V0(u,:)=trimf(x, [1 1 1]);
end
پاسخ

اعداد فازی

#9
کد:
for i=2:33
    pp=Pfuzzy( :,i);
    qq=Qfuzzy( :,i);
    
    jam(i-1,: )=fuzarith(x,pp,qq,'sum');
    tagh(i-1,: )=fuzarith(y,jam(i-1,: ),V0(i-1,: ),'div');
    I(i-1,: )=conj(tagh(i-1,: ));
    
    jjam(i-1,: )=complex(pp,qq);
    taghj(i-1,: )=fuzarith(y,jjam(i-1,: ),V0(i-1,: ),'div');
    I(i-1,: )=conj(taghj(i-1,: ));
   
end
پاسخ

اعداد فازی

#10
یک نگاهی به کدها انداختم، ابتدا کد زیر را حذف کنید :

کد:
j=sqrt(-1);

دلیلش هم اینه که خود نرم افزار متلب، دو علامت i و j را به همین صورت (موهومی) می شناسد و نیازی به تعریف کردن آن نیست. البته این تغییر، تاثیری در نتایج ندارد.

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

اعداد فازی

#11
تشکر لطف کردی
پاسخ

اعداد فازی

#12
این کد ساده رو هم نوشتم تو جواب میگه که قسمت موهومی به حساب نمیاد. باز اگه چیزی به نظرتون اومد ممنون میشم بگید. 
clc
clear all
w=0:400;e=400;
a=trimf(w,[180 200 210]);
b=trimf(w,[140 150 170]);
plot(w,a,w,b)
sum=fuzarith(w,a,b,'sum');
figure
plot(w,sum)
g=complex(a,b);
figure
plot(w,g)
پاسخ

اعداد فازی

#13
جمع  معمولیش درسته همون موهومیشو مشکل دارم
 
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


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