ehsanphp 62 ارسال شده در 6 مهر، 2015 اینکه شرایط اولیه را صفر گذاشتین درست ولی در کل فرم ماتریس phi را اگه ازمون بخوان باید به اون صورت که گذاشتم انجامش داد. حالااا یه سوال چه موقع میشه تشخیص داد که باید شرایط اولیه رو صفر گذاشت یا نع ؟ y(t)=-1.1*y(t-1)-.3*y(t-2)+u(t-1)+.6*u(t-2) اگه دترمینان Phi)T*Phi ) صفر بشه و ما شرایط اولیه را صفر نگذاشته باشیم اون وقت برای به دست آوردن ضرایب تخمین دچار مشکل میشیم. حالا چه میشه کرد؟ شرایط اولیه را صفر میذاریم .و میبینیم که مشکل حل شده و ضرایب دقیق در میاد:hapydancsmil: حالا جرا وقتی شرایط اولیه رو صفر گذاشتیم مشکل حل شد:5c6ipag2mnshmsf5ju3 چون سیستم ما تاخیر دار بوده در مثالی که شما گذاشتین دترمینان Phi)T*Phi صفر نشد در نتیجه مشکلی برامون درست نکرد به خاطر همین من شرایط اولیه رو گذاشتم چون شمام حرفی نزده بودی از شرایط اولیه:gnugghender: 3
ehsanphp 62 ارسال شده در 6 مهر، 2015 من با اجازتون یه الگریتم wls طراحی کردم که جوابهای تخمین فوق العادست منتها تو این الگریتم احتیاج به معادله دقیق ریاضی دارم فرض کنید ورودی و خروجیم به این صورت باشه و معادله رگرسیون y(t) = -a1*y(t-1) -a2*y(t-2) +b0*u(t-1) + b1*u(t-2) x=[.359 .869 -.233 .0388 .662 -.931 -.893 .0594 .342 -.985]'; y=[-2.75 -2.16 -.271 1.31 2.07 2.88 2.26 .0233 -1.94 -2.55]'; حالا به نظرتون من چه کنم که بتونم معادله دقیق ریاضی را به دست بیارم؟ در واقع معادله تفاضلی تشکیل بدم که یه خطایی درش در نظر گرفته شده باشه مثل معادله بالا که بتونم معادله دقیق ریاضی را پیدا کنمچه میشه کرد؟ 2
ehsanphp 62 ارسال شده در 6 مهر، 2015 %e=randn(10,1) for t=1:100 if t==1 U(t,:)=[0 0 0 0 e(1) 0]; else if t==2 U(t,:)=[y(1) 0 u(1) 0 e(2) e(1)]; else U(t,:)=[y(t-1) y(t-2) u(t-1) u(t-2) e(t) e(t-1)]; end end end Theta_hat_direct=pinv(U)*y این کاری که واسه eانجام دادم به نظرتون درسته؟ 2
amin.genius 12 ارسال شده در 30 مهر، 2015 سلام یاسر جااااان ممنون از این آموزش اما من میخوام واسه بدست آوردن مدلم به کمک ورودی و خروجی ها ، تأخیر هم وجود دارد که مقدار آن را نمیدانم و می خواهم با این روش حداقل مربعات علاوه بر ضرایب معادله تفاضلی مقدار تأخیر ورودی را نیز تقریب بزنم اگه ممکنه تو این مورد یه توضیحی بدهید اگه کد متلبش رو هم مثال بزنید خیلی عااالی میشه:ws38::ws52: y(n) = -c*y(n-1) + a*u(n-m) + b*u(n-m-1) :equatin مجهولای من a , b ,c و تأخیر ورودی m میباشد بسیار سپاسگزارم:icon_gol: 2
عقیل عقیلی 11 ارسال شده در 27 اسفند، 2015 سلام و درود به همه ی دوستای عزیزم آقا یاسر سلام درود برشما آقا میشه ادامه ی بحث رو بگذارید خیلی مطالب قبلیتون کمکم کرد اگه میشه با توضیحاتت بیشتر بهمون کمک کنید ممنونم ازت بخاطر این لطف و بزرگواریت 1
danial.ds 11 ارسال شده در 4 فروردین، 2016 با سلام خدمت شما دوستان عزیز یک سوال شناسایی داشتم که ممنون میشم اگر بهم کمک کنین.تازه کارم تو این زمینه معادله سیستمی به فرم زیر داریم: Ay=Bu+We A=1+0.5q^-1 B=q^-1 W=(1+0.2q^-1)/(1+0.6q^-1) حالا بافرض ورودی پله یعنی همونu و e هم نویز سفید(میانگین صفر و واریانس 1) خروجی رو میخوام بدست بیارم. در نظر خودم،با در نظر گرفتن مدل سیستم به عنوان مدل ARMAX،طبق این مدل اگر سیگنال خطا نویز سفید باشه در نتیجه (C^-1)=1 که در اینجا همون w=1 میشه پس مدل بصورت زیر بدست می آید.Ay=Bu+e…….>>>y=(B/A)*u + (1/A)*e………>>>>>y=( (q^-1)/(1+0.5q^-1) ) *u + ( 1/(1+0.5q^-1) )*e فایل متلبش رو اینطور نوشتم: clc clear all ('z=tf('z ;(G1=1/(z+0.5 ;(G2=z/(z+0.5 ;t=0:1:100 ;(y1,t]=step(G1,t] ;(y2,t]=step(G2*randn,t] ;Y=y1+y2 تحت دوتا تابع تبدیل یکی باورودی پله دیگری با ورودی پله که در نویز سفید ضرب شده نوشتم، نهایتا خروجی هردوشون رو باهم جمع کردم و سیگنال خروجی بدست آوردم. نمیدونم تا اینحا درسته انجام دادم یا نه. دوستان لطفا راهنماییم کنید.ممنون 1
Yaser.C 5059 مالک ارسال شده در 31 فروردین، 2016 %e=randn(10,1) for t=1:100 if t==1 U(t,:)=[0 0 0 0 e(1) 0]; else if t==2 U(t,:)=[y(1) 0 u(1) 0 e(2) e(1)]; else U(t,:)=[y(t-1) y(t-2) u(t-1) u(t-2) e(t) e(t-1)]; end end end Theta_hat_direct=pinv(U)*y این کاری که واسه eانجام دادم به نظرتون درسته؟ نه غلطه!!! خط اولت غلطه درصد نباید بذاری!!هلپ متلب رو بخون دستت میاد دستور randn چه جور کار میکنه 4
Yaser.C 5059 مالک ارسال شده در 31 فروردین، 2016 سلام یاسر جااااانممنون از این آموزش اما من میخوام واسه بدست آوردن مدلم به کمک ورودی و خروجی ها ، تأخیر هم وجود دارد که مقدار آن را نمیدانم و می خواهم با این روش حداقل مربعات علاوه بر ضرایب معادله تفاضلی مقدار تأخیر ورودی را نیز تقریب بزنم اگه ممکنه تو این مورد یه توضیحی بدهید اگه کد متلبش رو هم مثال بزنید خیلی عااالی میشه:ws38::ws52: y(n) = -c*y(n-1) + a*u(n-m) + b*u(n-m-1) :equatin مجهولای من a , b ,c و تأخیر ورودی m میباشد بسیار سپاسگزارم:icon_gol: علیک سلام امین جااااان!!! آقا بایستی بین ورودی و خروجی اتوکرولیشن بگیری....رو هر سمپلی که اولین پیک رو زد اون تاخیر خالص سیستم شما از طرف ورودی میشه که میشه همون m:w16: البته بگم که اتوکرولیشن یه روش آماری خطی حساب میشه پس به روی سیستم های خطی جواب میده... البته اینم بگم اگه سیستم غیرخطی بود لزوما غلط نیستاا!! حداقلش اینه که میتونه یه دیدی بده که تاخیر رو از چند شرو کنی 3
Yaser.C 5059 مالک ارسال شده در 31 فروردین، 2016 سلام و درود به همه ی دوستای عزیزمآقا یاسر سلام درود برشما آقا میشه ادامه ی بحث رو بگذارید خیلی مطالب قبلیتون کمکم کرد اگه میشه با توضیحاتت بیشتر بهمون کمک کنید ممنونم ازت بخاطر این لطف و بزرگواریت منم به همه دوستان سلام میکنم!! (مثه اینکه فقط مهرداد دوست ماس!!) علیک سلام آقا عقیل و همچنین دورود بر شما!!!(مگه درود همون سلام نیس؟؟؟) آقا من فعلا خسته ام!!! خسته!!!! روشنه؟؟؟؟؟ نه جدا باس یه کم ذهنمو جمع و جور میکنم اگه زنده باشم یه چن تا مطلب کوچیک میذارم...اگه سوالی بود شما بپرسید..در حد سوادم باشه حتما جواب میدم.. 3
Yaser.C 5059 مالک ارسال شده در 31 فروردین، 2016 با سلام خدمت شما دوستان عزیزیک سوال شناسایی داشتم که ممنون میشم اگر بهم کمک کنین.تازه کارم تو این زمینه معادله سیستمی به فرم زیر داریم: Ay=Bu+We A=1+0.5q^-1 B=q^-1 W=(1+0.2q^-1)/(1+0.6q^-1) حالا بافرض ورودی پله یعنی همونu و e هم نویز سفید(میانگین صفر و واریانس 1) خروجی رو میخوام بدست بیارم. در نظر خودم،با در نظر گرفتن مدل سیستم به عنوان مدل ARMAX،طبق این مدل اگر سیگنال خطا نویز سفید باشه در نتیجه (C^-1)=1 که در اینجا همون w=1 میشه پس مدل بصورت زیر بدست می آید.Ay=Bu+e…….>>>y=(B/A)*u + (1/A)*e………>>>>>y=( (q^-1)/(1+0.5q^-1) ) *u + ( 1/(1+0.5q^-1) )*e فایل متلبش رو اینطور نوشتم: clc clear all ('z=tf('z ;(G1=1/(z+0.5 ;(G2=z/(z+0.5 ;t=0:1:100 ;(y1,t]=step(G1,t] ;(y2,t]=step(G2*randn,t] ;Y=y1+y2 تحت دوتا تابع تبدیل یکی باورودی پله دیگری با ورودی پله که در نویز سفید ضرب شده نوشتم، نهایتا خروجی هردوشون رو باهم جمع کردم و سیگنال خروجی بدست آوردم. نمیدونم تا اینحا درسته انجام دادم یا نه. دوستان لطفا راهنماییم کنید.ممنون و خدمت شما دوست عزیز!! بله درسته مدل شما آرمکس هست... خو غلط نوشتی مسلمان!!! این چیه از خودت در آوردی؟؟! ;(y2,t]=step(G2*randn,t] مگه تابع تبدیل رو تو نویز ضرب میکنن؟؟؟ اینجا اگه منظورت اینه که به تابع تبدیل ورودی نویز بدی قصه اش فرق میکنه!! باس از دستور lsim استفاده کنی...یعنی اول نویز رو بسازی بعد بدی دستور lsim تا با سیستم خطی پاسخ کانولوشن بگیره و جوابشو بت بده... دستور lsim رو میتونی از هلپ بخونی و بفهمی اما اگه بازم مشکل داشتی می تونی یه سری به اون تاپیکی که کاربرد متلب در مهندسی کنترل تو اون جوونیام نوشتم یه سری بزنی...فک کنم اونجا اشاره کرده بودم...اگه بازم مشکلی بود و نتونستی کد بزنی بگو تا بیشتر توضیح بدم 2
ارسال های توصیه شده