قطعات قاب فرستنده گیرنده کنترل کننده پرواز باتری PDB (صفحه توزیع برق) ESCs (کنترل کننده الکترونیکی سرعت) پروانه ها موتورها شارژر
کوادروتورها از انواع مختلفی از موتورهای بدون برس برای تولید رانش و گشتاورهای مورد نیاز برای کنترل سکو استفاده می کنند. هر موتور با باتری های الکتریکی تغذیه می شود و روی سیستم عامل کوادروتور قرار دارد. کنترل کننده های سرعت الکترونیکی (ESC) خروجی دور موتور دلخواه را توسط کنترل کننده پرواز دریافت می کنند و این دستورات را برای هر موتور جداگانه ارسال می کنند. یک نمودار اولیه بدنه آزاد نشان داده شده است که رانش ها و نیروهای هر موتور را روی کوادروتور نشان می دهد. توجه داشته باشید که محور z در جهت جاذبه و جهت مخالف بردارهای نیروی موتور منفی تعریف شده است.ساختار کوادروتور صلب و متقارن با یک مرکز جرم تراز شده با مرکز قاب بدنه پرنده است.رانش و درگ هر موتور متناسب با مربع سرعت موتور است.
پروانه ها سفت و محکم در نظر گرفته می شوند و بنابراین پره زدن تیغه ناچیز است (تغییر شکل پره های پروانه به دلیل سرعت زیاد و مواد انعطاف پذیر).
لیست کامل متغیرهای حالت که،. موقعیت کوادروتور در فریم جهانی داده می شود در حالی که سرعت و سرعت زاویه ای در قاب بدنه کوادروتور تعریف شده است. توجه به این نکته مهم است که سنسورهای مختلف متداول در هر دو سیستم مختصات اندازه گیری می کنند. به عنوان مثال GPS ، موقعیت کوادروتور و سرعت زمین را در فریم جهانی اندازه گیری می کند در حالی که شتاب سنج ها و ژیروس های سرعت ، اندازه گیری هایی را در قاب بدنه تولید می کنند. برای ناوبری پیشرفته تر از جمله مسیر حرکت به دنبال مسیر ، نقاط راه در سیستم مختصات جهانی آورده شده است.
پرنده کوادروتور بر اساس مفهوم گشتاور و رانش متغیر عمل می کند. هر روتور از یک موتور DC بدون برس و روتور با یک گام ثابت تشکیل شده است. موتورها به صورت جفت در امتداد محورهای افقی و عمودی قرار می گیرند و جفت جلو در جهت عقربه های ساعت و زوج افقی در خلاف جهت عقربه های ساعت می چرخند. این طراحی منجر به این می شود که گشتاورهای واکنش از جفت موتورها دقیقاً در مقابل یکدیگر قرار بگیرند اگر همه آنها با یک سرعت بچرخند. حذف گشتاور چرخشی به خودرو اجازه می دهد تا در حالی که معلق است ، ثابت حرکت کند. Yaw با تغییر سرعت جفت موتور کنترل می شود تا یک گشتاور خالص خالص غیر صفر ایجاد کند. ارتفاع با تغییر رانش از هر موتور به مقدار مساوی برای تهیه بردار محوری خالص و بدون گشتاور چرخشی کنترل می شود. برای حرکت در جهت های جانبی ،سرعت نسبی هر موتور در جفت جانبی متنوع است تا یک جابجایی رانش جانبی مورد نظر ایجاد شود. طراحی ساده منجر به سیستم عامل های کوچکی می شود که از طریق باتری کار می کنند ، قادر به شناور پایدار هستند و برای استفاده در محیط های داخلی ایمن هستند. کوادروتور به عنوان یک سیستم تحت عمل طبقه بندی می شود. در حالی که کوادروتور می تواند در 6 درجه آزادی حرکت کند (چرخشی) ، فقط 4 ورودی وجود دارد که می تواند کنترل شود (سرعت 4 موتور). ، پویایی چرخشی بهم پیوسته است که یک مسئله کنترل جالب ارائه می دهد.، پویایی چرخشی و ترجمه ای بهم پیوسته است که یک مسئله کنترل جالب ارائه می دهد.کوادروتور به عنوان یک سیستم تحت عمل طبقه بندی می شود. .برای کوادکوپتر ، چه رابطه ای بین رول ، پیچ و خمیازه در قاب زمین و شتاب در ابعاد x ، y و z در قاب زمین وجود دارد؟ برای بتن بیشتر ، فرض کنید رول (θ) یک چرخش در مورد محور x قاب زمین است ، گام (ϕ) یک چرخش در مورد محور y قاب زمین است و yaw (ψ) یک چرخش در مورد محور z است. بعلاوه ، فرض کنید a شتاب تولید شده توسط هر چهار روتور را نشان می دهد ، یعنی شتاب طبیعی با صفحه کوادکوپتر. سپس f ، g ، h در چیست؟$a_x = f(a,\theta,\phi,\psi)$و$a_y = g(a,\theta,\phi,\psi)$و$a_y = g(a,\theta,\phi,\psi)$که در آن ax ، ay و az شتابهایی در ابعاد x ، y و z هستند.زاویه های جهت دهی در قاب زمین ارائه می شود (قاب جهانی یا جهانی مناسب تر است). تقریباً تهیه جهت کادر با زاویه با توجه به همان قاب تقریباً غیرممکن است.
سپس با توجه به مقداری شتاب $a_b$ در قاب بدنه ، می توانید شتاب را در فریم جهان $a_w $با ضرب قبل از ضرب با ماتریس چرخش R پیدا کنم.$a_w = R a_b$که$\begin{bmatrix} a_{w,x} \\ a_{w,y} \\ a_{w,z} \end{bmatrix} = \begin{bmatrix} c_\psi c_\theta & -s_\psi c_\phi + c_\psi s_\theta s_\phi & s_\psi s_\phi + c_\psi s_\theta c_\phi \\ s_\psi c_\theta & c_\psi c_\phi + s_\theta s_\psi s_\phi & -c_\psi s_\phi + s_\theta s_\psi c_\phi \\ -s_\theta & c_\theta s_\phi & c_\theta c_\phi \end{bmatrix} \begin{bmatrix} a_{b,x} \\ a_{b,y} \\ a_{b,z} \end{bmatrix}$
سیستم مختصات مدل کوادروتور
ساختار اصلی کوادروتور مورد استفاده برای توسعه مدل که زوایای رول ، پیچ و خمیازه اویلر ، یک چهارچوب مختصات پرنده {b} و کادر مختصات جهانی {G} را نشان می دهد. این مدل به چندین فرض متکی است:متغیرهای سیستم مدل کوادروتور
متغیرهای حالت برای سرعت در چارچوب پرنده هستند اما متغیرهای حالت برای موقعیت در چارچوب جهانی هستند. بنابراین ، لازم است یک ماتریس چرخش برای تبدیل متغیرها بین سیستم های مختصات تعریف شود. تحول بین کادرهای مختصات جهانی و بدنه در زیر شرح داده شده است.
ماتریس چرخش مدل کوادروتور
سینماتیک چرخشی$\begin{aligned} R_{z}(\psi ) = \begin{pmatrix} \cos (\psi ) &{}\quad -\sin (\psi ) &{}\quad 0 \\ \sin (\psi ) &{}\quad \cos (\psi ) &{}\quad 0 \\ 0 &{}\quad 0 &{}\quad 1 \end{pmatrix} \end{aligned}$و$\begin{aligned} R_{y}(\theta ) = \begin{pmatrix} \cos (\theta ) &{}\quad 0 &{}\quad \sin (\theta ) \\ 0 &{}\quad 1 &{}\quad 0 \\ -\sin (\theta ) &{}\quad 0 &{}\quad \cos (\theta ) \end{pmatrix} \end{aligned}$و$\begin{aligned} R_{x}(\phi ) = \begin{pmatrix} 1 &{}\quad 0 &{}\quad 0 \\ 0 &{}\quad \cos (\phi ) &{}\quad -\sin (\phi ) \\ 0 &{}\quad \sin (\phi ) &{}\quad \cos (\phi ) \end{pmatrix} \end{aligned}$
از آنجا که نرخ های زاویه ای در قاب بدنه و زوایای اویلر در قاب مختصات میانی تعریف شده اند ، می توانیم از ماتریس چرخش مشتق شده در بالا برای تعیین رابطه بین نرخ های زاویه ای و مشتقات زمانی زاویه های اویلر استفاده کنیم . سرعت های زاویه ای بردارهایی هستند که در امتداد هر محور چرخش قرار دارند و برابر با مشتق زمانی زاویه های اویلر نیستند. مشتق زیر فرض می کند که مشتق زمانی هر نرخ اویلر کم است. سینماتیک چرخشی مدل کوادروتور
اگر زاویه های اویلر کوچک (نزدیک 0) فرض شود ، در این صورت ماتریس S به ماتریس هویت تبدیل می شود و نرخ های زاویه ای تقریباً برابر با مشتق زمان زاویه های اویلر است.
معادلات حرکتی بدون برس
کوادروتورها از انواع مختلفی از موتورهای بدون برس برای تولید رانش و گشتاورهای مورد نیاز برای کنترل سکو استفاده می کنند. هر موتور با باتری های الکتریکی تغذیه می شود و روی سیستم عامل کوادروتور قرار دارد. کنترل کننده های سرعت الکترونیکی (ESC) خروجی دور موتور دلخواه را توسط کنترل کننده پرواز دریافت می کنند و این دستورات را برای هر موتور جداگانه ارسال می کنند. یک نمودار اولیه بدنه آزاد نشان داده شده است که رانش ها و نیروهای هر موتور را روی کوادروتور نشان می دهد. توجه داشته باشید که محور z در جهت جاذبه و جهت مخالف بردارهای نیروی موتور منفی تعریف شده است.
متغیرهای سیستم مدل کوادروتور
متغیرهای حالت برای سرعت در چارچوب بدن هستند اما متغیرهای حالت برای موقعیت در چارچوب جهانی هستند. بنابراین ، لازم است یک ماتریس چرخش برای تبدیل متغیرها بین سیستم های مختصات تعریف شود.$R_I^{v1}(\psi) = \begin{pmatrix} \cos(\psi) & \sin(\psi) & 0 \\ -\sin(\psi) & \cos(\psi) & 0 \\ 0 & 0 & 1 \end{pmatrix}.$سنسورهای Attitude and Heading از CH Robotics می توانند با استفاده از زوایای اویلر و کواترنسیون ، اطلاعات جهت گیری را ارائه دهند. در مقایسه با کواترنشن ها ، زوایای اویلر ساده و شهودی هستند و به خوبی به تحلیل و کنترل ساده می پردازند. از طرف دیگر ، زاویه های اویلر توسط پدیده ای به نام "قفل گیمبال" محدود می شوند که بعداً جزئیات بیشتری در مورد آن بررسی خواهیم کرد. در برنامه هایی که سنسور هرگز در نزدیکی زاویه های +/- 90 درجه کار نخواهد کرد ، زاویه های اویلر گزینه خوبی است.
سنسورهای CH Robotics که می توانند خروجی های زاویه اویلر را فراهم کنند شامل GPH-AHRS با کمک GPS و حسگر جهت گیری UM7 هستند.زوایای اویلر راهی را برای نشان دادن جهت گیری سه بعدی یک شی با استفاده از ترکیبی از سه چرخش در مورد محورهای مختلف ارائه می دهد. برای سهولت ، از چند قاب مختصات برای توصیف جهت گیری سنسور استفاده می کنیم ، از جمله "قاب اینرسی" ، "قاب وسیله نقلیه -1" ، "قاب وسیله نقلیه -2" و "قاب بدنه". محورهای قاب اینرسی ثابت زمین هستند و محورهای قاب بدنه با سنسور همسو می شوند. وسیله نقلیه -1 و وسیله نقلیه -2 فریم های واسطه ای هستند که هنگام سهولت نشان دادن توالی عملیاتی که ما را از قاب اینرسی به سمت بدنه حسگر می برند ، برای راحتی استفاده می شوند.
ممکن است استفاده از چهار فریم مختصات مختلف برای توصیف جهت گیری سنسور غیرضروری به نظر برسد ، اما انگیزه این کار با ادامه کار روشن خواهد شد.
برای شفافیت ، این یادداشت برنامه فرض می کند که سنسور روی هواپیما سوار شده است. تمام مثالها و ارقام نشان دهنده تغییر جهت هواپیما است.
"قاب اینرسی" مجموعه ای از محورهای ثابت در زمین است که به عنوان یک مرجع تکان دهنده استفاده می شود. سنسورهای CH Robotics از یک قاب اینرسی مشترک هوانوردی استفاده می کنند که در آن محور x به سمت شمال ، محور y به سمت شرق و محور Z به سمت پایین نشان داده می شود. ما این را یک مرجع North-East-Down (NED) می نامیم. توجه داشته باشید که از آنجا که محور z به سمت پایین است ، ارتفاع از سطح زمین در واقع یک مقدار منفی است.
توالی چرخش هایی که برای نشان دادن یک جهت معین استفاده می شود ، ابتدا خمیازه ، سپس بلند کردن و در آخر غلتیدن است.yaw چرخش حول محور z قاب قاب اینرسی را با یک زاویه ψ نشان می دهد. چرخش yaw یک قاب مختصات جدید تولید می کند که در آن محور z با قاب اینرسی تراز می شود و محورهای x و y با زاویه yaw ψ چرخ می شوند. ما این قاب مختصات جدید را قاب خودرو-1 می نامیم. جهت چرخش وسیله نقلیه -1 پس از چرخش خمیازه در شکل 2 نشان داده شده است. محورهای قاب خودرو -1 قرمز رنگ هستند ، در حالی که محورهای قاب اینرسی خاکستری هستند.
محاسبه تراست موتورهای کوادکوپتر موتورهای من رانش ایجاد نمی کنند ، آنها چرخش هایی دارند که رانش ایجاد می کنند. به صورت عملی ، احتمالاً بهتر است یک مدل تجربی بر اساس اندازه گیری های رانش در برابر ولتاژ موتور ایجاد شود -
با این حال ، اگر واقعاً می خواهید رانش را پیش بینی کنید ، به یک مدل از روتور خود احتیاج دارید. سپس می توانید از تئوری تکانه عنصر تیغه (BEMT) برای محاسبه رانش بر اساس ویژگی های روتور - توزیع آکورد ، توزیع پیچش ، پروفیل های کشیدن و کشیدن ایرفویل و ...$T = \frac{1}{4 \pi^2} K_T \rho D^4 \omega^2$ جایی که T رانش است ، ρ چگالی هوا است ، D قطر روتور شما است ، ω سرعت زاویه ای روتور است و $K_T$ ضریب رانش است که به عنوان تابعی از نسبت پیشروی ، ζ تعریف می شود.$K_T = C_{T1} \zeta + C_{T2}$و$\zeta = \frac{2 \pi \left( v - v_{\infty} \right)}{\omega D}$
ضرایب $C_{T1}$و $C_{T2}$مخصوص تیغه روتور است و ζ تابعی از سرعت نسبی خودرو در امتداد جهت رانش با توجه به هوای اطراف است $v - v_{\infty}$
هلی کوپتر وسیله نقلیه پرنده ای است که با استفاده از روتورهایی که به سرعت در حال چرخش هستند هوا را به سمت پایین سوق می دهد و در نتیجه نیروی رانشی ایجاد می کند که هلی کوپتر را در بالا نگه می دارد. هلی کوپترهای معمولی دارای دو روتور هستند. این دو را می توان به صورت دو روتور همسطح تنظیم کرد که هر دو نیروی رانش رو به بالا را دارند ، اما در جهت مخالف می چرخند (به منظور متعادل سازی گشتاورهای اعمال شده بر روی بدنه هلیکوپتر). همچنین می توان این دو روتور را با یك روتور اصلی كه رانش جانبی و یك روتور كناری كوچكتر به صورت جانبی جهت دهی می كند و گشتاور تولید شده توسط روتور اصلی را خنثی می كند ، تنظیم كرد. با این حال ، این تنظیمات برای کنترل جهت حرکت به ماشین آلات پیچیده ای نیاز دارند. از swashplate برای تغییر زاویه حمله به روتورهای اصلی استفاده می شود. به منظور تولید گشتاور ، زاویه حمله با قرارگیری هر روتور در هر زمان تنظیم می شود ،به گونه ای که در یک طرف صفحه روتور بیش از طرف دیگر رانش تولید می شود. طراحی پیچیده روتور و مکانیزم swash برخی از مشکلات ، افزایش هزینه های ساخت و پیچیدگی طراحی است.
هلی کوپتر کوادروتور (کواد کوپتر) هلی کوپتری است که دارای چهار روتور با فاصله مساوی است و معمولاً در گوشه های یک بدنه مربع مرتب شده است. با چهار روتور مستقل ، نیاز به مکانیزم swashplate کاهش می یابد. مکانیسم swashplate برای استفاده از درجه آزادی بیشتری به هلی کوپتر مورد نیاز بود ، اما با افزودن دو روتور دیگر می توان کنترل یکسانی را بدست آورد.برای مدل سازی صحیح پویایی سیستم ، ما نیاز به درک خصوصیات فیزیکی حاکم بر آن داریم. ما با توصیف موتورهای مورد استفاده برای کوادکوپتر خود شروع خواهیم کرد ، و سپس با استفاده از ملاحظات انرژی نیروها و رانش هایی را که این موتورها در کل کوادکوپتر تولید می کنند ، استخراج می کنیم. تمام موتورهای کوادکوپتر یکسان هستند ، بنابراین می توانیم یک موتور را بدون از دست دادن کلیت تجزیه و تحلیل کنیم. توجه داشته باشید که پروانه های مجاور در روبروی یکدیگر قرار دارند. اگر یک پروانه در حال چرخش "در جهت عقربه های ساعت" باشد ، دو پیشرفته مجاور "در خلاف جهت عقربه های ساعت" می چرخند ، بنابراین اگر همه پروانه ها با همان سرعت در حال چرخش باشند ، گشتاورها متعادل هستند.$ \tau = K_t (I - I_0)$
جایی که $\tau $ گشتاور موتور است ، I جریان ورودی است ، $ I_0$ جریان است که هیچ باری روی موتور وجود ندارد و $K_t $ ثابت تناسب گشتاور است. ولتاژ روی موتور مجموع EMF برگشتی و مقداری افت مقاومت است$ V = I R_m + K_v \omega$در اینجا V افت ولتاژ روی موتور ، Rm مقاومت موتور ، ω سرعت زاویه ای موتور است و Kv یک ثابت تناسب است (نشانگر EMF برگشتی تولید شده در هر دور در دقیقه). ما می توانیم از این توصیف موتور خود برای محاسبه توان مصرفی آن استفاده کنیم. قدرت است$P = IV = \frac{(\tau + K_t I_0) (K_t I_0 R_m + \tau R_m + K_t K_v \omega)}{ {K_t}^2} $
و توان $ P \approx \frac{(\tau + K_t I_0) K_v \omega}{ {K_t}}$و ساده شده ان $ P \approx \frac{K_v}{K_t} \tau \omega.$از نیروی او برای بالا نگه داشتن کوادکوپتر استفاده می شود. با صرفه جویی در مصرف انرژی ، می دانیم که انرژی موتور در یک بازه زمانی معین ، برابر با نیروی تولید شده بر پروانه برابر با فاصله هوای جابجا شده است $P\cdot {\text{d}\;}t = F \cdot {\text{d}\;}x $. به طور معادل ، قدرت برابر است با رانش برابر با سرعت هوا $P = F\frac{{\text{d}\;}x}{{\text{d}\;}t} $لذا $P = Tv_h $ما تصور می کنیم سرعت وسیله نقلیه کم است ، بنابراین vh سرعت هوا هنگام معلق شدن است. ما همچنین فرض می کنیم که سرعت جریان آزاد ،$v_\infty $، صفر است (هوای محیط اطراف نسبت به کوادکوپتر ثابت است). تئوری حرکت به ما معادله سرعت شناور به عنوان تابعی از رانش را می دهد ،
$v_h = \sqrt\frac{T}{2\rho A} $
جایی که ρ تراکم هوای اطراف است و A ناحیه ای است که توسط روتور خارج می شود. با استفاده از معادله ساده ما برای قدرت ، می توانیم بنویسیم$P = \frac{K_v}{K_t} \tau \omega = \frac{K_vK_\tau}{K_t} T \omega = \frac{T^\frac{3}{2}}{\sqrt{2\rho A}}. $توجه داشته باشید که در حالت کلی $\tau = \vec r \times \vec F $؛ در این حالت ، گشتاور متناسب با رانش T با برخی از نسبت های ثابت $ K_\tau$ است که با تنظیمات و پارامترهای تیغه تعیین می شود. با حل بزرگی رانش T ، به دست می آوریم که رانش متناسب با مربع سرعت زاویه ای موتور است:
$T = \left(\frac{K_vK_\tau\sqrt{2 \rho A}}{K_t} \omega\right)^2 = k\omega^2 $
که در آن k برخی از ثابت های مناسب است. با جمع آوری تمام موتورها ، متوجه می شویم که کل رانش روی کوادکوپتر (در قاب بدنه) توسط
$ T_B = \sum_{i=1}^4 T_i = k{\begin{bmatrix} 0 \\ 0 \\ \sum {\omega_i}^2 \end{bmatrix}}.$
علاوه بر نیروی رانش ، اصطکاک را به عنوان نیرویی متناسب با سرعت خطی در هر جهت مدل خواهیم کرد. این یک دید بسیار ساده از اصطکاک سیال است ، اما برای مدل سازی و شبیه سازی ما کافی است. نیروهای کششی جهانی ما با یک اصطلاح نیروی اضافی مدل می شوند
$ F_D = {\begin{bmatrix}
-k_d\dot x \\
-k_d\dot y \\
-k_d\dot z \\
\end{bmatrix}}$اگر دقت اضافی مورد نظر باشد ، $k_d $ ثابت را می توان به سه ثابت اصطکاک جداگانه ، برای هر جهت حرکت ، جدا کرد. اگر بخواهیم این کار را انجام دهیم ، می خواهیم اصطکاک را در قاب بدن به جای قاب اینرسی مدل کنیم.گشتاورهااکنون که نیروها را در کوادکوپتر محاسبه کردیم ، مایلیم گشتاورها را نیز محاسبه کنیم. هر روتور درمورد محور بدنه بدن مقداری گشتاور دارد. این گشتاور گشتاور مورد نیاز برای چرخاندن پروانه و تأمین نیروی رانش است. شتاب زاویه ای آنی را ایجاد می کند و بر نیروهای کشش اصطکاک غلبه می کند. معادله درگ از پویایی سیال ، نیروی اصطکاک را به ما می دهد:$F_D = \frac{1}{2}\rho C_D A v^2. $جایی که ρ تراکم سیال اطراف است ، A منطقه مرجع است (سطح مقطع پروانه ، نه منطقه ای که توسط پروانه خارج شده است) ، و $ C_D$ یک ثابت بدون بعد است. این ، اگرچه در بعضی موارد فقط در برخی موارد دقیق است ، اما برای اهداف ما کافی است. این نشان می دهد که گشتاور ناشی از کشیدن توسط داده می شود
$\tau_D = \frac{1}{2}R \rho C_D A v^2 = \frac{1}{2}R \rho C_D A (\omega R)^2 = b\omega^2 $
جایی که ω سرعت زاویه ای ملخ است ، R شعاع پروانه است و b یک ثابت ثابت با اندازه مناسب است. توجه داشته باشید که فرض کرده ایم که تمام نیروها در نوک پروانه اعمال می شود که مطمئناً نادرست است. با این حال ، تنها نتیجه ای که برای اهداف ما مهم است این است که گشتاور کشیدن با مربع سرعت زاویه ای متناسب است. سپس می توانیم گشتاور کامل را در مورد محور z برای موتور ith بنویسیم:
جایی که ω سرعت زاویه ای ملخ است ، R شعاع پروانه است و b یک ثابت ثابت با اندازه مناسب است. توجه داشته باشید که فرض کرده ایم که تمام نیروها در نوک پروانه اعمال می شود که مطمئناً نادرست است. با این حال ، تنها نتیجه ای که برای اهداف ما مهم است این است که گشتاور کشیدن با مربع سرعت زاویه ای متناسب است. سپس می توانیم گشتاور کامل را در مورد محور z برای موتور ith بنویسیم:
$\tau_z = b\omega^2 + I_M \dot\omega $
جایی که $ I_M$ لحظه اینرسی در مورد محور z موتور است ، ω˙ شتاب زاویه ای پروانه است و b ضریب درگ ما است. توجه داشته باشید که در پرواز حالت پایدار (یعنی برخاستن یا فرود آمدن) ، ω˙≈0 ، زیرا بیشتر اوقات پروانه ها یک رانش ثابت (یا تقریباً ثابت) را حفظ می کنند و تسریع نمی شوند. بنابراین ، ما این اصطلاح را نادیده می گیریم و کل عبارت را به ساده می کنیم
$ \tau_z = (-1)^{i+1} b{\omega_i}^2.$
اگر پروانه در حال چرخش در جهت عقربه های ساعت باشد و در صورت چرخاندن در خلاف جهت عقربه ساعت ، اصطلاح $(-1)^{i+1} $ برای پروانه ith مثبت است. گشتاور کلی در مورد محور z با جمع کل گشتاورهای هر پروانه آورده می شود:
$ \tau_\psi = b\left( {\omega_1}^2 - {\omega_2}^2 + {\omega_3}^2 - {\omega_4}^2\right)$
گشتاورهای رول و پیچ از مکانیک استاندارد گرفته شده اند. ما می توانیم به دلخواه موتورهای i = 1 و i = 3 را در محور رول انتخاب کنیم ، بنابراین$\tau_\phi = \sum r\times T = L(k{\omega_1}^2 - k{\omega_3}^2) = Lk({\omega_1}^2 - {\omega_3}^2) $و $ \tau_\theta = Lk({\omega_2}^2 - {\omega_4}^2)$جایی که L فاصله مرکز کوادکوپتر تا هر یک از ملخ ها است. همه با هم ، متوجه می شویم که گشتاورهای قاب بدنه هستند$ \tau_B = {\begin{bmatrix}
Lk({\omega_1}^2 - {\omega_3}^2) \\
Lk({\omega_2}^2 - {\omega_4}^2) \\
b\left( {\omega_1}^2 - {\omega_2}^2 + {\omega_3}^2 - {\omega_4}^2\right)
\end{bmatrix}}$مدلی که ما تاکنون بدست آورده ایم بسیار ساده است. ما بسیاری از جلوه های پیشرفته را که به پویایی بسیار غیرخطی کوادکوپتر کمک می کند ، نادیده می گیریم. ما نیروهای کشش چرخشی را نادیده می گیریم (سرعت چرخش ما نسبتاً کم است) ، فلپ تیغه (تغییر شکل تیغه های پروانه به دلیل سرعت زیاد و مواد انعطاف پذیر) ، سرعت سیال اطراف (باد) و غیره را نادیده می گیریم. برای نوشتن پویایی کوادکوپتر ما
معادلات حرکتدر قاب اینرسی شتاب کوادکوپتر به دلیل رانش ، گرانش و اصطکاک خطی است. ما می توانیم بردار رانش را در قاب اینرسی با استفاده از ماتریس چرخش R خود بدست آوریم تا بردار رانش را از قاب بدنه به قاب اینرسی ترسیم کنیم. بنابراین ، حرکت خطی می تواند به صورت خلاصه باشد
$m\ddot{x} = {\begin{bmatrix} 0 \\ 0 \\ -mg\end{bmatrix}} + RT_B + F_D $
که در آن $\vec x $ موقعیت کوادکوپتر است ، g شتاب ناشی از نیروی جاذبه است ،$F_D $ نیروی کشش است و $T_B $ بردار رانش در قاب جسم است. در حالی که داشتن معادلات حرکت خطی در قاب اینرسی مناسب است ، معادلات حرکتی چرخشی برای ما در قاب جسم مفید است ، به طوری که می توانیم چرخش ها را در مورد مرکز کوادکوپتر به جای مرکز اینرسی خود بیان کنیم. ما معادلات چرخشی حرکت را از معادلات اویلر برای پویایی جسم صلب بدست می آوریم. معادلات اویلر که به صورت بردار بیان شده اند ، به صورت زیر نوشته می شوند$ I\dot\omega + \omega\times (I\omega) = \tau$
جایی که ω بردار سرعت زاویه ای است ، من ماتریس اینرسی است و$\tau $ بردار گشتاورهای خارجی است. می توانیم این را دوباره بنویسیم
$ \dot\omega = {\begin{bmatrix} \dot \omega_x \\ \dot \omega_y \\ \dot \omega_z\end{bmatrix}} = I^{-1}\left(\tau - \omega\times (I\omega)\right).$
ما می توانیم کوادکوپتر خود را به عنوان دو میله یکنواخت نازک که از مبدا عبور می کنند و در انتهای آنها جرم نقطه ای (موتور) قرار دارد ، مدل کنیم. با این حساب ، واضح است که تقارن ها منجر به ایجاد ماتریس اینرسی مورب فرم می شوند
$I = {\begin{bmatrix} I_{xx} & 0 & 0 \\ 0 & I_{yy} & 0 \\ 0 & 0 & I_{zz}\end{bmatrix}}. $
بنابراین ، ما نتیجه نهایی خود را برای معادلات چرخشی قاب جسم بدست می آوریم
$\dot\omega = {\begin{bmatrix}
\tau_\phi {I_{xx}}^{-1} \\
\tau_\theta {I_{yy}}^{-1} \\
\tau_\psi {I_{zz}}^{-1}
\end{bmatrix}} - {\begin{bmatrix}
\frac{I_{yy} - I_{zz}}{I_{xx}} \omega_y\omega_z \\
\frac{I_{zz} - I_{xx}}{I_{yy}} \omega_x\omega_z \\
\frac{I_{xx} - I_{yy}}{I_{zz}} \omega_x\omega_y
\end{bmatrix}} $خوب حالا کنترل کنترل
هدف از تولید مدل ریاضی کوادکوپتر کمک به توسعه کنترلرهای کوادکوپتر فیزیکی است. ورودی های سیستم ما از سرعت زاویه ای هر روتور تشکیل شده است ، زیرا تنها چیزی که می توانیم کنترل کنیم ولتاژهای مختلف موتورها است. توجه داشته باشید که در مدل ساده شده ما ، فقط از مربع سرعت های زاویه ای ،$ {\omega_i}^2$ و هرگز از خود سرعت زاویه ای ، ωi استفاده می کنیم. برای سادگی نمره ای ، اجازه دهید ورودی های $ \gamma_i = {\omega_i}^2$ را معرفی کنیم. از آنجا که می توانیم ωi تنظیم کنیم ، می توانیم به وضوح $ \gamma_i$ را نیز تنظیم کنیم. با این کار می توانیم سیستم خود را به عنوان معادله دیفرانسیل مرتبه اول در فضای حالت بنویسیم. بگذارید x1 موقعیتی در فضای کوادکوپتر باشد ، x2 سرعت خطی کوادکوپتر باشد ، x3 زاویه های رول ، گام و زاویه و x4 بردار سرعت زاویه ای باشد. (توجه داشته باشید که همه اینها 3 بردار هستند.) با داشتن این حالت ، ما می توانیم معادلات فضای حالت را برای تکامل حالت خود بنویسیم.
$ \begin{aligned}
\dot{x_1} &= x_2 \\
\dot{x_2} &= {\begin{bmatrix} 0 \\ 0 \\ -g\end{bmatrix}} + \frac{1}{m} RT_B + \frac{1}{m} F_D \\
\dot{x_3} &= {\begin{bmatrix}
1 &0 & -s_\theta \\
0 & c_\phi & c_\theta s_\phi \\
0 & -s_\phi & c_\theta c_\phi
\end{bmatrix}}^{-1} x_4 \\
\dot{x_4} &= {\begin{bmatrix}
\tau_\phi {I_{xx}}^{-1} \\
\tau_\theta {I_{yy}}^{-1} \\
\tau_\psi {I_{zz}}^{-1}
\end{bmatrix}} - {\begin{bmatrix}
\frac{I_{yy} - I_{zz}}{I_{xx}} \omega_y\omega_z \\
\frac{I_{zz} - I_{xx}}{I_{yy}} \omega_x\omega_z \\
\frac{I_{xx} - I_{yy}}{I_{zz}} \omega_x\omega_y
\end{bmatrix}}\end{aligned}$
توجه داشته باشید که ورودی های ما به طور مستقیم در این معادلات استفاده نمی شوند. با این حال ، همانطور که خواهیم دید ، ما می توانیم مقادیر برای $ \tau$ و T را انتخاب کنیم ، و سپس برای مقادیر $\gamma_i $حل کنیم.این به ما یک مجموعه سه معادله ای با چهار ناشناخته می دهد. با اعمال محدودیتی که ورودی های ما باید کوادکوپتر را بالا نگه دارند ، می توانیم این مورد را محدود کنیم:
$ T = mg.$
توجه داشته باشید که این معادله این واقعیت را نادیده می گیرد که رانش مستقیماً به سمت بالا قرار نخواهد گرفت. این امر کاربرد کنترل کننده ما را محدود می کند ، اما برای انحرافات کوچک از ثبات نباید مشکلات عمده ای ایجاد کند. اگر راهی برای تعیین دقیق زاویه جریان داشته باشیم ، می توانیم آن را جبران کنیم. اگر ژیروسکوپ ما از دقت کافی برخوردار باشد ، می توان مقادیر بدست آمده از ژیروسکوپ را برای به دست آوردن زوایای θ و $\phi $ادغام کرد. در این حالت ، ما می توانیم رانش لازم برای نگه داشتن کوادکوپتر را در سطح بالا محاسبه کنیم و مقدار میلی متر رانش را روی محور z اینرسی انجام دهیم. ما متوجه شدیم که
$T_\text{proj} = mg\cos\theta\cos\phi $
بنابراین ، با یک اندازه گیری دقیق زاویه ، می توانیم در عوض این الزام را که برابر رانش است برابر کنیم
$ T = \frac{mg}{\cos\theta\cos\phi}$
در این حالت مولفه رانش در امتداد محور z مثبت برابر با میلی گرم است. ما می دانیم که رانش متناسب با مقدار وزنی ورودی است:$T = \frac{mg}{\cos\theta\cos\phi} = k\sum \gamma_i \implies \sum\gamma_i = \frac{mg}{k\cos\theta\cos\phi} $با این محدودیت اضافی ، مجموعه ای از چهار معادله خطی با چهار مجهول $\gamma_i $ داریم. سپس می توانیم برای هر$\gamma_i $ حل کنیم و مقادیر ورودی زیر را بدست آوریم:
$ \begin{aligned}
\gamma_1 &= \frac{mg}{4k\cos\theta\cos\phi}-\frac{2 b {e_\phi} {I_{xx}}+{e_\psi} {I_{zz}} k L}{4 b k L} \\
\gamma_2 &= \frac{mg}{4k\cos\theta\cos\phi}+\frac{ {e_\psi} {I_{zz}}}{4 b}-\frac{ {e_\theta} {I_{yy}}}{2 k L} \\
\gamma_3 &= \frac{mg}{4k\cos\theta\cos\phi}-\frac{-2 b {e_\phi} {I_{xx}}+{e_\psi} {I_{zz}} k L}{4 b k L} \\
\gamma_4 &= \frac{mg}{4k\cos\theta\cos\phi}+\frac{ {e_\psi} {I_{zz}}}{4 b}+\frac{ {e_\theta} {I_{yy}}}{2 k L}\end{aligned}$
این یک مشخصات کامل برای کنترل کننده PD ماست. با استفاده از محیط شبیه سازی خود می توانیم این کنترل کننده را شبیه سازی کنیم. کنترل کننده سرعت و زاویه های زاویه ای را به صفر می رساند.
و