رفتن به مطلب
Yaser.C

شناسایی سیستم ها با متلب (یک علم لازم برای تمامی علوم مهندسی)

پست های پیشنهاد شده

از اونجا که تابستون داره شروع میشه و ممکنه خیلی از شما تابستون بیکار باشید من یه پیشنهاد خوب برا همتون دارم.....

خوب....اینجا می خوایم یه بحثی رو شروع کنیم که به جرات میگم به درد تمامی علوم مهندسی میخوره....

میخوایم یاد بگیریم سیستم هامونو مدل کنیم....یعنی یه مدل فیزیکی به شما بدن و شما یه مدل کامپیوتری ازش به دست بیارید!!!!!

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

این دروس تو شاخه مهندسی کنترل هست ولی من خودم بیشتر از هزار مقاله علمی دیگه دیدم که از این تکنولوژی تو مقاله هاشون استفاده کردن که اصن ربطی به مهندسی کنترل نداشته...

مث علوم مهندسی مکانیک و شیمی و کامپیوتر و عمران و....حتی سایر زیر گرایش های برق مثل مخابرات و قدرت و الکترونیک

آموزشی که شروع میکنیم از تحلیل سیستم های ساده خطی هست تا فیت کردن سیستم ها با شبکه های فازی و عصبی....

من مطمئنم کسی که در این مباحث شرکت میکنه (اگه به امید خدا این کار به اتمام برسه) خودش میتونه یه مقاله جدید رو شروع کنه و این علم رو ربط بده به درس خودش...خلاصه کلام.......کار ما در اینجا اینه که میخوایم تحلیل کردن روی داده رو یاد بگیریم.....

این کار رو میخوایم تا تابستون شروع کنیم و ادامه بدیم......البته قبلش بایستی آقا ایمان گل اجازه این کار رو به ما بدن.....

یه جمله دیگه هم اضافه کنم تا بحث روشن شه......اینجا میخوایم خوب تخمین بزنینم.....هر چیزی رو....از سیستم موتور الکتریکی بگیر تا شاخص بورس و قیمت طلا و آب و هوا و حتی پیشبینی مسابقات جام جهانی!!!!!کلن این بخش خیلی ساده اس!!!!اگه داده های یه تابع رو داشته باشیم آیا میشه به ضابطه اش پی برد؟؟؟؟؟؟؟؟؟؟؟؟؟

 

 

حالا کیا پایه ان؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام....

خوب به امید خدا میخوایم این موضوع رو شرو کنیم....قضیه به این صورت هست که ما میخوایم در کنار بحث های تئوری شبیه سازی هم داشته باشیم....ولی اگه بخوایم از صفر شرو کنیم و بگیم متلب چیه و چی کار میتونه بکنه حدود دو هفته هم وقت ما تلف میشه و هم کار تکراری انجام دادیم.

آموزش های مختلفی از متلب تو سایت هست که من گشتم و یکیشو پیدا کردم که دوستان با مقدمات اون آشنا بشن پس به لینک زیر مراجعه کنید تا با مقدمات برنامه نویسی تو متلب آشنا بشید....این آموزش توسط خانم فریور تهیه شده که از ایشون هم تشکر میکنم

 

آموزش نرم افزار matlab

 

از آقا ایمان هم میخوام که اگه آموزش دیگه ای از مباحث مقدماتی متلب دارن اینجا معرفی کنن تا دوستان مطالعه کنن:a030:

 

خوب اینکه چه ورژنی از متلب استفاده بشه زیاد مهم نیستچون معمولا کد های ما تولباکس خاصی رو نیاز نداره و میخوایم خودمون از ابتدا کد بزنیم....

ولی اگه دوستان از ورژن های R2010a به بعد استفاده کنن بهتره....من خودم از R2012b استفاده میکنم

 

خوبیه چند روزی وقت میدیم تا دوستان با مقدمات متلب آشنا بشن.....:a030:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
سلام....

خوب به امید خدا میخوایم این موضوع رو شرو کنیم....قضیه به این صورت هست که ما میخوایم در کنار بحث های تئوری شبیه سازی هم داشته باشیم....ولی اگه بخوایم از صفر شرو کنیم و بگیم متلب چیه و چی کار میتونه بکنه حدود دو هفته هم وقت ما تلف میشه و هم کار تکراری انجام دادیم.

