برای سیستم هایی که تابع تبدیل نداریم و فقط با فضای حالت کار میکنیم، چطوری میشه فراجهش سیستم رو بدست آورد؟
یعنی چی؟ منظورتون رو متوجه نشدم!با حل معادلات دیفرانسیل
اگر معادلات ساده بود می شود به صورت تحلیلی معادلات را حل کرد
اما اگر معادلات پیچیده باشد (مانند بازو) معادلات را به صورت عددی حل می کنند
خیرما توی حالتی که تابع تبدیل داشتیم، اومگا و زتا یا کسی [نمیدونم کدومش درسته. هر کس هرچی میگه!] رو بدست میآوردیم و از روی اون میتونستیم فراجهش رو بدست بیاریم.
http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods
http://mathworks.ir/matlab-learning/44-differential-equation/104--runge-kutta-method
خیراون سوال قبلی منو جواب نمیدین؟
خب این اومد معادله دیفرانسیل یک معادله مرتبه بالا رو حساب کرد. حالا چطوری باید به محاسبه ی فراجهش ربطش بدیم؟خیر
فقط برای تابع تبدیل مرتبه اول و مرتبه دوم از این کار ها می توانستید بکنید
وقتی تابع تبدیل مرتبه اش بیشتر می شد تنها کاری که می توانستید بکنید این است که معادلات لاپلاس را حل کنید و ببینید چگونه است
حالا این حل معادلات لاپلاس یا به صورت تحلیلی (فرمول ریاضی) صورت می گیرد یا به صورت عددی
اینجا به جای معادلات لاپلاس، معادلات دیفرانسیل مرتبه اول دارید
دو راه دارد، یا معادلات دیفرانسیل ساده ای دارد و حلش می کنید
یا معادلاتش را بلد نیستید حل کنید می روید به صورت عدد حل می کنید
آیا درس محاسبات عددی پاس کردید؟
Runge–Kutta
کد:http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods
در سایت زیر هم یاد داده چگونه کد متلب را بنویسی
کد:http://mathworks.ir/matlab-learning/44-differential-equation/104--runge-kutta-method
خب این اومد معادله دیفرانسیل یک معادله مرتبه بالا رو حساب کرد. حالا چطوری باید به محاسبه ی فراجهش ربطش بدیم؟
این نموداری که رسم کرد ، همون نمودار معادله دیفرانسیل آونگ هست؟
مگه خود متلب دستور مستقیمی برای حل معادلات دیفرانسیل نداره؟ از جمله ode !
تفاضل میشه همون مقدار خطا دیگه. درسته؟شما با حل معادلات دیفرانسیل خروجی واقعی را اندازه می گیرید. می ماند یک تفریق ساده
با این توضیحاتی که دادین. من بعد از اینکه معادلات حالت رو بدست آوردم. باید با همون کد runge-kutta این معادله رو حل کنم؟دو معادله داری.
فکر کن هر دو شتاب زاویه ای مجهول است و بقیه چیزها همه معلوم.
یعنی DDq1 و DDq2 مجهول بقیه معلوم.
حالا دو معادله دو مجهول حل کن. (اگر نمی توانی دو معادله دو مجهول حل کنی من هیچ کمکی نمی توانم بکنم)
حالا متغیر های حالت را به صورت زیر تعریف کن
کد:z1=q1 z2=Dq1 z3=q2 z4=Dq2 u1=T1 u2=T2
و معادلات حالت به صورت زیر می شود
کد:Dz1=z2 Dz2=f2(z1,z2,z3,z4,u1,u2) Dz3=z4 Dz4=f4(z1,z2,z3,z4,u1,u2)
تفاضل برابر مقدار خطا می شود.تفاضل میشه همون مقدار خطا دیگه. درسته؟
منظورتون از فراجهش به این صورته؟ مثلاً الآن لینک دوم توی سیکل اول فراجهش داره بعد توی سیکل های بعدی بهتر میشه.
![]()
این نتایج قابل قبوله؟
آریبا این توضیحاتی که دادین. من بعد از اینکه معادلات حالت رو بدست آوردم. باید با همون کد runge-kutta این معادله رو حل کنم؟
توی مثالی هم که برای آونگ زده بود ظاهرن همینطوری بود. اول اومد معادلات حالت رو بدست آورد بعد اومد با محاسبات عددی حلش کرد. درسته؟
تا حالا نیازی به این کار نداشتماز کدوم بلوک استفاده کنم تا بتونم داخلش دستور set param رو اجرا کنم و با اجرا کردن اون، بصورت اتوماتیک دامنه ی سیگنال تغییر کنه!
خروجی واقعی، همون خروجی کنترل یا همون موقعیت بازو میشه که باید با سیگنال مرجع یکی باشه. درسته؟
خب الآن که میگید خروجی واقعی که با همون حل معادلات حالت با محاسبات عددی بدست میاد و باید با خروجی مطلوب یکسان باشه. پس کنترلر چیکاره هست؟
ما که توی معادلات حالت از کنترلر استفاده نمیکنیم!
آقای دکتر، ممنونم که با حوصله جواب میدین.ب) PID یک سیستم دو ورودی دو خروجی (مثل بازوی آرنجی) به صورت زیر است
کد:u1 = (Kd11 D + Kp11 + Ki11 / D ) e1 + (Kd12 D + Kp12 + Ki12 / D ) e2 u2 = (Kd21 D + Kp21 + Ki21 / D ) e1 + (Kd22 D + Kp22 + Ki22 / D ) e2
که D اپراتور مشتق نسبت به زمان است.
وقتی تبدیل لاپلاس یگیری D تبدیل به S می شود.
اگه بخوام برای تست مقاوم پذیری کنترلر، یک نویز تصادفی به سیستم وارد کنم چه نوع نویزی خوبه؟
بین صفر و یک باشه بهتره یا بین منفی یک و یک؟ یا اصلن فرقی نمیکنه؟
درسته. u های ما همون خروجی کنترلر و وردی سیستم هستند. بعد با معادلات حالت سیستم که باید با runge-kutta حل بشن چه رابطه ای دارن؟
نویز را در مقایسه به سیگنال می گیرند
اگر سیگنال یک است نویز یک خیلی زیاد است
برای تست اندازه نویز باید حداکثر نصف اندازه سیگنال باشد
شما از نویز نصف سیگنال شروع کن و اگر مقاوم نبود اندازه اش را کوچک تر کن تا برسی به یک صدم سیگنال
اگر باز هم مقاوم نبود ادامه نده!
یادت باشد اول سیستم بدون نویز را تست کنی بعد به سیستم نویز بدهی
نویز را هم بهتر است نویز سفید قرار دهید و نه نویز غیر سفید!
مثلا وقتی سیگنال دو است نویز را یک بار بین مثبت و منفی یک قرار بده و بار دیگر ین مثبت و منفی نیم و ...
random('Normal',-0.5,0.5,1,400)
تازه دارم یه چیزایی متوجه میشممعادلات کنترل را داری یعنی u را داری
معادلات سیستم هم داری یعتی توش u می بینی
حالا توی معالات سیستم به جای u معادلش را قرار بده
در نتیجه معادلات سیستم با کنترلر به دست می آید. این معادلات را حل کن
اول باید نرخ نمونه برداری را مشخص کنیمنظورت دامنه ی سیگنال هست؟
اگه دامنه سیگنال، یک باشه، نویز رو بصورت زیر در بیارم درسته؟
اگه بخوام نویزی به مدت t ثانیه تولید کنم چطوریه؟
random('Normal',-0.5,0.5,1,400)
random('Normal',0,sigma,1,f*T)
unifrnd(-sigma,+sigma,1,f*T)
sigma = M / SNR
بعد از اینکه معادلات سیستم با کنترلر بدست اومد باید با runge-kutta حلش کنم؟
درسته؟
مقاله مرجعی که دارم ازش استفاده میکنم هم با همین روش انجام داده ولی جزئیاتش رو دیگه نگفته بود.اما با هر روشی می توان معادلات را حل کرد.
پیشنهاد من runge-kutta است. چون دقتش بالاتر است
مقاله مرجعی که دارم ازش استفاده میکنم
نویزی که برای سیستم انتخاب میشه باید در هر بار اجرا شدن برنامه بصورت تصادفی عوض بشه یا یک بار باید ایجادش کنیم و داده هاش رو ذخیره کنیم و برای همه دوره ها و مدل های مختلف از همون یک داده استفاده کنیم؟
اگه از توی سیمولینک بخوام استفاده کنم چی؟ توی بلوک، نرخ نمونه برداری همون sample هست؟
بلوک هایی که نویز تولید میکنند میانگین و واریانس هم دارند. اینجا مهم نیست؟
آقای دکتر، این رابطه ای که قرار دادم، چرا توی آرگومان آرک تانژانت، دو تا پارامتر قرار داده؟ منظورش جیه؟
من توی متلب دستور تانژانت رو دیدم یک مقدار ورودی میگرفت! اینجا چطوریه؟
![]()
این تصویری که پایین میذارم، اومده زوایای theta3 ,theta2 رو بدست آورده. مقدار D چطوری بدست میاد؟
توی رابطه 3-44 معادله رو برابر با D=: قرار داده. منظورش چیه؟
مشاهده پیوست 232606
خب الآن در رابطه ی 3.56 ، بجای D چه عبارتی رو باید قرار بدم؟
اگه درست نیست یه راهنمایی بفرمایید لطفاً
توی این لینک اومد هم از niose استفاده کرد و هم از disturbance که نویز وارد مرجع میشه و اغتشاش وارد مدل سیستم.
http://www.sharefile.ir/uploads/1424679270.jpg
چه فرقی با هم دارند؟
برای بررسی عدم قطعیت مدل، اومد این دو مورد رو بررسی کرد: disturbance rejection and noise suppression
معنیشون چیه؟
Thread starter | عنوان | تالار | پاسخ ها | تاریخ |
---|---|---|---|---|
![]() |
کاربرد های صنعتی کنترل امپدانس ربات | مهندسی رباتیک | 0 | |
![]() |
راهنمای کنترل وسایل الکتریکی خانگی | مهندسی رباتیک | 0 | |
![]() |
بازوی مکانیکی ساخت ایران! | مهندسی رباتیک | 2 | |
![]() |
بدست آوردن تابع تبدیل بازوی ربات | مهندسی رباتیک | 15 | |
![]() |
بازوی رباتیک ساخت خودمون | مهندسی رباتیک | 1 |