ehsanphp 62 اشتراک گذاری ارسال شده در 15 تیر، ۱۳۹۴ اینکه شرایط اولیه را صفر گذاشتین درست ولی در کل فرم ماتریس 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 اشتراک گذاری ارسال شده در 15 تیر، ۱۳۹۴ من با اجازتون یه الگریتم 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 اشتراک گذاری ارسال شده در 15 تیر، ۱۳۹۴ %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 اشتراک گذاری ارسال شده در 8 مرداد، ۱۳۹۴ سلام یاسر جااااان ممنون از این آموزش اما من میخوام واسه بدست آوردن مدلم به کمک ورودی و خروجی ها ، تأخیر هم وجود دارد که مقدار آن را نمیدانم و می خواهم با این روش حداقل مربعات علاوه بر ضرایب معادله تفاضلی مقدار تأخیر ورودی را نیز تقریب بزنم اگه ممکنه تو این مورد یه توضیحی بدهید اگه کد متلبش رو هم مثال بزنید خیلی عااالی میشه: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 اشتراک گذاری ارسال شده در 6 دی، ۱۳۹۴ سلام و درود به همه ی دوستای عزیزم آقا یاسر سلام درود برشما آقا میشه ادامه ی بحث رو بگذارید خیلی مطالب قبلیتون کمکم کرد اگه میشه با توضیحاتت بیشتر بهمون کمک کنید ممنونم ازت بخاطر این لطف و بزرگواریت 1 لینک به دیدگاه
danial.ds 11 اشتراک گذاری ارسال شده در 15 دی، ۱۳۹۴ با سلام خدمت شما دوستان عزیز یک سوال شناسایی داشتم که ممنون میشم اگر بهم کمک کنین.تازه کارم تو این زمینه معادله سیستمی به فرم زیر داریم: 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 مالک اشتراک گذاری ارسال شده در 11 بهمن، ۱۳۹۴ %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 مالک اشتراک گذاری ارسال شده در 11 بهمن، ۱۳۹۴ سلام یاسر جااااانممنون از این آموزش اما من میخوام واسه بدست آوردن مدلم به کمک ورودی و خروجی ها ، تأخیر هم وجود دارد که مقدار آن را نمیدانم و می خواهم با این روش حداقل مربعات علاوه بر ضرایب معادله تفاضلی مقدار تأخیر ورودی را نیز تقریب بزنم اگه ممکنه تو این مورد یه توضیحی بدهید اگه کد متلبش رو هم مثال بزنید خیلی عااالی میشه: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 مالک اشتراک گذاری ارسال شده در 11 بهمن، ۱۳۹۴ سلام و درود به همه ی دوستای عزیزمآقا یاسر سلام درود برشما آقا میشه ادامه ی بحث رو بگذارید خیلی مطالب قبلیتون کمکم کرد اگه میشه با توضیحاتت بیشتر بهمون کمک کنید ممنونم ازت بخاطر این لطف و بزرگواریت منم به همه دوستان سلام میکنم!! (مثه اینکه فقط مهرداد دوست ماس!!) علیک سلام آقا عقیل و همچنین دورود بر شما!!!(مگه درود همون سلام نیس؟؟؟) آقا من فعلا خسته ام!!! خسته!!!! روشنه؟؟؟؟؟ نه جدا باس یه کم ذهنمو جمع و جور میکنم اگه زنده باشم یه چن تا مطلب کوچیک میذارم...اگه سوالی بود شما بپرسید..در حد سوادم باشه حتما جواب میدم.. 3 لینک به دیدگاه
Yaser.C 5059 مالک اشتراک گذاری ارسال شده در 11 بهمن، ۱۳۹۴ با سلام خدمت شما دوستان عزیزیک سوال شناسایی داشتم که ممنون میشم اگر بهم کمک کنین.تازه کارم تو این زمینه معادله سیستمی به فرم زیر داریم: 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 لینک به دیدگاه
ارسال های توصیه شده