آموزش های مختلفی از متلب تو سایت هست که من گشتم و یکیشو پیدا کردم که دوستان با مقدمات اون آشنا بشن پس به لینک زیر مراجعه کنید تا با مقدمات برنامه نویسی تو متلب آشنا بشید....این آموزش توسط خانم فریور تهیه شده که از ایشون هم تشکر میکنم

 

آموزش نرم افزار matlab

 

از آقا ایمان هم میخوام که اگه آموزش دیگه ای از مباحث مقدماتی متلب دارن اینجا معرفی کنن تا دوستان مطالعه کنن:a030:

 

خوب اینکه چه ورژنی از متلب استفاده بشه زیاد مهم نیستچون معمولا کد های ما تولباکس خاصی رو نیاز نداره و میخوایم خودمون از ابتدا کد بزنیم....

ولی اگه دوستان از ورژن های R2010a به بعد استفاده کنن بهتره....من خودم از R2012b استفاده میکنم

 

خوبیه چند روزی وقت میدیم تا دوستان با مقدمات متلب آشنا بشن.....:a030:

 

سلام

 

به غیر از آموزش خانوم فریور، دو تا فایل آموزشی هم اینجا قرار داده شده، برای شروع بد نیستن:

فایل های pdf آموزش متلب

 

توی این تاپیک هم لینک دانلود و روش نصب آخرین ورژن متلب توضیح داده شده:

 

دانلود و آموزش نصب Matlab R2014a x86/x64

 

 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

[h=1]تاپیک رفع اشکال و بحث پیرامون یادگیری متلب در تابستان 92[/h][h=1]تاپیک هماهنگی یادگیری نرم افزار متلب در تابستان 92[/h]

دو تاپیک بالا رو ببینید و فایل های آموزشیش رو دانلود کنید (برای مقدمات خوبه)

فقط امیدوارم این تاپیک پیشرفت داشته باشه که لازمه ش همکاری بقیه دوستانه تا استارتر از آموزشهایی که قرار میده دلسرد نشه:a030:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

خوب بحث اول شناسایی رو شروع میکنم و امیدوارم که هر کی این بخش رو میخونه براش مفید باشه....

اولین و ساده ترین روش شناسایی سیستم ها روش حداقل مربعات هست که توسط گوس پایه گذاری شد.....

 

اول یه مقدمه کوتابه میگم تا با این مبحث آشنا بشیم

 

اصولا شناسایی سیستم ها به دو روش آفلاین و آنلاین انجام میشه...یکی اینکه سیستم شما در حال کار باشه و ازش دیتا بگیری و شناساییش کنی (و در واقع تخمین خودتو بازمان بهتر کنی)که بهش میگن آنلاین ودومی هم اینکه شما یه سری آزمایشات روی سیستم انجام بدی و دیتا هاشو برداری و بیای تحلیل کنی....این میشه روش آفلاین....

باز من اینجا میگم سیستم یه تانکر صنعتی یا یه موتور القایی مد نظر نیستا!!!!یه سیستم کلی...مثلا شاخص بورس...یا مثلا قند خون یه بیمار دیابتی.... یا هر چی که تو فکر کنی......کلا هر چی بهش بشه ورودی داد و ازش خروجی گرفت....

خوب بریم سراغ روش اول شناسایی که بهش میگن حداقل مربعات....که میخوایم توی پست های جلوتر هم روش آفلاینشو بگیم و هم روش آنلاین.....

این روش یه شناسایی کلاسیک هست و از روش های هوشمند نیس....پس فعلا وارد مبحث شبکه های فازی و عصبی نشدیم هنوز....

 

فرض کنید که روی یه سیستم یه معادله بازگشتی به صورت زیر برقرار باشه (تعیین مرتبه سیستم رو اینجا کاری باهاش نداریم)

3oxmw42yudr7hhuwcf1u.png

که تو این معادله t گام های زمان هست....یعنی اینکه خروجی تو این لحظه به علاوه یه سری جمله از خروجی در لحظات گذشته میشه مجموع یه سری از ورودی ها در لحظات گذشته. خوب یعنی خروجی در لحظه الان به خروجی در لحظات گذشته و ورودی در لحظات گذشته وابسته هست....این حرف رو میشه این شکلی هم گفت:

w8bczjmv3m82k4cl5hp.png

