شبیه سازی سیستم های الکتریکی

آموزش مقدماتی و پیشرفته سیمولینک و PSCAD

شبیه سازی سیستم های الکتریکی

آموزش مقدماتی و پیشرفته سیمولینک و PSCAD

شبیه سازی سیستم های الکتریکی

با سلام
به دلیل عدم وجود وبسایت تخصصی در این زمینه و نیاز دانشجویان تصمیم به راه اندازی این وب سایت گرفته شد. سوالات خود را می توانید در قسمت نظرات مطلب مورد نظر به طور عمومی مطرح کنید تا دیگران هم بتوانند از این پرسش و پاسخ ها استفاده کنند.
به منظور مشاوره در مورد شبیه سازی پروژه های خود با نرم افزارهای سیمولینک (simulink)، DIgSILENT، PSCAD و همچنین دوره های آموزشی مختلف می توانید با ما به صورت زیر در تماس باشید.

ایمیل :

simpowersystem9015@gmail.com

واتس آپ:
0917-2929-171
با تشکر
مدیر سایت : محمد اسماعیل حسن زاده

تبلیغات
Blog.ir بلاگ، رسانه متخصصین و اهل قلم، استفاده آسان از امکانات وبلاگ نویسی حرفه‌ای، در محیطی نوین، امن و پایدار bayanbox.ir صندوق بیان - تجربه‌ای متفاوت در نشر و نگهداری فایل‌ها، ۳ گیگا بایت فضای پیشرفته رایگان Bayan.ir - بیان، پیشرو در فناوری‌های فضای مجازی ایران
آخرین نظرات
همه مطالب

دانلود
حجم: 2.9 کیلوبایت

# ------------------------ Objective Function= e(-x)*sin(2*pi*x)---------------------
import numpy as np
import random
import datetime
import math
a = datetime.datetime.now();
Xmax=6*np.ones((1,5) ,dtype=float);
Xmin=0*np.ones((1,5) ,dtype=float);
n=Xmax.size;
N=200;cc=0;ccc=0;
Iter_max=500;
miu=0.1;
MU=np.linspace(0,1,N);
alpha=0.9;
Cost_new=np.zeros((N,1),dtype=float);
#-------------------------------- create initial population---- start
Ipop=(Xmax-Xmin)*np.random.uniform(0,1,(N,n))+Xmin;
#--------------------------------objective Function------ Start
Cost=((np.exp(-Ipop)*np.sin(2*math.pi*Ipop)).sum(axis=1)).reshape(N,1);
#--------------------------------objective Function------ End
Ipop_mix=np.concatenate((Ipop, Cost), axis=1)
ind=np.argsort(Ipop_mix[:,-1])
Ipop_sort=Ipop_mix[ind];
Best1=Ipop_sort[0,:];
Best=Best1.copy();
ccc=ccc+1;
Ipop_select=Ipop_sort[0:N/2,:];
Ipop=np.zeros((N,n) ,dtype=float);
Ipop=Ipop_sort[0:N,0:n];
#-------------------------------- create initial population---- End
for Iter in range(0,Iter_max):
    
    print(Iter)

    Ipop_new=Ipop.copy();
    for i in range(0,N):
        for j in range(0,n):
            if (1-MU[i])>=np.random.uniform(0,1,(1,1)):
                EP=MU.copy();
                EP[i]=0;
                EP=EP/EP.sum();
                EP=EP.cumsum(axis=0);
                k=np.where((np.where(EP>np.random.uniform(0,1),1,0))==1)[0][0];
                Ipop_new[i,j]=Ipop[i,j]+alpha*(Ipop[k,j]-Ipop[i,j]);
        # -------------------  Mutation  -------- start        
        kk=max(0,round(n*np.random.uniform(0,1))-1);
        Xmax1=1.1*Ipop_new[i,:];
        Xmin1=0.9*Ipop_new[i,:];
        d=np.random.normal(0,1)*(Xmax1-Xmin1);
        Ipop_new[i,kk]=Ipop_new[i,kk]+d[kk];

        # -------------------  Mutation  -------- End
        Ipop_new=np.maximum(Xmin,Ipop_new); 
        Ipop_new=np.minimum(Xmax,Ipop_new);
        #--------------------------------objective Function------ Start
        Cost_new[i]=((np.exp(-Ipop_new[i,:])*np.sin(2*math.pi*Ipop_new[i,:])).sum(axis=0));
        #--------------------------------objective Function------ End
   
    Ipop_mix=np.zeros((N,n+1) ,dtype=float);
    Ipop_mix=np.concatenate((Ipop_new, Cost_new), axis=1)
    Ipop_mix=np.concatenate((Ipop_select, Ipop_mix), axis=0)
    Ipop_sort=np.zeros((1.5*N,n+1) ,dtype=float);
    ind=np.argsort(Ipop_mix[:,-1])
    Ipop_sort=Ipop_mix[ind];
    if Best[n]>Ipop_sort[0,n]: 
       cc=cc+1;
       Best1=Ipop_sort[0,:];
       Best=Best1.copy();
       print(Best[n])
    Ipop_select=np.zeros((N/2,n+1) ,dtype=float);
    Ipop_select=Ipop_sort[0:N/2,:];
    Ipop=np.zeros((N,n) ,dtype=float);
    Ipop=Ipop_sort[0:N,0:n];

print('Final Best--------------')
print(Best.reshape(n+1,1))
print('cc:',cc)
b=datetime.datetime.now();
c=b-a;
print('Run Time (msec) : ',int(c.total_seconds()*1000));
           

    

۰ نظر موافقین ۰ مخالفین ۰ ۰۳ شهریور ۰۱ ، ۰۹:۰۰
محمد اسماعیل حسن زاده