کنترل بازوی آرنجی

Coronaa

کاربر فعال
یه سوال دیگه :
برای سیستم هایی که تابع تبدیل نداریم و فقط با فضای حالت کار میکنیم، چطوری میشه فراجهش سیستم رو بدست آورد؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
برای سیستم هایی که تابع تبدیل نداریم و فقط با فضای حالت کار میکنیم، چطوری میشه فراجهش سیستم رو بدست آورد؟

با حل معادلات دیفرانسیل

اگر معادلات ساده بود می شود به صورت تحلیلی معادلات را حل کرد
اما اگر معادلات پیچیده باشد (مانند بازو) معادلات را به صورت عددی حل می کنند
 

Coronaa

کاربر فعال
با حل معادلات دیفرانسیل

اگر معادلات ساده بود می شود به صورت تحلیلی معادلات را حل کرد
اما اگر معادلات پیچیده باشد (مانند بازو) معادلات را به صورت عددی حل می کنند
یعنی چی؟ منظورتون رو متوجه نشدم!
ما توی حالتی که تابع تبدیل داشتیم، اومگا و زتا یا کسی [نمیدونم کدومش درسته. هر کس هرچی میگه!] رو بدست میآوردیم و از روی اون میتونستیم فراجهش رو بدست بیاریم. اینجا با چه روابطی سر و کار داریم؟
راستی، اون سوال قبلی منو جواب نمیدین؟
 

ROBOTICS

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

اینجا به جای معادلات لاپلاس، معادلات دیفرانسیل مرتبه اول دارید
دو راه دارد، یا معادلات دیفرانسیل ساده ای دارد و حلش می کنید
یا معادلاتش را بلد نیستید حل کنید می روید به صورت عدد حل می کنید

آیا درس محاسبات عددی پاس کردید؟
Runge–Kutta

کد:
http://en.wikipedia.org/wiki/Runge%E2%80%93Kutta_methods

در سایت زیر هم یاد داده چگونه کد متلب را بنویسی

کد:
http://mathworks.ir/matlab-learning/44-differential-equation/104--runge-kutta-method


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

Coronaa

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

اینجا به جای معادلات لاپلاس، معادلات دیفرانسیل مرتبه اول دارید
دو راه دارد، یا معادلات دیفرانسیل ساده ای دارد و حلش می کنید
یا معادلاتش را بلد نیستید حل کنید می روید به صورت عدد حل می کنید

آیا درس محاسبات عددی پاس کردید؟
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 !
 

ROBOTICS

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

فراجهش یعنی میزان بالاتر رفتن خروجی واقعی از خروجی مطلوب
اگر خروجی مطلوب ۱ باشد و خروجی واقعی در بیشترین مقدار خود به ۱/۵ برسد میزان فراجهش ۵۰ درصد است
اگر خروجی مطلول ۲ باشد و خروجی واقعی در بیشترین مقدار خود به ۱/۵ برسد میزان فراجهش صفر است

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

مگه خود متلب دستور مستقیمی برای حل معادلات دیفرانسیل نداره؟ از جمله ode !

دارد
اما این طوری شما کنترل بیشتری روی کد دارید و با تغییر پارامتر ها می تواند دقت را کم و زیاد کنید
 

Coronaa

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


دو معادله داری.

فکر کن هر دو شتاب زاویه ای مجهول است و بقیه چیزها همه معلوم.
یعنی 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 تونستم از داخل m-file تغییر بدم ولی نمیدونم از کدوم بلوک استفاده کنم تا بتونم داخلش دستور set param رو اجرا کنم و با اجرا کردن اون، بصورت اتوماتیک دامنه ی سیگنال تغییر کنه!
از بلوک Embedded Matlab Function هم استفاده کردم ولی خطا میده.
میشه یه راهنمایی بکنید؟
http://www.sharefile.ir/uploads/1424148317.rar

ممنونم از محبت شما

 
آخرین ویرایش:

ROBOTICS

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

منظورتون از فراجهش به این صورته؟ مثلاً الآن لینک دوم توی سیکل اول فراجهش داره بعد توی سیکل های بعدی بهتر میشه.