دقت کنید که سمت راست این معادله همه چیز رو داریمهمه یا خروجی گذشته هستن یا ورودی گذشته....

اما چیزی که در این معادله باز گشتی مجهول هست ضرایب هست....شما نمیدونید این ضرایب چیه؟؟؟؟؟؟ما میتونیم به u عدد بدیم و y رو نگاه کنیم اما از ضرایب بی خبریم... میخوایم به دنبال ضرایب این معادله تفاضلی بگردیم فقط از روی داده های ورودی و خروجی....m و n هم مقدار درجه تاخیر ورودی و خروجی هستن که ازشون خبر داریم (البته این فرض اول هست و بعدا فرض میکنیم این رو هم نمیدونیم)....خروجی ای که در معادله دوم گفتیم رو میتونیم به صورت ضرب یه ماتریس سطری در ستونی بگیم

kqttyusmq2g60fjn6.png

که این دو ماتریس رو نامگذاری میکنیم و به این مدل میگیم مدل رگرسوری....

ua52ecjjueijvl08h8kf.png

مساله حداقل مربعات میگه فرض کن که تونستی خروجیتو تخمین بزنی....خطای تخمین رو تعریف میکنیم:

jhczt6wdh3yz018v0s3i.png

خوب شما وقتی تخمینت خوب میشه که تابع زیر رو حداقل کنی (که بهش میگن تابع هزینه)

sd4vudcwvntj3cybiuyl.png

که بهش میگن مجموع مربعات خطا...حالا چرا نگفت مجموع خطا ها مینیمم بشه؟؟؟؟؟چرا گفت مجموع مربعات خطا مینیمم بشه؟؟؟؟؟

دو تا دلیل مهمشو میگم...

۱- چون اگه میگفت مجموع خطا مینیمم بشه ممکن بود خطاهای مثبت با خطا های منفی جمع بشن و حاصلش عدد کوچیکی بشه و ما فک کنیم تخمین خوبه اما خطا خیلی زیاد باشه....پس اومد مربع خطا رو در نظر گرفت و جمع کرد که همه خطا ها مثبت باشن

۲- مربع کردن یه خاصیت داره که اعداد بزرگ رو خیلی بزرگتر میکنه و اعداد کوچیک رو خیلی کوچیکتر....پس خطا های بزرگ تو چشم میان و خطاهای کوچیک صرف نظر میشن!!!

خوب اگه از تابع فوق مشتق ماتریسی بگیرید و اونو مساوی صفر بذارید میتونید بگید تخمین شما از بردار های ضرایب بایستی به صورت زیر باشه:

ah7oh77w2i5h0i1hazl4.png

که در رابطه فوق (فرض کنید شما تا لحظه k ام از سیستم داده دارید....)

 

227c92ybw39mcx2r2nok.png

خوب این اولین پست از مجموعه آموزش مساله حداقل مربعات بود....ممکنه یکم گیج کننده باشه چون یه مساله کلی ریاضی بود...

دوستان اگه سوالی دارن همین جا بپرسن....اونایی هم که یه چیزی فهمیدن اما هنوز براشون گنگه یه کم صبر کنن تا یه مثال عملی بزنیم همراه با شبیه سازیش....

موفق باشید

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

با عرض مذرت به خاطر تاخیر!!!!!! :icon_redface:

امروز با شبیه سازی الگوریتم حداقل مربعات بحث رو ادامه میدیم و در قسمت بعدی هم نکات مربوط به این الگوریتم رو به صورت نکته وار میگیم....

 

معادله تفاضلی بازگشتی به صورت زیر رو در نظر بگیرید....(این معادله یه معادله پایداره چون اگه از اون تبدیل Z بگیریم قطب هاش درون دایره واحد قرار میگیره...حالا ما زیاد به این مباحث کاری نداریم....)

rjg35yw2drgcrd95g1s.png

فرض کنید یه همچین سیستمی به صورت مجهول در اختیار شما قرار گرفته.....یعنی چی؟؟؟؟؟؟ یعنی اینکه شما تیپ معادله تفاضلی رو میدونید چه شکلیه اما از ضرایب اون کاملا بی خبر هستید....اصن نمیدونید اینا مثبتن یا منفی؟؟؟؟چه اعدادی هستن؟؟؟؟؟هیچی هیچی!!!!

 

