چکیده
- الگوریتمهاي ژنتیکاز اصول انتخاب طبیعی داروین براي یافتن فرمول بهینه جهت پیشبینی یا تطبیق الگو استفاده میکند.الگوریتمهاي ژنتیک اغلب گزینه خوبی براي تکنیکهاي پیشبینی برمبناي رگرسیون هستند
. مختصراً گفته میشود که الگوریتمیکتکنیک برنامهنویسی است که از تکامل ژنتیکی به عنوان یکالگوي حل مسئله استفاده میکند
. در این مقاله سعی (GA ژنتیک(یابر آن داریم تا یک نقویت کننده قدرت را بررسی نموده و با استفاده از ژنتیک الگوریتم پارامترهاي بهینه را براي مدار یافته و اقدام به
بررسی نتایج بدست آمده نماییم
کلید واژه
- ژنتیکالگوریتم ، تقویتکننده قدرت ، معایبژنتیکالگوریتم ، معایبژنتیکالگوریتم-1
مقدمهقانون انتخاب طبیعی بدین صورت است که تنها گونههایی از
یک جمعیت ادامه نسل میدهند که بهترین خصوصیات را
داشته باشند و آنهایی که این خصوصیات را نداشته باشند به
تدریج و در طی زمان از بین میروند
. البته درستتر آنستکه بگوییم طبیعت مناسب ترینها را انتخاب میکند نه
بهترینها
. گاهی در طبیعت گونههاي متکاملتري به وجودمیآیند که نمیتوان گفت صرفا حاصل تکامل تدریجی گونه
قبلی هستند
. آنچه که ممکن است تا حدي علت این رویدادرا توضیح دهد مفهومیست به نام
: تصادف یا جهش. براساس این ویژگیها ژنتیک الگوریتم سعی بر آن داریم تا
یک تقویت کننده قدرت را مورد بررسی و بهینه سازي قرار
دهیم
. لذا در ابتدا ساختار یک تقویت کننده قدرت را بررسیو با توجه به نیازها کامل و سپس مقادیر برخی از
پارامترهاي آن را با ژنتیک الگوریتم بدست آورده و در
نهایت با استفاده از مقادیر بدست آمده و اعمال آن مقادیر به
مدل ، نتایج را بررسی مینماییم لذا این مقاله را به
3 بخشکلی تقسیم میکنیم
:بخشاول
: توضیحی بر ژنتیک الگوریتمبخش دوم
: بررسی یک تقویت کننده قدرت و بدستآوردن تابع تبدیل سیستم
بخش سوم
: بررسی و تحلیل پارامترهاي مورد نظر توسطژنتیک الگوریتم
-2
توضیحی بر ژنتیکالگوریتمیک تکنیک جستجو در علم
GA الگوریتم ژنتیککامپیوتربراي یافتن راه حل بهینه و مسائل جستجو
است
.الگوریتم هاي ژنتیک یکی از انواع الگوریتم هايتکاملی اند که از علم زیست شناسی مثل وراثت،
جهش،انتخاب ناگهانی ، انتخاب طبیعی و ترکیب الهام
[ گرفته شده .[ 2
در دهه هفتاد میلادي دانشمندي به نام جان هلند ایده
استفاده از الگوریتم ژنتیک را در بهینهسازيهاي مهندسی
مطرح کرد
. ایده اساسی این الگوریتم انتقال خصوصیاتموروثی توسط ژنهاست
. فرض کنید مجموعه خصوصیاتانسان توسط کروموزومهاي اول به نسل بعدي منتقل
میشوند
. هر ژن در این کروموزومها نماینده یک خصوصیتاست که بصورت همزمان دو اتفاق براي کروموزومها میافتد
.است
. موتاسیون به این (Mutation) اتفاق اول موتاسیونصورت است که بعضی ژنها بصورت کاملا تصادفی تغییر
میکنند
(البته تعداد این گونه ژنها بسیار کم میباشد).اتفاق دیگر چسبیدن ابتداي یک کروموزوم به انتهاي یک
Crossover کروموزوم دیگر است؛ این مساله با نام
شناخته میشود(البته این اتفاق به تعداد بسیار بیشتري
نسبت به موتاسیون رخ میدهد). این همان چیزیست که
مثلا باعث میشود تا فرزند تعدادي از خصوصیات پدر و
تعدادي از خصوصیات مادر را با هم به ارث ببرد و از شبیه
[ شدن تام فرزند به تنها یکی از والدین جلوگیري میکند.[ 1
بررسی و بهینه سازي تقویتکننده قدرت با استفاده از ژنتیکالگوریتم
(
هادي آریاکیا( 1) ، مسعود مصدق( 1) ، ابراهیمی راد ( 21)
دانشگاه آزاد اسلامی واحد تهران مرکز ( 2) دانشگاه تهران دانشکده برق و کامپیوتر )2
X1,X2,…,Xn، در ابتدا تعداد مشخصی از ورودي ها
هستند را انتخاب می کنیم و X که متعلق به فضاي نمونه
نمایش X=(x1,x2,…xn) آنها را در یک عدد برداي
میدهیم ؛ در مهندسی نرم افزار اصطلاحاً به آنها ارگانیسم یا
Colony کروموزوم گفته می شود و به گروه کروموزوم ها
رشد می کند Colony ، یا جمعیت می گوییم.در هر دوره
و بر اساس قوانین مشخصی که حاکی از تکامل زیستی است
تکامل می یابد.
ما یک ارز
ش تناسب ، Xi براي هر کروموزومهم مینامیم
.عناصر قویتر f(Xi) داریمکه آن را (Fitness)Colony یا کروموزوم هایی که ارزش تناسب آنها به بهینه
نزدیکتر است شانس بیشتري براي زنده ماندن در طول دوره
هاي دیگر و دوباره تولید شدن را دارند و ضعیفترها محکوم
به نابودي اند. به عبارت دیگر الگوریتم ورودي هایی که به
جواب بهینه نزدیکترندرانگه داشته واز بقیه صرف نظر می
کند.
یک گام مهم دیگر درالگوریتم،تولد است که در هر دوره
یکبار اتفاق می افتد
. محتویات دو کروموزومی که در فرآیندتولید شرکت می کنند با هم ترکیب میشوند تا
2 کروموزومجدید که ما انها را فرزند می نامیم ایجاد کنند
.اینهیوریستیک به ما اجازه می دهد تا
2 تا از بهترین ها رابراي ایجاد یکی بهتر از آنها با هم ترکیب کنیم
.مانند آنچهبه علاوه در
(evolution) . در شکل 1 مشخص میباشدطول هر دوره،یک سري از کروموزوم ها ممکن است جهش
.
[4](Mutation) یابندقرار X=(x1,x2,..,xn) در یک عدد برداري x هر ورودي
دارد .براي اجراي الگوریتم ژنتیک مان باید هر ورودي را به
یک کروموزوم تبدیل کنیم.می توانیم این را با داشتن
انجام دهیم Xi بیت براي هر عنصرو تبدیل ارزش log(n)
مثل شکل
2می توانیم از هر رو
ش کد کردن براي اعداد استفادهرا به صورت
X کنیم.در دوره 0، یک دسته از ورودي هايام ما ارز
ش i تصادفی انتخاب می کنیم. بعد براي هر دورهرا تولید،تغییر وانتخاب را اعمال می
Fitness مقدارکنیم
.الگوریتم وقتی پایان می یابد که به معیارمان برسیم.عموما رًاه حلها به صورت
2 تایی 0و 1 نشان داده میشوند ولی روشهاي نمایش دیگري هم وجود دارد
.تکامل ازیک مجموعه کاملاً تصادفی از موجودیت ها شروع می شود
و در نسلهاي بعدي تکرار می شود
.در هر نسل،مناسبترین هاو نه بهترین ها انتخاب می شوند
.رو
ش هاي مختلفی براي الگوریتم هاي ژنتیک وجود دارندکه می توان براي انتخاب ژنوم ها از آنها استفاده کرد
.امارو
ش هاي لیست شده در پایین از معمولترین روش هاهستند
.مناسبترین عضو هر اجتماع انتخاب می
: Elitist انتخابشود
.یک رو
ش انتخاب است که در آن : Roulette انتخابعنصري که عدد براز
ش(تناسب)بیشتري داشته باشد،انتخابمی شود
.به موازات افزایش متوسط عدد براز
ش : Scaling انتخابجامعه،سنگینی انتخاب هم بیشتر می شودوجزئی تر
.اینرو
ش وقتی کاربرد دارد که مجموعه داراي عناصري باشد کهعدد براز
ش بزرگی دارند وفقط تفاوت هاي کوچکی آنها را ازهم تفکیک می کند
.یک زیر مجموعه از صفات یک
: Tournament انتخابجامعه انتخاب می شوندواعضاي آن مجموعه با هم رقابت
می کنندو سرانجام فقط یک صفت از هر زیر گروه براي
تولید انتخاب می شوند
.Rank Selection,
: بعضی از روشهاي دیگر عبارتند ازGenerational Selection, Steady-State
Selection .Hierarchical Selection
2
کروموزوم براي معاوضه Crossover در روشسگمنتهاي کدشان انتخاب می شوند
.این فرآیند بر اساسفرآیند ترکیب کروموزوم ها در طول تولید مثل در موجودات
زنده شبیه سازي شده
. اغلب روش هاي معمول3
هستند
Single-point Crossover شامل Crossover، که نقطه تعوی
ضدر جایی تصادفی بین ژنوم ها است.بخشاول قبل از نقطه ،و بخش دوم سگمنت بعد از آن ادامه پیدا
50/
می کند،که هر قسمت برگرفته از یک والد است،که 50انتخاب شده
.تصویر
3 تاثیر هر یک از عملگر هاي ژنتیک را رويکروموزوم هاي
8 بیتی نشان می دهد.ردیف بالاتر 2 ژنوم رانشان می دهد که نقطه تعوی
ض بین 5امین و 6امین مکاندر ژنوم قرار گرفته،ایجاد یک ژنوم جدید از پیوند این
2 والدبدست می آیند
.شکل 2وم ژنومی را نشان می دهد که دچارجهششده و
0 در آن مکان به 1 تبدیل شده .-3
بررسی یکتقویت کننده قدرت و بدستآوردن تابع تبدیل سیستم
:تقویت کنندهاي که در ابتدا میخواهیم به بررسی آن
بپردازیم، داراي شماي کلی بصورت شکل
4 میباشد. البتهدر انتهاي این بخش یک کنترل کننده پیش فاز در مسیر
فیدبک استفاده خواهیم کرد
.با پیش فرضها زیر کار تحیل وبدست آورد تابع تبدیل سیستم را شروع میکنیم
:مشخصات تقویت کننده عملیاتی
:A1= بهره حلقه باز : 106
f1=10Hz
: فرکانس قطع پایینf2=1MHz : فرکانس قطع بالا
2.5 V : افت ولتاژ
مشخصات تقویت کنندة ترانزیستوري :
A1= بهره حلقه باز : 10
f2=10KHz : فرکانس قطع بالا
1.5 V : افت ولتاژ
توابع تبدیل حلقه باز و حلقه بسته در تصویر 5 مشخص می
باشند
مدل سیمولینک تقویت کننده بصورت شکل 6 میباشد :
T1=1/2Πf1 T2=1/2Πf که در آن 2
T3=1/2Πf3 B1=0.01
با وارد کردن تابع تبدیل نمودار بود و مارجین را براي این
مدار حساب مینماییم که در تصویر
7 و 8 رسم شده است.در ضمیمه
ampli1.m فایل مربوطه با نام m برنامهموجود این مقاله موجود میباشد
.4
Gain margin in dB=1.011
Corresponding Frequency=100147.9888
Phase margin n degrees=0.064197
Corresponding Frequency=99583.2111
همانطور که مشاهده میفرمایید حاشیه بهره و فرکانس بر
100 و KHz هم افتادگی بهره به ترتیب 1.011 و
99KHz همچنین حاشیه فاز و فرکانس برهم افتادگی فاز
میباشد و سیستم در آستانه ناپایداري است.
اینبار سعی میکنیم با استفاده از فیدبک در بخش تقویت
کننده ترانزیستوري پایداري را افزایش دهیم
. شکل مدار ،نمودار بلوکی و مدل سیمولینک مدار را در تصویر
9میتوانید مشاهده نمایید
براي بدست آوردن تابع تبدیل کلی سیستم و نمودارهاي
استفاده شده است که در بخش
Ampli2.m بود از فایلضمیمه موجود میباشد
. نتایج بدست آمده و نمودارهاي بودو پاس
خ پله را میتوانید در تصویر 10 مشاهده نماییدهمانطور که از نمودارتصویر
10 و نتایج بدست آمده از قبلمشخ
ص میباشد، حاشیه فاز و فرکانس بر هم افتادگی بهره99.6 به 18.9 درجه و 95.3 KHz از 0.06 درجه و
رسیده است. هر چند که این بهبود مطلوب ما میبود KHz
اما بازهم مقادیر قابل اطمینانی براي یک تقویت کننده
نمیباشد
راه دیگري که معمو
لا براي افزایش فاز سیستمها مورداستفاده قرار میگیرد، استفاده از کنترل کننده پس فاز
است
. اما از آنجا که کنترل کننده پس فاز تاخیري را برسیستم تحمیل میکند، پاس
خ سیستم را کند مینماید کهباعث ایجاد نوسانهاي شدید در خروجی تقویت کننده
میشود
.لذا یک کنترل کننده پیشفاز استفاده گردید و چون کنترل
کننده پیش فاز رفتاري شبیه مشت
قگیر دارد بهره و سرعتپاس
خ سیستم را افزایشمیدهد. در شکل 11 مدار با فیدبکپیشفاز و همچنین مدل سیمولینک آنرا مشاهده مینمایید
-4
بررسی و تحلیل پارامترهاي مورد نظر توسطژنتیکالگوریتم
genetic در برنامه amplifire براي پیاده سازي این
در مطلب ابتدا تابع تبدیل کل را محاسبه algorithms
میکنیم
5
همانجور که در تصویر
12 مشاهده مینمایید براي محاسبهابتدا باید تابع تبدیل داخلیترین لو
پ را محاسبه کنیم براي1 G1G از فرمول 2 C محاسبه فیدبک منفی 1
G1
+
بدست
میآید
k میباشد و 1 A1=10 , T3=1.59*10- که در آن 5
مقدار گین ماست که مجهول است و میخواهیم از طری
قمقدار بهینه آن را بدست
Genetic_Algorithmsآوریم
.را که
C و 3 C مطابق تصویر 13 مقدار تابع تبدیلهاي 2A1=1*106 , T1= 0.0159 , T در آن = 2
1.59 میباشد را محاسبه *10-7 , T=2.2*10-5
میکنیم
:تابع تبدیل کلی است صورت و خر
ج آن را به صورت C4تعرف کرده و در
den و num ماتریس لاپلاس با نامهاياستفاده
Genetic Algorithm در peacksfcn.mداریم که
K و 2 k میکنیم در این جا ما دو مجهول 1بهترین
Genetic Algorithm میخواهیم از طریق برنامهرا به
peachsfcn.m مقدار براي این گینها بدست آوریماینشکل تعری
ف میکنیم :k1 = input(1); k2 = input(2);
z=0;
t=0:0.01:2;
num=[2.48776e20*(k2+45454.5)];
den=[k2+45454.5,628931*(k2+45454.5)*(k
1+10.1001),3.95558e12*(k2*(k1+6.28925e
7)+45454.5*(k1+0.1001)),2.48776e14*
(k2*(k1+4.54545e10)+45454.5*(k1+0.1))];
y=step(num,den,t);
sy=size(y);
for i=1:sy
z=z+(y(i)-(100))^-2;
end
براي بدست آوردن مقدار بهینه باید خطاي ما کمترین مقدار
را داشته باشد براي بدست آوردن خطا از فرمول
6
( )
Σiout e
y i y 2 Fitness _[ ] استفاده میکنیم که همانمقدار بهینهاي است که ye ، ما میباشد Function
خروجی باید به آن برسد
.تعداد نسلها و جمعیت و ژنها را بهترتیب
100،100 و 32در بهترین حالت
Gnetic Algorithm قرار میدهیم تارا بدست آورد وهمچنین
k و 2 k مقدار بهینه گینهاي 1Gnetic در var_n= تعداد متغیرهایمان را با مقدار دهی 2
تعیین میکنیم
Algorithmمحدوده متغیرهاي خودمان را
clab.m وهمچنین درتعری
ف میکنیمکه در اینجا ما هردو متغیر را از 0,0001 تا 2تعری
ف میکنیمبرنامه را اجرا میکنیم
F با زدن کلید 5 clab حال دررا از طری
ق این برنامه k و 2 k و مقدار بهینه 1 (Run)بدست میآوریم که نتیجه را در تصویر
14 میتوانیدمشاهده نمایید
.و
K1= در نسل صدم مقدار 1.994361بدستآمد
. K2=0.009998Tools/ControlDesign/LinearAnalysis
.. ازمنويرا انتخابکرده و اجرا میکنیم همانطورکه در شکل زیر
میبینید خروجی به مقدار بهینه خو یعنی
100 در مدت1.5 رسیده است پس از طریق *10-4sec
با بدست آوردن مقدار بهینه گین
Gnetic_Algorithmفیدبک ها در کمترین مدت به بهترین جواب رسیده
همچنین گین کلی مدار هم برابر
100 گردیده است.-5
نتیجهگیرياز محاسن
ذاتی ژنتیک الگوریتم موازي بودن آن مي باشد .اکثر الگوريتم هاي ديگر موازي نيستند و فقط مي توانند
فضاي مسئله مورد نظر را در يک جهت و يک لحظه
جستجو کنند و جواب پيدا شده ممكن است جواب بهينه
محلي باشد و يا زير مجموعه اي از جواب اصلي باشد. حسن
ديگر ژنتيك الگوريتم كه در اينجا از آن سود جستيم امكان
تغيير چندين پارامتر بشكل همزمان بود. در مسائل واقعي
نمي توان محدود به يک ويژگي شد تا آن ويژگي ماکسيمم
شود يا مينيمم و بايد چند جنبه در نظر گرفته شود
و بههمین خاطر از طری
ق ژنتیک الگوریتم توانستیم به پاسخمطلوب دست پیدا کرده علاوه رسیدن به پاس
خ پله مناسبکه نمودار آنرا در تصویر
15 مشاهده مینمایید به گین 100که مطلوبمان بود دست پیدا نماییم
. ناگفته نماند ژنتيكالگوريتم معايبي هم دارد يک مشکل چگونگي نوشتن عملگر
است که منجر به بهترين راه حل براي مسئله
Fitnessشود
. مشکل ديگر ،که آن را نارس مي ناميم اين است کهاگر يک ژنوم که فاصله اش با ساير ژنوم هاي نسل اش زياد
باشد(خيلي بهتر از بقيه باشد) و خيلي زود ايجاد ممکن
است محدوديت ايجاد کند و راه حل را به سوي جواب بهينه
محلي سوق دهد
. متاسفانه در اینصورت تمام زمانی که برايمحاسبات صرف شده بیهوده بوده و محاسبات میبایستی از
ابتدا شروع گردد
.