درسته لینک دوم در اولش فراجهش دارد
لینک اول در ابتدایش (جایی که منفی شده) فروجهش (بعضی ها می گویند فراجهش منفی) دارد
همچنین لینک اول از زمان 1500 تا ۲۲۰۰ فراجهش دارد


این نتایج قابل قبوله؟

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

با این توضیحاتی که دادین. من بعد از اینکه معادلات حالت رو بدست آوردم. باید با همون کد runge-kutta این معادله رو حل کنم؟
توی مثالی هم که برای آونگ زده بود ظاهرن همینطوری بود. اول اومد معادلات حالت رو بدست آورد بعد اومد با محاسبات عددی حلش کرد. درسته؟
آری

از کدوم بلوک استفاده کنم تا بتونم داخلش دستور set param رو اجرا کنم و با اجرا کردن اون، بصورت اتوماتیک دامنه ی سیگنال تغییر کنه!
تا حالا نیازی به این کار نداشتم
برای همین اطلاعی ندارم
 

Coronaa

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

ROBOTICS

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

خروجی کنترل نیست

خروجی واقعی همان موقعیت بازو است

خروجی واقعی باید به خروجی مطلوب برسد

سیگنال مرجع ، لغت مناسبی نمی باشد هرچند عده ای استفاده می کنند. بهش بگویید خروجی مطلوب
 

Coronaa

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

ROBOTICS

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

u چیست؟

u ورودی سیستم هست
u خروجی کنترلر هست

تا شما u را قرار ندهید که نمی توانید معادلات را حل کنید

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

Coronaa

کاربر فعال
اگه بخوام برای تست مقاوم پذیری کنترلر، یک نویز تصادفی به سیستم وارد کنم چه نوع نویزی خوبه؟
بین صفر و یک باشه بهتره یا بین منفی یک و یک؟ یا اصلن فرقی نمیکنه؟
 

Coronaa

کاربر فعال
ب) 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 حل بشن چه رابطه ای دارن؟
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
اگه بخوام برای تست مقاوم پذیری کنترلر، یک نویز تصادفی به سیستم وارد کنم چه نوع نویزی خوبه؟
بین صفر و یک باشه بهتره یا بین منفی یک و یک؟ یا اصلن فرقی نمیکنه؟

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

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

نویز را هم بهتر است نویز سفید قرار دهید و نه نویز غیر سفید!
مثلا وقتی سیگنال دو است نویز را یک بار بین مثبت و منفی یک قرار بده و بار دیگر ین مثبت و منفی نیم و ...


درسته. u های ما همون خروجی کنترلر و وردی سیستم هستند. بعد با معادلات حالت سیستم که باید با runge-kutta حل بشن چه رابطه ای دارن؟

معادلات کنترل را داری یعنی u را داری
معادلات سیستم هم داری یعتی توش u می بینی
حالا توی معالات سیستم به جای u معادلش را قرار بده

در نتیجه معادلات سیستم با کنترلر به دست می آید. این معادلات را حل کن
 

Coronaa

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

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

نویز را هم بهتر است نویز سفید قرار دهید و نه نویز غیر سفید!
مثلا وقتی سیگنال دو است نویز را یک بار بین مثبت و منفی یک قرار بده و بار دیگر ین مثبت و منفی نیم و ...

منظورت دامنه ی سیگنال هست؟
اگه دامنه سیگنال، یک باشه، نویز رو بصورت زیر در بیارم درسته؟
اگه بخوام نویزی به مدت t ثانیه تولید کنم چطوریه؟

کد:
random('Normal',-0.5,0.5,1,400)

معادلات کنترل را داری یعنی u را داری
معادلات سیستم هم داری یعتی توش u می بینی
حالا توی معالات سیستم به جای u معادلش را قرار بده

در نتیجه معادلات سیستم با کنترلر به دست می آید. این معادلات را حل کن
تازه دارم یه چیزایی متوجه میشم :)
بعد از اینکه معادلات سیستم با کنترلر بدست اومد باید با runge-kutta حلش کنم؟
درسته؟
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
منظورت دامنه ی سیگنال هست؟
اگه دامنه سیگنال، یک باشه، نویز رو بصورت زیر در بیارم درسته؟
اگه بخوام نویزی به مدت t ثانیه تولید کنم چطوریه؟
random('Normal',-0.5,0.5,1,400)
اول باید نرخ نمونه برداری را مشخص کنی
مثلا اگر هر یک میلی ثانیه نمونه برداری کنی
t ثانیه برابر 1000t می شود
اگر به مدت 4 ثانیه نویز اعمال کنی