حالا برای شناسایی دو مساله مهم وجود داره....این که آیا شما مختارید به سیستم ورودی بدید یا نه؟؟؟؟؟؟

بذارید یه کم واضحتر بگم......فرض کنید شما یه مهندس هستید میخواید یه سیستمی رو مدل کنید...مدل کلی معادله بازگشتی اون رو هم یه چیز درست در نظر گرفتید...حالا میخواید این ضرایب رو جوری تنظیم کنید که معادله ای که به دست میارید رو مدل دستگاه فیت بشه....حالا برای دیتا گرفتن از دستگاه معمولا یکی از این دو حالتی که میگم رخ میده.....

 

۱- شما مختارید به دستگاه ورودی بدید و اون در اختیار شماست:

 

تو این حالت باید یه ورودی مناسب پیدا کنیدو به دستگاه بدید..... این مبحث یه مبحث بسیار مهم هست که شما باید بسیار بهش دقت کنیدچون اگه ورودی درست انتخاب نشه اصن مدل شما شناسایی نمیشه....تیپ کاری هم که انجام میدید اصن مهم نیست....چه با الگوریتم حداقل مربعات این کار رو بکنید چه با شبکه های هوشمند عصبی و فازی....انتخاب ورودی یه مساله مهم هست....حالا چه ورودی هایی خوبن؟؟؟؟؟اینجا یه مبحثی وجود داره که به غنی بودن ورودی ها(PE بودن اونا)

بستگی داره...ورودی ای غنی هست که بتونه سیستم رو از نظر فرکانسی به خوبی تحریک کنه... مثلا برای این مثالی که چهار تا ضریب مجهول داره استفاده از ورودی پله اصن صحیح نیست....شرط کافی برای شناسایی یه سیستم اینه که درجه غنای ورودی حداقل به اندازه مجهولات مساله باشه...الان برای این مساله بایستی یه ورودی با درجه غنای ۴ بدیم....حالا درجه غنا رو چه جور تشخیص بدیم؟؟؟؟؟ برای این کار معمولا یه ماتریس کواریانس تشکیل میدن و میبینن تا چه درجه ای مثبت معین هست و اگه ماتریس کواریانس از هر درجه ای رتبش افت کرد دیگه غنی از اون مرتبه نیست و از غنی از مرتبه یه مرحله قبله....اما متلب کار ما رو تو این زمینه راحت کرده و کافیه از دستور pexcit استفاده کنیم....اما این دستور یه اشکال کوچیک داره و اگه غنای سیگنالی از مرتبه بی نهایت باشه متلب میگه غناش ۵۰ است:ws3:

 

اما ورودی های رایجی که در نظر میگیرن معمولا این سیگنال ها هستن....

 

۱- ورودی نویز گوسی: این سیگنال خیلی سیگنال باحالی هست و غناش از مرتبه بی نهایت هس!!!!ولی یه مشکلی داره که به خاطر ریپل شدیدی که داره ممکنه که باعث آسیب به دستگاه صنعتی بشه....ولی برای آموزش این مباحث بسیار عالی هست و من ازش استفاده میکنم....

 

۲- ورودی سینوسی: هر ورودی سینوسی غناش از مرتبه ۲ هست.....یعنی میتونه یه معادله دیفرانسیل با دو مجهول رو شناسایی کنه

 

۳-ورودی چیرپ: این ورودی شبیه سازی شده چه چه بلبل هست!!!:whistle:

ولی از نظر ریاضی یه سیگنال سینوسی هست که فرکانسش در طول زمان افزایش پیدا میکنه و شکلش شبیه به فنره!!!!هی اون آخراش جمع تر میشه....درجه غنای این سیگنال هم بسیار بالاس

 

۴- ورودی PRBS: همشو که نمیشه من بگم!!!! خودتون برید اینو مطالعه کنید....این سیگنال یه سیگنال کاملا نرمال با درجه غنای بالا هستش...در ضمن به شیر ها و عملگر های صنعتی هم اصن آسیب نمیرسونه و مشکل ورودی نویز رو نداره:w16:

 

۵- و.....(ورودی های مناسب بسیار بسیار زیادن!!!)

 

نکته: اگه دو سیگنال با هم جمع بشن درجه غناشون با هم جمع میشه....مثلا اگه من دو سیگنال سینوسی با فرکانس های متفاوت رو با هم جمع کنم درجه غنای سیگنال حاصل میشه ۴.....بعد اونوخت میتونم اون مثالی که اون بالا گفتم رو شناسایی کنم باهاش...