به گاوسین می شود
کد:
random('Normal',0,sigma,1,f*T)

با یونیفرم می شود

کد:
unifrnd(-sigma,+sigma,1,f*T)

که sigma از فرمول زیر به دست می آید

کد:
sigma = M / SNR

T زمان نویز
f نرخ نمونه برداری معادل با یک تقسیم بر زمان بین هر نمونه برداری
M اندازه سیگنال
SNR نسبت سیگنال به نویز است
یادت باشد SNR را حداقل ۲ بگیر همین طور برو بالا تا ۱۰۰ و اگر تا ۱۰۰ هم جواب نداد بدان که مقاوم نیست

اگر نرخ نمونه برداریت کم است یعنی زمان بین هر نمونه برداری زیاد است از یونیفرم استفاده کن
اگر نرخ نمونه برداریت زیاد است یعنی زمان بین هر نمونه برداری کم است از گاوسین استفاده کن

بعد از اینکه معادلات سیستم با کنترلر بدست اومد باید با runge-kutta حلش کنم؟
درسته؟

درست است
اما با هر روشی می توان معادلات را حل کرد.
پیشنهاد من runge-kutta است. چون دقتش بالاتر است
 

Coronaa

کاربر فعال
بابت توضیحات در مورد نویز ممنونم.

اما با هر روشی می توان معادلات را حل کرد.
پیشنهاد من runge-kutta است. چون دقتش بالاتر است
مقاله مرجعی که دارم ازش استفاده میکنم هم با همین روش انجام داده ولی جزئیاتش رو دیگه نگفته بود.
معادلات پایین رو نوشت و گفت با این روش رانگ-کوتا حل میکنیم :



یعنی الآن من این معادلات رو با u1 و u2 برابر قرار بدم و بعد توسط اون کد حلش کنم تا خروجی واقعی بگیرم؟
 

Coronaa

کاربر فعال
نویزی که برای سیستم انتخاب میشه باید در هر بار اجرا شدن برنامه بصورت تصادفی عوض بشه یا یک بار باید ایجادش کنیم و داده هاش رو ذخیره کنیم و برای همه دوره ها و مدل های مختلف از همون یک داده استفاده کنیم؟
اگه از توی سیمولینک بخوام استفاده کنم چی؟ توی بلوک، نرخ نمونه برداری همون sample هست؟
بلوک هایی که نویز تولید میکنند میانگین و واریانس هم دارند. اینجا مهم نیست؟
 
آخرین ویرایش:

ROBOTICS

کاربر فعال مهندسی رباتیک
نویزی که برای سیستم انتخاب میشه باید در هر بار اجرا شدن برنامه بصورت تصادفی عوض بشه یا یک بار باید ایجادش کنیم و داده هاش رو ذخیره کنیم و برای همه دوره ها و مدل های مختلف از همون یک داده استفاده کنیم؟

هر دو روش درست است

اما بهتراست هر دفعه عوض شود و چیزی ذخیره نشود

اگه از توی سیمولینک بخوام استفاده کنم چی؟ توی بلوک، نرخ نمونه برداری همون sample هست؟
بلوک هایی که نویز تولید میکنند میانگین و واریانس هم دارند. اینجا مهم نیست؟

هر دو بلوک گاوسین و یونیفرم وجود دارد

مانند کد نویسی این بلوک ها آرگومان دارند که باید وارد کنید

sample time به فارسی می شود زمان نمومه برداری ، که برابر عکس نرخ نمونه برداری است. اگر نرخ نمونه برداری صد باشد زمان نمونه برداری یک صدم است

دقت کنید که زمان نمونه برداری باید مضرب صحیحی از گام زمانی حلگر باشد
پیشنهاد می کنم که این دو زمان را یکی انتخاب کنید
 

Coronaa