اما بریم سراغ حالت دوم:

 

۲- شما مختار نیستید که به سیستم ورودی بدید!!!

 

فرض کنید دو گونی برای شما داده آوردن میگن شناساییش کن!!!! اینا ورودین!!!! اینم خروجی !!!!

 

بعد شما میگید آیا ورودی های شما غنی هست؟؟؟؟؟

 

طرف میگه: هاع؟؟؟؟؟؟؟؟؟؟؟؟؟:ws52::ws38::icon_pf (34):

 

اینجا شما میگید ان شاء الله که غنی هست!!!!:ws3: و کار رو شرو میکنید

 

نکته: اگه شما خودتون دارید مدل میکنید یه چیزی رو.....به این نکته توجه کنید...فرض کنید شما میخواید سرعت آبدهی یه سد رو مدل کنید.... اگه بیاید داده ها تونو فقط هر شب ساعت ۱۰ شب بردارید به درد نمیخوره....اگه هر روز ساعت ۱۲ ظهر هم بر دارید به درد نمیخوره....بهتره دو روز وقت بذارید و داده ها تون در تمام طول روز بردارید که سرعت آبدهی سد متفاوت باشه و تحریک مدل صورت بگیره....:w16:

 

 

تو این مساله همونجور که گفتم از ورودی نویز سفید گوسی استفاده میکنم که درجه غناش بی نهایت هست

 

خوب دیگه بحث ورودی مناسب رو میذاریم کنار و بریم سراغ مدل سازی و شناسایی.... اول با یه حلقه تکرار از معادله دیفرانسیل خروجی میگیرم....بعد فرض میکنم که فقط ورودی خروجی ها در اختیار منه و طبق روابط ریاضی ای که در پست قبلی گفتم ضریب ها رو تخمین میزنم.....

نتایج واقعا خیره کنندس.....

اعداد حتی تا ۴ رقم اعشار درست هستن....اینم کد متلبش خودتون اجرا کنید و ببینید:

 

 


[font=Courier]close all;clear all;clc[/font]

[font=Courier]u=randn(1,1000);[/font]