کاربر فعال
آقای دکتر، این رابطه ای که قرار دادم، چرا توی آرگومان آرک تانژانت، دو تا پارامتر قرار داده؟ منظورش جیه؟
من توی متلب دستور تانژانت رو دیدم یک مقدار ورودی میگرفت! اینجا چطوریه؟

 

ROBOTICS

کاربر فعال مهندسی رباتیک
آقای دکتر، این رابطه ای که قرار دادم، چرا توی آرگومان آرک تانژانت، دو تا پارامتر قرار داده؟ منظورش جیه؟
من توی متلب دستور تانژانت رو دیدم یک مقدار ورودی میگرفت! اینجا چطوریه؟



این آرکتانژانت نیست
آرکتانژانت ۲ است

متلب هر دو دستور را دارد
 

Coronaa

کاربر فعال
ممنونم آقای دکتر.
تا حالا به atan2 برخورد نکرده بودم. تازه توی متلب دیدمش! :)
یه سوال :
این تصویری که پایین میذارم، اومده زوایای theta3 ,theta2 رو بدست آورده. مقدار D چطوری بدست میاد؟
توی رابطه 3-44 معادله رو برابر با D=: قرار داده. منظورش چیه؟
ooo.jpg
 

ROBOTICS

کاربر فعال مهندسی رباتیک
این تصویری که پایین میذارم، اومده زوایای theta3 ,theta2 رو بدست آورده. مقدار D چطوری بدست میاد؟
توی رابطه 3-44 معادله رو برابر با D=: قرار داده. منظورش چیه؟
مشاهده پیوست 232606

برابر قرار نداده!
نام گذاری کردی
گفته اسم این عبارت را D می گذاریم
 

Coronaa

کاربر فعال
خب الآن در رابطه ی 3.56 ، بجای D چه عبارتی رو باید قرار بدم؟
 

Coronaa

کاربر فعال
سلام
من روابط سینماتیک معکوس رو توی لینک زیر نوشتم. درسته روابطش؟

هدفم اینه که یه x , y بدم و خروجی تتا (1) و تتا (2) بگیرم.
فقط روابط تتا 1 و 2 برام مهمه. درسته آیا؟ اگه درست نیست یه راهنمایی بفرمایید لطفاً

http://www.sharefile.ir/uploads/1424566374.docx
 
آخرین ویرایش:

Coronaa

کاربر فعال
آقای دکتر ببخشید،
توی این لینک اومد هم از niose استفاده کرد و هم از disturbance که نویز وارد مرجع میشه و اغتشاش وارد مدل سیستم.
http://www.sharefile.ir/uploads/1424679270.jpg

چه فرقی با هم دارند؟
برای بررسی عدم قطعیت مدل، اومد این دو مورد رو بررسی کرد: disturbance rejection and noise suppression
معنیشون چیه؟
 

ROBOTICS

کاربر فعال مهندسی رباتیک
اگه درست نیست یه راهنمایی بفرمایید لطفاً

در فصل اول کتاب اسپانگ نوشته است

تنها اشکال کتاب اسپانگ این است که از آرکتانژانت استفاده کرده، خودتان آن را به آرکتانژانت دو تبدیل کنید

توی این لینک اومد هم از niose استفاده کرد و هم از disturbance که نویز وارد مرجع میشه و اغتشاش وارد مدل سیستم.
http://www.sharefile.ir/uploads/1424679270.jpg

چه فرقی با هم دارند؟

نویز یعنی فرکانس بالا
اغتشاش یعنی فرکانس پایین

نویز معمولا نویز الکترومعناطیسی است که در خروجی سنسور مشاهده می شود
اغتشاش معمولا اغتشاش مکانیکی است که به ورودی سیستم اعمال می شود مثلا نیروی باد

نویز معمولا میانگینش صفر است
اغتشاش معمولا ماینگینش غیر صفر است

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

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

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


برای بررسی عدم قطعیت مدل، اومد این دو مورد رو بررسی کرد: disturbance rejection and noise suppression
معنیشون چیه؟

عدم قطعیت ربطی به این دو ندارد
به معنی دفع نویز و دفع اغتشاش است
 

Similar threads

بالا