[font=Courier]U_data = iddata([],u');[/font]
[font=Courier]pe_of_u = pexcit(U_data)[/font]

[font=Courier]y=zeros(1,3);[/font]

[font=Courier]for n=3:1000[/font]
[font=Courier]    y(n)=0.3*y(n-1)-0.8*y(n-2)+u(n-1)+5*u(n-2);[/font]
[color=#0433FF][font=Courier]end[/font][/color]

[font=Courier]for t=3:length(y)[/font]
[font=Courier]    Phi(t,:)=[y(t-1) y(t-2) u(t-1) u(t-2)];[/font]
[color=#0433FF][font=Courier]end[/font][/color]

[font=Courier]Y=y.';[/font]

[font=Courier]Theta_hat=inv(Phi.'*Phi)*Phi.'*Y[/font]


 

تمرین: اینجا برای شما یه سری داده ورودی خروجی میذارم...شما فرض کنید که اصن سیستم رو در اختیار ندارید....مدل معادله دیفرانسیل هم به صورت همین مساله در نظر بگیرید......از شما میخوام که ضرایب این معادله دیفرانسیل رو بگید!!!!

Data.zip

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام یه سوال دارم از قسمت حذف گوسی که در کتاب کراری یه موتور dc را مثال زده.حالا میخوام با روش حذف گوسی مساله رو به ازای 3ورودی 220حل کنم و ماتریس u را تشکیل بدم منتها مشکلی که هست نمیدونم ماتریس u را مطابق با فرمی که در کتاب گفته درست در آوردم یا نه...چون نمیتونم بالا مثلثیش کنم.بی زحمت ماتریس u را به من بگید چطور در آوردید. با تشکر

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

دروود من معادله تفاضلی را با بست فیتس 100%در آوردم

A(z) y(t) = B(z) u(t) + e(t)

A(z) = 1 - 1.5 z ^ -1 + 1.22 z^-2 - .72 z^-3 + 6.45e-17 z^-4

B(z)=-3.718e-16 - 0.2 z^-1 +4.2 z^-2 – 4 z^-3

 

:banel_smiley_4:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
edame bede baradar yaser

 

اگه خدا بهم عمر بده حتما ادامه میدم:a030:

 

 

دروود من معادله تفاضلی را با بست فیتس 100%در آوردم

A(z) y(t) = B(z) u(t) + e(t)

A(z) = 1 - 1.5 z ^ -1 + 1.22 z^-2 - .72 z^-3 + 6.45e-17 z^-4

B(z)=-3.718e-16 - 0.2 z^-1 +4.2 z^-2 – 4 z^-3

 

:banel_smiley_4:

 

خوب این مشکلش چیه؟؟؟؟صد در صد فیت شده لابد مدلتون همین بوده دیگه!!:w58:

البته ممکنه اور فیتینگ شده باشی که اونو یکم سخته تشخیصش

 

کرولیشن بگیر بین ورودی و خروجی ببین درجه نسبی چند میشه؟؟؟؟؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آقا کارت درسته

میشه بگی اگه بخواهیم با حذف گوسی بالا مثلثی کنیم و ضرایبو تخمین بزنیم چه کنیم:ws38:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
آقا کارت درسته

میشه بگی اگه بخواهیم با حذف گوسی بالا مثلثی کنیم و ضرایبو تخمین بزنیم چه کنیم:ws38:

 

لطف دارید شما....

با حذف گوسی؟؟؟؟ مثل حل دستگاه معادلات؟؟؟؟ ندیدم این روش رو بکار ببرن برای تخمین....یه کم بیشتر توضیح میدید؟؟؟؟؟

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

آقا من با اجازت m.file یه تغییر کوچولو دادم تا ماتریس phi که تشکیل میدی سطر اول ودوم آن نباید صفر باشه.;همچنین yn

 

 

 

close all;clear all;clc

 

u=randn(1,1000);

 

U_data = iddata([],u');

pe_of_u = pexcit(U_data)

 

 

 

for n=1:1000

if n==1;

y(n)=0

else if n==2

y(n)=.3*y(1)-0+u(1)+0

else

y(n)=0.3*y(n-1)-0.8*y(n-2)+u(n-1)+5*u(n-2);

end

end

end

 

for t=1:length(y);

if t==1;

Phi(t,:)=[0 0 0 0];

else if t==2

Phi(t,:)=[y(1) 0 u(1) 0];

else

 

Phi(t,:)=[y(t-1) y(t-2) u(t-1) u(t-2)];

end

end

end

 

Y=y.';

 

Theta_hat=pinv(Phi)*Y

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

این مسیله را میشه با حذف گوسیم تکرار کرد

اینم m.file اش

a=u'*u;

b=u'*y;

n=size(a,1);

ap=eye(n);

for i=1:n-1;

for j=1:n;

for k=1:n;

if(j==i&j

ap(k,j)=-a(k,j)/a(i,i);

 

 

end

if(j>k)

ap(k,j)=0;

 

 

end

end

end

b=ap*b;

a=ap*a;

 

ap=eye(n);

 

end

 

 

a

b

teta=inv(a)*b

 

:gnugghender:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

وقتی داری ماتریس Phi را تشکیل میدی

[y(t-1) -y(t-2) u(t-1) u(t-2-)]

ضرایب yt-1 وyt-2 طبق فرم معادله تفاضلی باید منفی داشته باشه

,ولی منفی بذاریم یا نذاریم جوابا فرقی نمیکه:ws38:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Phi)T*Phi )در صورتی معکوس پذیر است که دترمینان آن مخالف صفر باشد حالا اگه صفر شد یعنی ورودی مدهای سیستم را از خواب بیدار نکرده ونمیتوان سیستم را شناسایی کرد.حالا چه کنیم که مدها بیدار شن:banel_smiley_4: ؟؟؟؟

باید از روش حذف گوسی استفاده کرد تا بتوانیم شناسایی سیستم را انجام دهیم:hapydancsmil:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

در مورد سوالی که گذاشتین بگم چرا فیتنس آن 100% چون خوشبختانه تخمین ما کاملا درست بوده و ضرایب دقیق در آمده به خاطر همین ضرایب معادله تفاضلی و پیوسته هم در قسمت ident کاملا دقیقه:gnugghender:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
آقا من با اجازت m.file یه تغییر کوچولو دادم تا ماتریس phi که تشکیل میدی سطر اول ودوم آن نباید صفر باشه.;همچنین yn

 

 

سلام. کار خوبی کردی آقا احسان اما اونا صفر نبودن شرایط اولیه سیستم بودن که اینجا تو این مثال من صفر گذاشته بودمشون. بهتره باشن و حذفشون نکنی:a030:

این مسیله را میشه با حذف گوسیم تکرار کرد

 

بله حق با توئه اینو میشه با دستگاه گوسی حل کرد چون معادلات دیفرانسیل تو فضای گسسته زمان به معادلات تفاضلی تبدیل میشن. اما به نظرت همیشه میشه گسسته زمان بحث رو جلو برد؟اگه سیستمت پیوسته بود چیکار میکردی؟؟ چون بحث خوبی رو مطرح کردی میگم: به نظرت نرخ نمونه برداری رو شناسایی چه قد تاثیر میذاره؟؟؟ تا حالا بهش فکر کردی؟؟؟:ws38:

 

وقتی داری ماتریس Phi را تشکیل میدی[y(t-1) -y(t-2) u(t-1) u(t-2-)]

 

ضرایب yt-1 وyt-2 طبق فرم معادله تفاضلی باید منفی داشته باشه

,ولی منفی بذاریم یا نذاریم جوابا فرقی نمیکه:ws38:

 

نه عزیر این طور که میگی رایج نیست. بهتر هست که منفی رو تو بردار رگرسیون ضرایب در نظر بگیری. یعنی اینجا خودشو بدون منفی بدی اگه نیاز به ضریب منفی باشه خودش تو ضرایبش منفی به دست میاد. چون ما نمیخوایم اینجا تابع تبدیل شناسایی کنیم که!!! میخوایم معادله بازگشتی خروجی شناسایی کنیم!!! اینا همون منفی ای که میگی باهم فرق دارن:w16:

اگه منفی اینجا وارد کنی ضرایبی هم که به دست میاری منفی میشن امکان نداره اینجور که میگی هیچی تغییر نکنه... اگه اینطوره نمونه کد بذار منم ببنم:a030:

 

 

Phi)T*Phi )در صورتی معکوس پذیر است که دترمینان آن مخالف صفر باشد حالا اگه صفر شد یعنی ورودی مدهای سیستم را از خواب بیدار نکرده ونمیتوان سیستم را شناسایی کرد.حالا چه کنیم که مدها بیدار شن:banel_smiley_4: ؟؟؟؟

باید از روش حذف گوسی استفاده کرد تا بتوانیم شناسایی سیستم را انجام دهیم:hapydancsmil:

 

اینو قبول ندارم!!!! اگه مد ها تحریک نشده باشن نمیتونی با کم و زیاد کردن مد ها رو بیدار کنی!!! فقط شانس شناسایی بالاتر میره!!! قطعیت حرفت رو رد میکنم اما قبول دارم که با روشهایی که معادلات رو از هم کم میکنن مث گوسی و جردن و اینا شانس شناسایی بالا میره!!

شرط غنای سیگنال یه شرط کافی هست احسان جان نه یه شرط لازم و کافی...تو آموزشها یه کوچولو بهش اشاره کردم:w02:

 

در مورد سوالی که گذاشتین بگم چرا فیتنس آن 100% چون خوشبختانه تخمین ما کاملا درست بوده و ضرایب دقیق در آمده به خاطر همین ضرایب معادله تفاضلی و پیوسته هم در قسمت ident کاملا دقیقه:gnugghender:

 

 

آهاااااا... اون سوالو میگی فیت نسش صد در صد شده بود؟؟؟؟؟:icon_pf (34):

آقا شرمنده!!! حق با توئه!!!! من اونو برای آموزش اینجا گذاشتم که اگه کد میزنن بچه ها زیاد درد سر نکشن و سیستم خوبی جلوشون باشه برای آموزش اولیه:icon_redface:

ببخشید که پست صفحه قبلتو با دقت نخوندم...:icon_gol::icon_gol::icon_gol:

زنده باد آقا احسان:a030:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

با سلام مرسی ممنون.من الگریتم حذف گوسی را داخل کتاب کراری خوندم که نوشته شده بود زمانی که Phi)T*Phi ) صفر بشه ازش استفاده میکنیم.منتها هیچ وقتم جواب خوبی بهم نداد.

یه سوال:به نظرتون اگه سیستم با خطا باشه و فقط ورودی و خروجی سیستم را داشته باشیم.در واقع خروجی که الان داریم با خطا

معادله تفاضلی که داریم به این صورت:

 

 

(y(t) = -a1*y(t-1) -a2*y(t-2) +b0*u(t-1) + b1*u(t-2) + c0*e(t)+c1*e(t-1

چطوری میشه ضرایب خطا را به دست آورد

ما هیچ مقداری از خطا نداریم فقط تنها چیزی که داریم ورودی:w58:خروجی همراه با خطا:hanghead: ودیگر هیچ

من چطوری میتونم ضرایب خطا رو در بیارم :4564:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
با سلام مرسی ممنون.من الگریتم حذف گوسی را داخل کتاب کراری خوندم که نوشته شده بود زمانی که Phi)T*Phi ) صفر بشه ازش استفاده میکنیم.منتها هیچ وقتم جواب خوبی بهم نداد.

یه سوال:به نظرتون اگه سیستم با خطا باشه و فقط ورودی و خروجی سیستم را داشته باشیم.در واقع خروجی که الان داریم با خطا

معادله تفاضلی که داریم به این صورت:

 

 

(y(t) = -a1*y(t-1) -a2*y(t-2) +b0*u(t-1) + b1*u(t-2) + c0*e(t)+c1*e(t-1

چطوری میشه ضرایب خطا را به دست آورد

ما هیچ مقداری از خطا نداریم فقط تنها چیزی که داریم ورودی:w58:خروجی همراه با خطا:hanghead: ودیگر هیچ

من چطوری میتونم ضرایب خطا رو در بیارم :4564:

 

سلام

خواهش میکنم... اون بحث صفر شدنه یه مبحث بسیار طولانی هست...خیلی باید تکنیک های زیادی رو به کار بگیری که شاید یکیش جواب بده

 

اما جواب سوالتون....شما بایستی از این ایده استفاده کنید که نویز رنگی تزریق شده به سیستم یه نویز رنگی هست اما خودش حاصل ورود یه نویز سفید به یه سیستم دینامیکی هست... یعنی همین که نوشتی تو بالا...در واقع e نویز سفیدی هست که وارد یه سیستم خطی شده و خروجی اون شده این

C(t)=c0e(t)+c1e(t-1)

 

حالا اگه دقت کنی باز یه سیستم خطی داری که اینبار خروجیشو داری اما ورودیشو نداری!!!! یعنی اون نویز سفید رو نداری!!! ایده که اینجا به کار میره اینه که میان از روشی با عنوان ELS یا Extended Least Square استفاده میکنن که تو این دیدگاه فرض میکنن در حین شناسایی خروجی در هر لحظه درست تخمین خورده (که در واقع میدونیم اینطور نیست و این یه توهمه!!! چون لحظات اولیه اصن شناسایی خوب صورت نمیگیره در روش های آنلاین!!) هر چند که این فرض غلطه اما به ما این کمک رو میکنه که بتونیم مساله رو جلو ببریم.. حالا که تخمین درست انجام گرفته پس میشه گفت خطای تخمین یه خطای سفید هست!!! حالا که خطا سفید شد همون خطا رو میدیم به عنوان ورودی به سیستم شناساگر نویز!!! حالا ضرایب نویز رنگی هم به مرور شناسایی میشه!!! هر چی تخمین جلو بره میشه گفت که این فرض ما که خطای تخمین سفید هست درست تر میشه و ضرایب نویز به مقادیر واقعیشون همگرا میشن... اما اگه دقت کنی میبینی که تو این روش ضرایب سیستم خیلی زود همگرا میشن اما ضرایب نویز خیلی طول میکشه که همگرا بشن (وحتی بعضی موقع ها هم شاید با یه بایاسی باشن و اصن همگرا نشن!!) دلیلش اینه که تو این مساله ورودی و خروجی سیستم اصلی در اختیار هست و اون همگرا میشه اما در سیستم نویز فقط خروجی رو در اختیار داریم و نمیدونیم نویز ورودی چی هست...داریم از خطای تخمین به جای ورودی این سیستم استفاده میکنیم... این بحث خیلی بحث قشنگیه.... تو مراجع نگاه کنی ریاضیاتشو به صورت کامل متوجه میشی:w16:

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از ۷۵ اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به عنوان یک لینک به جای

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • جدید...