تبلیغات
Elctrical-Control-Engineering

Elctrical-Control-Engineering

If u want the impossible event happens in your life, change your belief that it is impossible to happen

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


یکی از مدل‌های شبکه عصبی که در سال‌های اخیر مورد توجه فراوان قرار گرفته است مدل ELM یا همان Extreme Learning Machine است. در این گزارش به معرفی این مدل و ارتباط آن با مدل‌های مبتنی بر SVM پرداخته شده است. مدل [SVM[1 به خاطر سادگی، در دهه اخیر در انواع کارها مدنظر قرار گرفته است. مدل‌های [PSVM[2 و[3]LS-SVM مدل‌هایی مشتق شده از ایده SVM می‌باشند که سرعت بیشتری دارند و مساله بهینه سازی آنها مثل SVM مکعبی نیست، بلکه خطی است. این مدل‌ها در حوزه دسته بندی باینری می‌باشند. البته با تکنیک‌هایی همچون یکی در مقابل همه[4] و یکی در مقابل یکی[5] قابل توسعه به حالت چند دسته‌ای می‌باشند. پژوهشگران در نشان داده‌اند که PSVM و LS-SVM و الگوریتم‌های تنظیم‌گر[6]می‌توانند بیشتر ساده شوند و در یک قالب یکپارچه تحت عنوان [ELM[7 قرار بگیرند. مدل ELM بر روی شبکه‌های تعمیم یافته فیدفوروارد با تک لایه مخفی[8] (SLFN) کار می‌کند. در مدل ELM لایه مخفی نیاز به تنظیم ندارد و توابع این لایه که یک انتقال ویژگی به فضای جدید است از قبل مشخص است. مدل‌های SVM، شبکه‌های چندجمله‌ای، [RBF[9 و مدل‌های فیدفوروارد تک لایه حالت خاصی از این مدل هستند. پژوهشگران در مقالات چند هدف عمده را مدنظر قرار داده‌اند:

1) مدل ELM می‌تواند یک قالب یکپارچه را با انواع انتقال ویژگی‌های وسیعی که می‌توان در لایه مخفی استفاده کرد، فراهم می‌کند که می‌تواند به طور مستقیم در دسته‌بندی چند دسته‌ای و رگرسیون به کار رود.

2) از منظر بهینه‌سازی ELM محدودیت‌های نرم‌تری نسبت به PSVM و LS-SVM در بر دارد.

3) مدل‌های SVM و LS-SVM نسبت به ELM پیچیدگی محاسباتی بیشتری دارند و به جواب زیر بهینه می‌رسند.

4) از لحاظ تئوری، مدل ELM می‌تواند هر تابع هدف پیوسته‌ای را تخمین بزند و هر ناحیه‌های متمایزی را دسته‌بندی کند. نتایج عملی نشان می‌دهد این مدل مقیاس‌پذیری بهتری دارد و برای رگرسیون و دسته بندی دوکلاسه تعمیم‌پذیری مشابه و برای دسته‌بندی چندکلاسه تعمیم‌پذیری بهتر و سرعت بسیار بالاتری نسبت به روش‌های متداول SVM و LS-SVM دارد.

توضیحات کاملتر در دو فایل ورد و پاورپوینت آماده شده است که از لینک زیر می‌توانید دانلود کنید.

مقاله مرتبط: Extreme Learning Machine for Regression and Multiclass Classification

[1] Support Vector Machine

[2] Proximal Support Vector Machine

[3] Least Square Support Vector Machine

[4] One Against all (OAA)

[5] One Against One

[6] Regularization

[7] Extreme Learning Machine

[8] single-hidden-layer feed-forward networks

[9] Radial Basis Function


مقدمه
در این نوشتار ما روش‌های انتخاب کرنل را به دو دسته: 1. آگاهانه 2. نا آگاهانه تقسیم می‌کنیم. منظور از انتخاب آگاهانه، طراحی یا انتخاب یک کرنل سازگار با ویژگی‌های استخراج شده برای داده است. یکی از روش‌های دسته ناآگاهانه شامل استفاده از روش‌های مجموعه ارزیاب برای انخاب کرنل مناسب یا تنظیم پارامترها ‌می‌باشد. در این روش مدل SVM را با استفاده از کرنل‌ها یا پارامترهای مختلف آموزش می‌دهند و هرکدام از پارامترها یا کرنل‌ها که دقت بهتری روی مجموعه داده ارزیاب داشته ‌باشد به عنوان پارامتر و کرنل بهینه انتخاب می‌شوند. روش‌های نوین شامل ترکیب وزن‌دار کرنل‌های مختلف و یادگیری مقدار بهینه این وزنه‌ها برای بالا بردن دقت مدل دسته بند است. این مدل‌ها بر پایه این اصل ابتدایی که مجموع و یا ضرب وزن‌دار کرنل‌های معتبر، معتبر می‌باشند پایه‌گذاری شده‌اند و در سال‌های اخیر تحت عنوان Multiple Kernel Learning و یا نام‌های مشابه مورد توجه ‌قرار گرفته‌اند. با توجه به تحقیقات انجام‌شده برای تنظیم پارامتر بهینه مثل ضریب تنظیم‌گر c در مدل Soft-SVM و یا طول پنجره گوسی در کرنل گوسی در تقریبا همه پژوهش‌ها با استفاده از روش‌های مجموعه ارزیاب (و یا روش‌های k-fold Cross Validation) انجام شده است.

 1) مفهوم هسته
ضرب داخلی ساده در یک فضای برداری می‌تواند نشان‌دهنده شباهت بین داده‌ها باشد. کرنلها توسعه‌یافته ضرب داخلی داده‌ها می‌باشند که در یک فضای تبدیل یافته محاسبه می‌شود. معادل با هر هسته معتبر یک فضای هیلبرت فرآورنده هسته (RKHS) موجود است:

1

بردارهای x و y تحت نگاشت(.)ϕ قرارگرفته‌اند و در فضای جدید ضرب داخلی محاسبه ‌شده است. کرنلها خواص غیرخطی‌سازی دارند، برای مثال فضای معادل با هسته گوسی دارای ویژگی‌های غیرخطی از فضای اولیه است. در مسئله‌ی با داده‌های چندگونه فرض می‌کنیم برای هر گونه یک هسته مجزا داریم، که نشان‌دهنده شباهت دو داده از منظر آن گونه است:

2

2) انتخاب آگاهانه کرنل با استفاده از جنس فضای ویژگی
همانطور که اشاره شده کرنل یک معیار شباهت بین داده‌هاست. در هر نوع داده‌ای مثل داده‌های از جنس محل پیوند مولکول‌ها می‌توان بر اساس ویژگی‌های دامنه مورد نظر یک کرنل مناسب تعریف کرد و از ماتریس کرنل داده‌های آموزش که با هر روش ممکن به دست آمده است یک مدل ماشین بردار پشتیبان را آموزش داد. برای مثال پژوهشگران در [1] ابتدا یک روش استخراج ویژگی برای حوزه تصاویر ارایه داده‌اند و سپس بر اساس ذات و مفهوم ویژگی‌های استخراج شده یک کرنل ارایه داده‌اند. آنها برای هر سطح در روش هرمی خود یک کرنل متمایز ارایه کرده‌اند که اطلاعات مشترک از ویژگی‌های استخراج شده از سطح پایین‌تر را به صورت تکراری حساب نکند:

3

و سپس کرنل نهایی را از ترکیب کرنل‌های هر سطح محاسبه می‌کنند:

4

روش مطرح شده در این مقاله که به همراه SVM در دسته‌بندی تصاویر کاربرد دارد، یکی از روش‌های مطرح در پردازش تصویر است. از کرنل به دست آمده برای آموزش مدل SVM استفاده می‌کنند.
ترکیب کرنل‌ها
از ترکیب کرنل‌ها به دو هدف استفاده می‌شود: 1. فرض کنید از یک داده تصویر دو گونه ویژگی مختلف یکی بر اساس هیستوگرام رنگ و یکی مثلا با روش SIFT استخراج شده، در این حالت بهتر است روی هرکدام از این ویژگی‌ها جدا گانه کرنل زد و نتایج را با هم ادغام کرد. 2. روی یک گونه ویژگی مثلا هیستوگرام رنگ انواع کرنل مثل گوسی و چندجمله ای بزنیم و نتایج را با هم ترکیب کنیم.
3) ترکیب وزن‌دار کرنل‌ها
ساده‌ترین راه ترکیب کرنلهای مختلف برای رسیدن به یک هسته واحد، جمع بدون وزن آن‌هاست:

5

لازم به ذکر است که جمع کرنلهای معتبر (یا همان مثبت نیمه-معین )، معتبر است. هسته بالا معادل با الحاق فضاهای معادل با کرنلها است:

6

بنابراین با این رویکرد ساده، تنها کاری که برای ادغام گونه‌ها انجام شده است ادغام زودهنگام گونه‌ها است. حال فرض کنید که کرنلها را به‌صورت وزن‌دار باهم ترکیب کنیم:

7

همان‌طور که در رابطه بالا مشاهده می‌شود روش ترکیب وزن‌دار کرنلها ( MKC) معادل با این است که برای هر گونه وزن خاصی فرابگیریم و درواقع مشکل مقیاس در هر گونه در فضای هسته رفع می‌شود. باید توجه داشت که جمع وزن‌دار کرنلها با هر وزنی نمی‌تواند هسته معتبر باشد. یک شرط کافی برای وزن‌ها این است که وزن‌ها مثبت باشند. در این صورت جمع وزن‌دار کرنلها، مثبت نیمه معین می ‌شود [2-3].

8

پژوهشگران در [2-3] وزن‌ها را در چهارچوب نظارتی با استفاده از فرم مبتنی بر هسته ماشین بردار پشتیبان با حاشیه نرم در کنار پارامترهای وزن ماشین بردار پشتیبان، آموزش داده‌اند. معمولاً رویکردهای ترکیب کرنلها مبتنی بر نظارت هستند و نمی‌توانند به صورت غیرنظارتی برای انتقال فضای ویژگی گونه‌ها به یک فضای جدید به کار روند. پژوهشگران در [2] چندین آزمایش را برای بررسی ترکیب کرنلها مدنظر قرار داده‌اند. برای مثال در یک آزمایش به دنبال ترکیب مناسب کرنلهای مختلف چندجمله‌ای، گوسی و خطی روی یک گونه، به‌منظور استفاده از هسته ترکیبی در ماشین بردار پشتیبان بوده‌اند. در چندین آزمایش نیز ترکیب داده‌های با منابع ناهمگون چندگونه را با استفاده از این ایده انجام داده‌اند و برای هر گونه کرنلهای مجزا اعمال کرده‌اند.
بر مبنای همین ایده، روش‌های غیرخطی برای ترکیب وزن‌دار کرنلها نیز وجود دارد [4]، اما همه آن‌ها را می‌توان از دسته روش‌های ادغام دیرهنگام گونه‌ها دانست. درواقع این روش‌ها نقشی در انتقال ویژگی گونه‌ها ندارند و فقط سعی در ترکیب مناسب پیش‌بینی‌های هر گونه دارند. روش‌های غیرخطی نیز برای ترکیب کرنلها وجود دارند. برای مثال پژوهشگران در [4] ترکیب چندجمله‌ای را ارائه داده‌اند.
4) روش‌های مجموعه ارزیاب
استفاده از یک مجموعه محک (ارزیاب یا Validation) برای انتخاب پارامترهای اولیه یک مساله بهینه‌سازی مثل ماشین بردار پشتیبان یک روش معمول در همه مسایل بهینه‌سازی می‌باشد [5-6]. در این پژوهش‌ها برای مثال 20 مقدار بین مقادیر 0.001 تا 10000 را برای پارامتر C در دسته‌بند ماشین‌بردار پشتیبان در نظر می‌گیرند. سپس این 20 مدل SVM را با استفاده از داده‌های آموزش، آموزش می‌دهند. از قبل مقداری داده مستقل از آموزش را به عنوان مموعه ارزیاب کنار گذاشته‌اند. دقت دسته‌بندی این 20 مدل را روی این مجموعه ارزیاب حساب می‌کنند و پارامتر بهینه را انتخاب می‌کنند. سپس اگر داده بیشتری در اختیار داشته باشند و یا با استفاده از داده‌های آموزش + داده‌های ارزیاب مدل را قوی تر اموزش می‌دهند و در صورت نیاز دقت داده‌های آزمون را روی این مدل گزارش می‌کنند.

[1] Lazebnik, Svetlana, Cordelia Schmid, and Jean Ponce. "Beyond bags of features: Spatial pyramid matching for recognizing natural scene categories." Computer Vision and Pattern Recognition, 2006 IEEE Computer Society Conference on. Vol. 2. IEEE, 2006.
[2] Lanckriet, Gert RG, Nello Cristianini, Peter Bartlett, Laurent El Ghaoui, and Michael I. Jordan. 2004. "Learning the kernel matrix with semidefinite programming." The Journal of Machine Learning Research 5: 27-72.
[3] Sonnenburg, Sören, Gunnar Rätsch, Christin Schäfer, and Bernhard Schölkopf. 2006. "Large scale multiple kernel learning." The Journal of Machine Learning Research 7: 1531-1565.
[4] Cortes, Corinna, Mehryar Mohri, and Afshin Rostamizadeh. 2009. "Learning non-linear combinations of kernels." Advances in Neural Information Processing Systems 22 396-404.
[5] Wen, Zeyi, Rui Zhang, Kotagiri Ramamohanarao, Jianzhong Qi, and Kerry Taylor. "MASCOT: Fast and Highly Scalable SVM Cross-validation using GPUs and SSDs." In IEEE ICDM. 2014.
[6] Meyer, David, and FH Technikum Wien. "Support vector machines." The Interface to libsvm in package e1071 (2014).
[7] Niculescu-Mizil, Alexandru, Abhishek Kumar, and Koray Kavukcuoglu. "Two-stage multiple kernel learning method." U.S. Patent 8,838,508, issued September 16, 2014.
[8] Chen, Zhen-Yu, Zhi-Ping Fan, and Minghe Sun. "A hierarchical multiple kernel support vector machine for customer churn prediction using longitudinal behavioral data." European Journal of Operational Research 223, no. 2 (2012): 461-472.


مقدمه
شبکه‌های عصبی به دلیل قابلیت یادگیری ویژگی‌های ترکیبی و جدید در لایه‌ها به طور گسترده در همه زمینه‌های دسته‌بندی مورد استفاده قرار گرفته‌اند. مدل‌‌های شبکه عمیق توسعه یافته مدل‌های شبکه عصبی برای یادگیری تبدیل غیرخطی روی داده‌ها هستند. این مدل‌ها در سال‌های اخیر در همه زمینه‌ها از جمله پردازش تصاویر ماهواری و پزشکی، پردازش متن و ... مورد توجه فراوان قرار گرفته‌اند. در این مدل‌ها علاوه بر کدگذار در هر لایه یک کدگشا نیز وجود دارد . برای مثال در مدل کدگذار خودکار پشته‌ای در هر لایه یک تبدیل خطی همراه با یک تابع فعالیت روی آن برای بردن به نمایش جدید و یک تبدیل با همین مشخصات برای بازسازی داده داریم. مدل‌های مبتنی بر RBM در هر لایه یک مدل احتمالی مولد دارند، که به صورت خودکار نقش کدگشا را بازی می‌کند.

1

 لایه کدگذار خودکار در مدل شبکه عصبی عمیق

 
به عبارت دیگر تفاوت اساسی مدل‌های شبکه عمیق با شبکه عصبی این است که در هر لایه سعی می‌کنند قابلیت بازسازی داده را حفظ کنند یا شبیه مدل‌های RBM با مدل کردن توزیع داده‌ها در هر لایه، اطلاعات فضای ویژگی را حفظ کنند. این نکته اساسی در مدل‌های شبکه عمیق باعث می‌شود که جلوی بیش‌برازش مدل در شبکه عصبی گرفته شود و باعث می‌شود مدل قابلیت تعمیم بیشتری روی داده‌های آزمون داشته باشد. در واقع مدل‌های شبکه عصبی سنتی می‌توانند در تعداد لایه‌های زیاد، به راحتی وزن‌ها را به گونه‌ای تنظیم کنند که اطلاعات نظارتی توجیه شود درحالی‌که روی داده‌های آزمون نتیجه بسیار ناامید کننده به‌دست آید. در واقع در مدل‌های شبکه عمیق این تضمین وجود دارد که فقط نمایش داده‌ها به منظور رسیدن به برچسب یا توجیه اطلاعات نظارتی تغییر کرده است و در واقع فقط این اطلاعات حفظ شود در حالی‌که قابلیت تعمیم چندانی وجود نداشته باشد. به مدل‌های شبکه عمیق مبتنی بر RBM معمولا نام شبکه باور عمیق و به مدل‌های مبتنی بر انکدر-دیکدر شبکه عصبی عمیق یا مدل کدگذار خودکار پشته‌ای می‌گویند. مدل‌های شبکه عمیق در دو نسخه غیرنظارتی و نظارتی (مثل برچسب دسته‌ها) وجود دارند. مدل‌های غیرنظارتی به منظور انتقال فضای ویژگی و رسیدن به یک فضای بدون همبستگی در داده‌های با ابعاد بالا کاربد دارند. مدل‌های نظارتی معمولا به منظور دسته‌بندی یا رگرسیون همانند شبکه عصبی به صورت نظارتی آموزش می‌بینند.
مدل‌های شبکه عمیق توسعه‌یافته مدل‌های شبکه عصبی می‌باشند که امکان بالابردن تعداد لایه‌ها برای یادگیری ویژگی‌های سطح بالای جدید را دارند. در این نوشتار به معرفی مدل RBM و نحوه آموزش آن می‌پردازیم. مدل RBM و Auto-encoder دو مدل معروف به عنوان لایه‌های شبکه عمیق می‌باشند.
مدل‌‌های شبکه عمیق توسعه یافته مدل‌های شبکه عصبی برای یادگیری تبدیل غیرخطی روی داده‌ها هستند. این مدل‌ها در سال‌های اخیر مورد توجه فراوان قرار گرفته‌اند. در این مدل‌ها علاوه بر کدگذار در هر لایه یک کدگشا نیز وجود دارد. برای مثال در مدل کدگذار خودکار پشته‌ای در هر لایه یک تبدیل خطی همراه با یک تابع فعالیت روی آن برای بردن به نمایش جدید و یک تبدیل با همین مشخصات برای بازسازی داده داریم. مدل‌های مبتنی بر RBM در هر لایه یک مدل احتمالی مولد دارند، که به صورت خودکار نقش کدگشا را بازی می‌کند.
به عبارت دیگر تفاوت اساسی مدل‌های شبکه عمیق با شبکه عصبی این است که در هر لایه سعی می‌کنند قابلیت بازسازی داده را حفظ کنند یا شبیه مدل‌های RBM با مدل کردن توزیع داده‌ها در هر لایه، اطلاعات فضای ویژگی را حفظ کنند. این نکته اساسی در مدل‌های شبکه عمیق باعث می‌شود که جلوی بیش‌برازش مدل در شبکه عصبی گرفته شود. در واقع مدل‌های شبکه عصبی سنتی می‌توانند در تعداد لایه‌های زیاد، به راحتی وزن‌ها را به گونه‌ای تنظیم کنند که اطلاعات نظارتی توجیه شود درحالی‌که روی داده‌های آزمون نتیجه بسیار ناامید کننده به‌دست آید. در واقع در مدل‌های شبکه عمیق این تضمین وجود دارد که فقط نمایش داده‌ها به منظور رسیدن به برچسب یا توجیه اطلاعات نظارتی تغییر کرده است و در واقع فقط این اطلاعات حفظ شود در حالی‌که قابلیت تعمیم چندانی وجود نداشته باشد.
مدل کدگذار خودکار پشته‌ای:

2

مدل کدگذار خودکار پشته‌ای.


معرفی مدل RBM
مدل شبکه عصبی ماشین بولتزمان محدودشده (RBM) یک شبکه دولایه شامل یک لایه آشکار و یک لایه نهان است که مبتنی بر مدل هارمونیوم ابداع شد. یکی از پیچیدگی‌های مدل RBM، آموزش این مدل‌ است، که پس از ابداع الگوریتم مناسب برای آموزش آن توسط هینتون این مدل به‌شدت موردتوجه واقع شد و در حال حاضر مدل پایه‌ای در شبکه‌های باور عمیق است. در نوع استاندارد RBM معمولاً لایه داده آشکار و لایه نهان به‌صورت متغیرهای تصادفی دودویی مدل می‌شوند و توزیع شرطی متغیرها به‌صورت برنولی است. پارامترهای مدل RBM به‌گونه‌ای پیدا می‌شود که احتمال تولید داده‌ها را بیشینه کند و می‌توان آن را از دسته مدل‌های تولیدکننده برشمرد که مقدار درست نمایی را حداکثر می‌کنند. مدل گرافیکی مدل RBM را در شکل مشاهده می‌کنید. لایه ورودی x است. همان‌طور که مشاهده می‌شود مدل گرافیکی RBM بدون جهت است و بین هر متغیر در لایه نهان و لایه ورودی پیوند وجود دارد (گراف دوبخشی کامل است). مدل‌ RBM را می‌توان یک مدل گرافیکی MRF دانست.

3

4

مدل گرافیکی مدل‌ RBM

در مدل احتمالی RBM فرض‌های زیر برقرار است:
فرض 1) در مدل MRF هر متغیر به شرط همسایگانش از بقیه متغیرها مستقل است. در RBM همسایه‌های متغیرهای یک ‌لایه تمام گره‌های لایه مقابل است. بنابراین داریم:

5

W_i^k برهم‌کنش بین ویژگی i-ام از گونه x و متغیر –kام لایه نهان را مدل می‌کند. با توجه به مفهوم پیوند در مدل‌های MRF می‌توان این پارامترها را نشان‌دهنده همبستگی بین متغیرها دانست.
توجه شود که اگر نوع یکی از متغیرها را برنولی فرض کنیم در این صورت تابع توزیع شرطی مدل RBM استاندارد سیگموید خواهد بود. این توزیع‌های شرطی با فرض برنولی بودن متغیرها به شکل زیر به دست می‌آید:

6

از توزیع زیر برای آموزش مدل استفاده خواهیم کرد که به تابع E تابع انرژی توزیع گیبس گفته می‌شود:

7

آموزش مدل‌های RBM با استفاده از روش بیشینه کردن لگاریتم درست نمایی (Contrastive Divergence)
مدل RBM یک مدل احتمالی مولد (Generative) است. این مدل در حالت پایه هیچ استفاده‌ای از اطلاعات نظارتی فاصله‌ای نمی‌کند و فقط توزیع توأم ویژگی‌ها را تخمین می‌زند. برای آموزش مدل‌های مولد با رویکرد بیشینه کردن احتمال درست نمایی (Maximum Likelihood) داده‌ها، پارامترهای مدل را به‌گونه‌ای فرامی‌گیرند، که احتمال دیدن داده‌ها به‌شرط پارامترها حداکثر شود. برای آموزش مدل RBM، باید مسئله بهینه‌سازی زیر را حل کرد که معادل با بیشینه کردن درست نمایی مشاهده داده‌ها (لایه Visible) است:

8

برای یک نمونه خاص ('x)^i=(x) مقدار درست نمایی به‌صورت زیر به دست می آید:

9

که پارامتر Z ثابت نرمال ساز را مشخص می‌کند. برای حل این مسئله بهینه‌سازی از کاهش گرادیان استفاده می‌شود. با گرفتن گرادیان از لگاریتم دو طرف رابطه خواهیم داشت:

10

 انتگرال موجود در رابطه بالا تأثیر Z در مسئله بهینه‌سازی را نشان می‌دهد و محاسبه‌ی دقیق آن می‌تواند بسیار زمان‌بر باشد. ازآنجاکه توزیع‌های شرطی را داریم می‌توان برای تخمین انتگرال بالا از نمونه‌برداری گیبس استفاده کرد . با توجه به اینکه تعداد گام‌های نمونه‌برداری گیبس برای رسیدن به یک تخمین بدون بایاس زیاد است در عمل نمی‌توان از آن بهره برد. بنابراین هینتون روش نمونه‌برداری گیبس را تحت عنوان حداقل کردن واگرایی مقابله (CD)، برای حل تقریبی این مسئله ساده کردند. ایده آن به این صورت است که به‌جای نمونه‌برداری از توزیع مدل از یک نمونه آموزش شروع کنیم و به‌صورت متناوب از لایه نهان و آشکار نمونه‌برداری کنیم (CD-K). آن‌ها نشان دادند که حتی با یک گام در این الگوریتم می‌توان به نتایج خوبی رسید (CD-1). الگوریتم نمونه‌برداری گیبس CD با K قدم:
یک نمونه آموزش انتخاب کن x^0=x^i
برای {l={1,…,K تکرار کن:

11

ازآنجا که روش آموزش این مدل، بر پایه کاهش گرادیان است، کاملاً مقیاس‌پذیر است. به‌صورت خلاصه می‌توان تغییر گرادیان پارامترها را به‌صورت زیر بیان کرد:

12

که در آن منظور از E_Data برآوردی است که با استفاده از مجموعه داده‌های آموزش به دست می‌آید و در مقابل E_Model برآوردی را مشخص می‌کند که با استفاده از مدل با پارامترهای θ به دست می‌آید. برای تخمین E_Model از داده‌های نمونه‌برداری شده توسط مدل با توجه به پارامترهای جاری (که توسط الگوریتم CD-1 با شروع از داده‌های آموزش به‌دست‌آمده‌اند) استفاده می‌شود. با توجه به توزیع توأم مفروض روابط مربوط به گرادیان نسبت به پارامترها برای مدل RBM به‌صورت زیر به دست می‌آید:

13

تعداد متغیرهای هر لایه در شبکه‌های عمیق

14   15

معمولا در همه کارهای شبکه عمیق مرسوم است که هرچه که به لایه‌های جلوتر می‌رویم تعداد متغیرها کاهش می‌یابد. کم شدن تعداد متغیرهای لایه‌های بعدی را می‌توان از دو جنبه دید: 1. اصلا آیا اطلاعات موردنیاز از داده‌ها را می‌توان با تعداد کمتری متغیر نشان داد؟ 2. چرا کم شدن تعداد متغیرها باعث بهبود دقت می‌شود؟ در مورد پرسش اول می‌توان گفت که این کار در لایه‌های اول غیرممکن است ولی هرچه به لایه‌های بعد می‌رویم می‌توانیم وابستگی‌های سطح بالا در حد دسته مربوط به داده‌ها را مدل کنیم در مورد پرسش دوم، نیز پاسخ مشابهی وجود دارد.

 منابع

[1] Schmidhuber, Jürgen. "Deep learning in neural networks: An overview." Neural Networks 61 (2015): 85-117.
[2] Deng, Li, and Dong Yu. "Deep learning: methods and applications."Foundations and Trends in Signal Processing 7, no. 3–4 (2014): 197-387.
[3] Seyyedsalehi, Seyyede Zohreh, and Seyyed Ali Seyyedsalehi. "A fast and efficient pre-training method based on layer-by-layer maximum discrimination for deep neural networks." Neurocomputing (2015).
[4] Hinton, Geoffrey E. "A practical guide to training restricted boltzmann machines." In Neural Networks: Tricks of the Trade, pp. 599-619. Springer Berlin Heidelberg, 2012.
[5] Salakhutdinov, Ruslan, and Geoffrey E. Hinton. "Deep boltzmann machines." In International Conference on Artificial Intelligence and Statistics, pp. 448-455. 2009.
[6] Fischer, Asja, and Christian Igel. "Training restricted Boltzmann machines: an introduction." Pattern Recognition 47, no. 1 (2014): 25-39.


Path planning and navigation for mobile robots, in par-
ticular the case where the environment is known, is a
well studied problem, see, for example, the book by
Latombe [4] and the references therein. In practice,
however, one problem is that often no complete knowl-
edge about the environment is available. Having a de-
tailed map with all the obstacles marked seems to be
unrealistic for most situations. In many outdoor appli-
cations the robots can determine their coordinates by
using, for example, GPS. However the knowledge about
the surroundings may often be very limited. Under such
conditions there is too much uncertainty for a very de-
tailed plan to make sense. For preplanning purposes a
coarser choice is probably good enough. Additionally it
is important to be able to replan the path online based
on new information obtained by sensors while navigat-
ing.
A natural way of updating plans is to first select a path
based on the present knowledge, then move along that
path for a short time while collecting new information.
Based on the new findings the path is then replanned.
This methodology is often used in the literature for path
planning in unknown areas. One of the original moti-


vations for studying this problem was the terrain acqui-
sition problem, where a robot is required to produce a
complete map of an unknown terrain. In many publica-
tions graph methods are used for solving the task. For
example, [6] considers disjoint convex polygonal obsta-
cles and presents proofs on convergence. [5] does not use
any constraint on the shape of the obstacles and tries to
minimize the length of the path during the operation.
In [7] results for more general graphs are presented.
In this paper an online path planning algorithm, based
on the so-called network simplex method, is proposed.
Compared with the aforementioned graph methods, the
information stored about the environment is strictly in-
tended for path planning and less details about the ob-
stacles are needed. Although the algorithm of this pa-
per to some extent is similar to the
D
?
algorithm [8, 9],
the two strategies differ in a number of ways. Firstly,
here a different discretization scheme is used. Instead of
modeling the environment as a set of squares this paper
uses a graph representation. Secondly, while producing
a path from the start to the goal
D
?
has to solve the
shortest path problem for every possible starting point.
The algorithm of this paper does not require these ex-
tra solutions. Here the shortest path problem is thought
of as a minimum cost flow problem and solved by the
network simplex method. Furthermore, in this paper
the feasibility of the algorithm is justified by integrat-
ing it with a generic navigation control strategy, since
the topic here is
online
path planning.
It is worth to mention that as a contrast a completely
different online path planning approach is presented in
[11]. There a path is computed using steepest gradient
descent on an updated harmonic function.
It should be emphasized that in this paper the range of
the sensors is assumed to be limited. A requirement for
the method to work is that the sensing range is longer
than the length of the longest arcs of the graph. I.e. the
lower the sensing range the closer the nodes need to be


placed. In [10] the sensing constraint is relaxed and an
extension of [8, 9] with special box patterns for sparse
environments is presented.
This paper is organized as follows. First the path plan-
ning approach, using network simplex, is presented. A
more general description of the planning approach is
followed by an example where parameter values have
been chosen. Then a navigation controller is described
and integrated with the path planning. Finally simula-
tion results illustrate the performance of the combined
strategy.



تكنولوژی لامسه مجازی

 Haptics تكنولوژی لامسه مجازی
Haptics تكنولوژی لامسه مجازی


 

ترجمه و نوشته: امیر نادرپور




 
Haptic از كلمه یونانی Haptesthai گرفته شده كه به معنی لمس كردن است. این لغت به عنوان صفت به معنی «بر پایه احساس لامسه» و به عنوان یك اسم معمولاً به صورت جمع، Haptics به كار برده می شود و به معنی علم و فیزیولوژی حس لامسه است. دانشمندان چندین دهه است كه روی Haptics تحقیق كرده اند و به نكاتی در رابطه با بیولوژی لامسه دست یافته اند. مثلاً آنها می دانند كه چه نوع گیرنده هایی در پوست بدن وجود دارند و چگونه اعصاب اطلاعات را بین سیستم اعصاب مركزی و نقطه تماس، ردّ و بدل می كنند. متأسفانه دانشمندان علم كامپیوتر مشكل بزرگی در انتقال این دریافت ابتدایی از لمس كردن به سیستم های واقعی مجازی Virtual Reality خود دارند. قابلیت تبدیل اشارات بصری و شنوایی به مدل های كامپیوتری آسان است ولی وقتی به لامسه می رسیم اوضاع پیچیده تر می شود. صفحه كلیدها به كاربران اجازه می دهند تا تایپ كنند و جوی استیك ها و غربیلك های فرمان نیز می توانند لرزش ویبره داشته باشند. ولی چگونه یك كاربر می تواند آن چه در دنیای مجازی وجود دارد را لمس كند؟ مثلاً چگونه كسی كه در حال انجام یك بازی ویدیویی است می تواند سختی و سرمای قسمت فلزی اسلحه شخصیت مجازی بازی را حس كند؟ یا چگونه یك فضانورد كه در یك شبیه ساز كامپیوتری در حال آماده شدن برای سفر به فضا است، میتواند وزن و یا ناهمواری های یك سنگ فضایی شبیه سازی شده را احساس كند؟ از دهه 1980 میلادی دانشمندان كامپیوتر در تلاش برای پاسخگویی به این سؤالات هستند و زمینه كاری آنها یك زیر مجموعه تخصصی از علم Haptics به نام Computer Haptics است.
iPhone كمپانی Apple با آن صفحه لمسی خود، مدّت هاست خیلی از افراد را مشتاق خود كرده است. ولی ساخته جدید كمپانی سامسونگ كه Any Call Hapic نام دارد علاوه بر اینكه صفحه نمایش بزرگ لمسی مشابه iPhone دارد، از ویژگی جدید دیگری نیز برخوردار است. این گوشی به كاربر اجازه می دهد تا كلیك ها، لرزه ها و دیگر ورودی های لامسه ای تلفن خود را روی صفحه نمایش احساس كند و در كل، 22 نوع حس لمسی را برای او فراهم می آورد.
این حس ها وجود كلمه Hapic در نام این گوشی را توجیه كرده اند.

زنجیره Haptics
 

Haptics به عنوان یك فیلد تحقیقاتی، بسیار هم راستا با تكامل اتوماسیون به پیشرفته است. قبل از تحوّل صنعتی، تحقیقات دانشمندان روی اینكه موجودات زنده چگونه قادر به لمس كردن هستند متمركز بود. زیست شناسان آموختند كه حتّی ارگانیسم های ساده ای هم چون ستاره دریایی و كرم ها، پاسخ های پیچیده لمسی از خود بروز می دهند.
در اوایل قرن بیستم، روان شناسان و محققین پزشكی روی تجربه لامسه انسان ها تحقیقات وسیعی كردند و این شاخه از علم به نام Human Haptics شناخته شده و معلوم شد كه دست انسان كه ساختار ابتدایی مرتبط با حس لامسه دارد، فوق العاده پیچیده است.
دست با 27 استخوان و 40 ماهیچه كه شامل عضلات بازو نیز می شود، چابكی و آزادی عمل بسیار بالایی را برای ما انسان ها فراهم می آورد.
كارشناسان برای تعیین كمیت این آزادی عمل، از مفهومی به نام درجه آزادی استفاده می كنند. یك درجه آزادی، مقدار حركتی است كه از عهده یك مَفصَل ساده بر می آید. از آنجا كه دست انسان دارای 22 مَفصَل است، امكان به حركت درآمدن با 22 درجه آزادی را دارد.
پوستی كه دست را فرا گرفته نیز مجهز به گیرنده ها، اعصاب و بخش های سیستم عصبی است كه احساس لامسه را به مغز و نخاع شوكی متصل می سازند. سپس زمان توسعه ماشین ها و روبات ها فرا رسید. این وسایل مكانیكی نیز باید محیط خود را لمس و احساس می كردند.
بنابراین محققین تلاش برای یافتن اینكه چگونه این درك و احساس می تواند به ماشین ها منتقل شود را آغاز كردند و از آن زمان دوره Machine Haptics آغاز شد.
در دهه 1940 میلادی، سیستم های كنترل از راه دوری كه در آنها از Haptics استفاده شده بود برای جا به جایی مواد اتمی و خطرناك به كار گرفته شدند. در این سیستم ها كارگران از طریق اینترفیس یك ماشین می توانستند بدون هیچ گونه ریسكی، مواد خطرناك و سمی را جا به جا كنند.
سرانجام دانشمندان طرح هایی را ساختند كه در آنها موتورها و سیگنال های الكترونیكی جایگزین اتصالات مكانیكی گشتند. پیشرفت بزرگ دیگر در قالب كامپیوترها وارد این عرصه شد.
در ابتدا كامپیوترها برای كنترل ماشین ها در یك محیط واقعی مورد استفاده قرار می گرفتند (مثل كامپیوتری كه یك روبات را در خط مونتاژ یك كارخانه خودروسازی كنترل می كند) ولی در دهه 1980 میلادی، كامپیوترها توانایی تولید محیط های مجازی را پیدا كردند.
در سال 1993 در لابراتوار هوش مصنوعی دانشگاه MIT دستگاهی ساخته شد كه لامسه را شبیه سازی می كرد و در نهایت این امكان را فراهم ساخت تا بتوان چیزی را كه به وسیله كامپیوتر به وجود آمده، لمس و حس كرد.
دانشمندانی كه روی این پروژه فعالیت می كردند سعی كردند تا زمینه تحقیقاتی خود را با جدا ساختن از Machine Haptics Human،Haptics و Computer Haptics بنامند. امروزه این شاخه نیازمند نرم افزارها و سخت افزارهای ویژه است تا لمس و احساس اشیای مجازی را انتقال دهد و به سرعت در حال رشد بوده و منجر به دستیابی به تكنولوژی های Haptics خوبی شده است. وقتی از دستان خود در محیط اطراف استفاده می كنیم، دو نوع فیدبك جنبشی و لمسی دریافت می كنیم. برای درك بهتر تفاوت های این دو، دستی را تصور كنید كه به سمت یك توپ بیس بال بالا رفته و آن را می گیرد.
وقتی دست برای گرفتن توپ حركت می كند و خود را به شكل چنگ زدن در می آورد، مجموعه منحصر به فردی از اطلاعات كه مشخص كننده زاویه مفصل، طول ماهیچه و كشش آن هستند تولید می شود. این اطلاعات به وسیله گروه ویژه ای از گیرنده ها كه در ماهیچه ها، تاندون ها و مفاصل جا دارند، جمع آوری می شود. این گیرنده ها سیگنال ها را به مغز حمل می كنند، جایی كه آنها پردازش می شوند. مغز این اطلاعات را برای تأمین احساس اندازه و شكل توپ و موقعیت مناسب قرارگیری دست و بدن پردازش می كند. وقتی كه انگشتان دست، توپ را لمس می كنند، اتصال بین آنها و سطح توپ برقرار می شود. هر انگشت خود یك ساختار پیچیده سنسور بوده كه دارای گیرنده هایی هم در پوست و هم در بافت های زیرین است.
انواع مختلفی از این گیرنده ها وجود دارند كه هر كدام برای نوع خاصی از محرك ها هستند: لمس سبك، سنگین، فشار، لرزش و درد. اطلاعاتی كه به صورت جمع‌آوری شده از این گیرنده ها به مغز می رسند، به این عضو كمك می كنند تا جزئیات لامسه را درباره توپ دریافت كند.

سیستم های Haptics
 

تلاش های زیادی برای ساخت سیستم های Haptics صورت گرفته است. با وجود اینكه آنها ممكن است خیلی متفاوت از هم به نظر آیند ولی دو نكته مشترك مهم دارند: یك نرم فزار برای تعیین نیروهایی كه نتیجه زمانی هستند كه یك شخصیت مجازی از كاربر روی یك شی اثر متقابل می گذارد و دستگاهی كه از طریق آن این نیروها بر كاربر اعمال شوند.
یك شیوه معمول برای چنین كاری استفاده از مدل های چند وجهی برای نمایش اشیاء در جهان مجازی است. این مدل های سه بعدی به درستی می توانند چندین شیء مختلف را به تصویر كشیده و مجسم كنند هم چنین می توانند اطلاعات لمس كردن را به وسیله ارزیابی چگونگی اثرگذاری خطوط نیرو روی وجوه مختلف شیء مجازی محاسبه كنند. در ادامه تعدادی از دستگاه های Haptic را بررسی می كنیم تا با عملكرد آنها بیشتر آشنا شویم. Phantom از كمپانی Sensable Technologies از اولین سیستم های Haptics بود كه به صورت تجاری به فروش رسید و موفقیتش را نیز باید مدیون سادگی خود باشد.
این دستگاه لمسی به جای تلاش برای نمایش اطلاعات از چندین نقطه مختلف، لمس كردن را در تنها یك نقطه تماس شبیه سازی می كند.
Phantom این كار را به وسیله قلمی كه به بازوی لامپی شكلش متصل است انجام می دهد.
سه موتور كوچك باز خورد نیرو را توسط اعمال فشار روی قلم به كاربر ارائه می دهند.
بنابراین یك كاربر می تواند قابلیت ارتجاعی یك بادكنك مجازی و یا سختی آجرهای یك دیوار را حس كند. هم چنین می تواند ساختار، دما و وزن اجسام مجازی را نیز احساس كند.
قلم این دستگاه می تواند به صورت دلخواه تنظیم شود.
بنابراین شبیه به هر شیء در می آید. مثلاً می تواند با اتصال یك سرنگ، احساسی را كه از سوراخ كردن پوست و ماهیچه در زمان تزریق به انسان دست می دهد، شبیه سازی كند.
محققین دانشگاه كارنگی ملون در حال آزمایش روی یك اینترفیس لمسی هستند كه به اتصالات و كابل ها نیازمند نیست و به جای آنها از یك الكترومغناطیس قدرتمند برای شناور شدن دسته ای كه به یك جوی استیك شبیه است استفاده می كند.
كاربر با تكان دادن دسته، با محیط مجازی ارتباط برقرار می كند.
با حركت دادن و چرخاندن دسته او می تواند حركت، شكل، مقاومت و ساختار سطح اشیای شبیه سازی شده را حس كند.
هم چنین اجازه حركت محدود در 6 درجه آزدی را می دهد. (با تنها سه درجه آزادی فعال Phantom مقایسه كنید.)
یكی از اشكالات اینترفیس لمسی شناوری مغناطیسی، فضایی است كه اشغال می كند.
یك قفسه كامل برای جای دادن منابع برق، آمپلی فایرها و پردازشگرهای كنترل مورد نیاز است.
سیستم هایی كه به شرح آنها پرداختیم می توانند خیلی گران قیمت باشند. یعنی كاربردهای این تكنولوژی هنوز محدود به برخی صنایع خاص و انواع ویژه، آماده سازی می شود.

كاربردهای تكنولوژی لمسی
 

یافتن راه های استفاده از تكنولوژی Haptics مشكل نیست.
سازندگان بازی های كامپیوتری از اولین مصرف كنندگان Haptics های انفعالی بودند و از آنها برای لرزاندن جوی استیك ها، كنترلرها و غربیلك های فرمان بهره برده اند. ولی بازی های ویدیویی آینده به افراد این امكان را می دهند تا اشیاء مجازی را احساس نموده و با آنها برخورد كنند.
كنترلر لمسی Novint Falcon هم اكنون این وعده را به واقعیت تبدیل ساخته است.
این كنترلر كه دارای بازخورد نیروی سه بعدی بوده، به شما اجازه می دهد كه تفاوت های بین شلیك یك تپانچه را با یك شات گان و یا مقاومت كمان در یك تیر و كمان وقتی كه تیر را برای پرتاب به سوی خود می كشید، حس كنید.
اینترفیس های گرافیكی، همانند آنهایی كه محیط های عملیاتی ویندوز و MAC را تعریف می كنند نیز از ارتباطات لامسه ای، سود زیادی خواهند برد.
تصور كنید قادرید دكمه های گرافیكی مجازی را لمس كرده و با فشار روی آنها درست همانند محیط واقعی بازخورد نیرویی را دریافت كنید. برخی سازندگان صفحات لمسی در حال حاضر در حال آزمایش این تكنولوژی هستند.
طراحان تلفن همراه نوكیا یك صفحه لمسی ساخته اند كه همان گونه كه گفته شد، كاربر دكمه های روی صفحه نمایش آنرا همانند دكمه های واقعی حس می كند.
با فشار یك دكمه كاربر حركتی را به سمت داخل و سپس خارج صفحه حس می كند و هم چنین یك صدای كلیك نیز شنیده می شود.
مهندسین نوكیا با قرار دادن دو صفحه سنسور فیزیوالكتریكی در زیر صفحه نمایش و طراحی آن به گونه ای كه قابلیت حركت به سمت داخل و بیرون را داشته باشد، به طرح جدید خود رسیده اند.
با وجود اینكه كمپانی های متعددی در راه استفاده از اینترفیس های لمسی به نوكیا و نووینت پیوسته اند ولی قیمت هنوز یك مانع بزرگ است.
پیچیده ترین تكنولوژی های لمسی در صنعت، ارتش و كاربردهای درمانی یافت می شود.
آموزش دادن با استفاده از Haptics هر روز متداول تر می شود.
برای مثال دانشجویان پزشكی می توانند با استفاده از كامپیوتر و محیط های مجازی، تكنیك های حساس جراحی را فرا گیرند. مكانیك های هواپیما می توانند با قطعات و روندهای سرویس پیچیده آشنا شوند و هر چیزی را كه روی صفحه نمایش مشاهده می كنند، لمس كنند و سربازان می توانند از راه های گوناگونی برای نبرد آماده شوند و از چگونگی خنثی سازی یك بمب گرفته تا حركت با یك تانك یا به پرواز درآوردن یك هلی كوپتر یا جت جنگنده را در سناریوهای جنگی مجازی فراگیرند.
تكنولوژی لمسی كاربرد گسترده ای نیز در تلروباتیك دارد.
در یك سیستم تلروباتیك یك اپراتور، حركات روباتی را كه در مكانی دیگر قرار دارد، كنترل می كند. برخی روبات های این چنینی وظایف ساده ای مثل عكس برداری و فرستادن آن به واحد كنترل را برعهده دارند.
در یك حالت پیچیده تر تلروباتیك كه Telepresence نام دارد، اپراتور، احساس قرارگرفتن در محیط قرارگیری روبات را دارد.

اهمیت تكنولوژی لمسی
 

در بازی های ویدیویی، وجود قابلیت های لمسی بسیار جالب و جذاب است، چرا كه واقعیت نمایی بازی و در نتیجه لذّت كاربر را افزایش می دهد.
ولی در آموزش و دیگر كاربردها اینترفیس های لمسی حیاتی هستند. چرا كه احساس لامسه، اطلاعات غنی و یا جزئیات بالا را درباره یك شیء انتقال می دهند.
وقتی كه حس لامسه با دیگر حس ها و خصوصاً بینایی، تركیب می شود میزان اطلاعاتی را كه برای پردازش به مغز فرستاده می شود، افزایش می دهد.
افزایش اطلاعات دریافتی خطای كاربر و میزان مصرف انرژی را كم می كند.
سامسونگ به وضوح با معرفی گوشی تلفن همراه لمسی Anycall به امید استفاده از برخی مزایای فوق است. نوكیا نیز با معرفی گوشی های تلفن همراه با صفحه نمایش لمسی جدید، گام بزرگی را در این راستا برخواهد داشت.
این گوشی ها معمولاً زیبا به نظر می رسند و البته لمس كردن آنها جذاب است ولی علاوه بر این موارد، استفاده از آنها نیز آسان تر خواهد بود.
منبع:نوآور-ش59



The problem of learning maps is an important problem in mobile robotics

Models of the environment are needed for a series of applications such as transportation, cleaning, rescue, and various other service robotic tasks.

Learning maps requires solutions to two tasks, namely basic mapping and localization.

Basic mapping is the problem of integrating the information gathered with the robot's sensors into a given representation. It can intuitively be described by the question ``What does the world look like?'' Central aspects in mapping are the representation of the environment and the interpretation of sensor data

In contrast to this, localization is the problem of estimating the pose of the robot relative to a map. In other words, the robot has to answer the question ``Where am I?'' These

two tasks cannot be solved independently of each other. Solving both problems jointly is often referred to as the simultaneous localization and mapping (SLAM) problem

There are several variants of the SLAM problem including passive and active approaches, topological and metric SLAM, feature-based vs. volumetric approaches, and may others

The lecture will cover different topics and techniques in the context of environment modeling with mobile robots.
 We will cover techniques such as SLAM with the family of Kalman filters, information filters, particle filters.
 We will furthermore investigate graph-based approaches, least-squares error minimization, techniques for place recognition and appearance-based mapping, data association as well as information-driven approaches for observation processing.
The exercises and homework assignments will also cover practical hands-on experience with mapping techniques, as basic implementations will be part of the homework assignments


A real-time operating system (RTOS) is an operating system (OS) intended to serve real-time application process data as it comes in, typically without buffering delays. Processing time requirements (including any OS delay) are measured in tenths of seconds or shorter.

A key characteristic of an RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter.[1] A hard real-time operating system has less jitter than a soft real-time operating system. The chief design goal is not high throughput, but rather a guarantee of a soft or hard performance category. An RTOS that can usually or generally meet a deadline is a soft real-time OS, but if it can meet a deadline deterministically it is a hard real-time OS.[2]

An RTOS has an advanced algorithm for scheduling. Scheduler flexibility enables a wider, computer-system orchestration of process priorities, but a real-time OS is more frequently dedicated to a narrow set of applications. Key factors in a real-time OS are minimal interrupt latency and minimal thread switching latency; a real-time OS is valued more for how quickly or how predictably it can respond than for the amount of work it can perform in a given period of time.[3]

Contents

  • 1 Design philosophies
  • 2 Scheduling
    • 2.1 Algorithms
  • 3 Intertask communication and resource sharing
    • 3.1 Temporarily masking/disabling interrupts
    • 3.2 Binary semaphores
    • 3.3 Message passing
  • 4 Interrupt handlers and the scheduler
  • 5 Memory allocation
  • 6 Examples
  • 7 See also
  • 8 References

Design philosophies

The most common designs are:

  • Event-driven which switches tasks only when an event of higher priority needs servicing, called preemptive priority, or priority scheduling.
  • Time-sharing designs switch tasks on a regular clocked interrupt, and on events, called round robin.

Time sharing designs switch tasks more often than strictly needed, but give smoother multitasking, giving the illusion that a process or user has sole use of a machine.

Early CPU designs needed many cycles to switch tasks, during which the CPU could do nothing else useful. For example, with a 20 MHz 68000 processor (typical of the late 1980s), task switch times are roughly 20 microseconds. (In contrast, a 100 MHz ARM CPU (from 2008) switches in less than 3 microseconds.)[4][5] Because of this, early OSes tried to minimize wasting CPU time by avoiding unnecessary task switching.

Scheduling

In typical designs,[citation needed] a task has three states:

  1. Running (executing on the CPU);
  2. Ready (ready to be executed);
  3. Blocked (waiting for an event, I/O for example).

Most tasks are blocked or ready most of the time because generally only one task can run at a time per CPU. The number of items in the ready queue can vary greatly, depending on the number of tasks the system needs to perform and the type of scheduler that the system uses. On simpler non-preemptive but still multitasking systems, a task has to give up its time on the CPU to other tasks, which can cause the ready queue to have a greater number of overall tasks in the ready to be executed state (resource starvation).

Usually the data structure of the ready list in the scheduler is designed to minimize the worst-case length of time spent in the scheduler's critical section, during which preemption is inhibited, and, in some cases, all interrupts are disabled. But the choice of data structure depends also on the maximum number of tasks that can be on the ready list.

If there are never more than a few tasks on the ready list, then a doubly linked list of ready tasks is likely optimal. If the ready list usually contains only a few tasks but occasionally contains more, then the list should be sorted by priority. That way, finding the highest priority task to run does not require iterating through the entire list. Inserting a task then requires walking the ready list until reaching either the end of the list, or a task of lower priority than that of the task being inserted.

Care must be taken not to inhibit preemption during this search. Longer critical sections should be divided into small pieces. If an interrupt occurs that makes a high priority task ready during the insertion of a low priority task, that high priority task can be inserted and run immediately before the low priority task is inserted.

The critical response time, sometimes called the flyback time, is the time it takes to queue a new ready task and restore the state of the highest priority task to running. In a well-designed RTOS, readying a new task will take 3 to 20 instructions per ready-queue entry, and restoration of the highest-priority ready task will take 5 to 30 instructions.

In more advanced systems, real-time tasks share computing resources with many non-real-time tasks, and the ready list can be arbitrarily long. In such systems, a scheduler ready list implemented as a linked list would be inadequate.

Algorithms

Some commonly used RTOS scheduling algorithms are:

  • Cooperative scheduling
  • Preemptive scheduling
    • Rate-monotonic scheduling
    • Round-robin scheduling
    • Fixed priority pre-emptive scheduling, an implementation of preemptive time slicing
    • Fixed-Priority Scheduling with Deferred Preemption
    • Fixed-Priority Non-preemptive Scheduling
    • Critical section preemptive scheduling
    • Static time scheduling
  • Earliest Deadline First approach
  • Stochastic digraphs with multi-threaded graph traversal

Intertask communication and resource sharing

Multitasking systems must manage sharing data and hardware resources among multiple tasks. It is usually "unsafe" for two tasks to access the same specific data or hardware resource simultaneously. "Unsafe" means the results are inconsistent or unpredictable. There are three common approaches to resolve this problem:

Temporarily masking/disabling interrupts

General-purpose operating systems usually do not allow user programs to mask (disable) interrupts, because the user program could control the CPU for as long as it wishes. Some modern CPUs don't allow user mode code to disable interrupts as such control is considered a key operating system resource. Many embedded systems and RTOSs, however, allow the application itself to run in kernel mode for greater system call efficiency and also to permit the application to have greater control of the operating environment without requiring OS intervention.

On single-processor systems, if the application runs in kernel mode and can mask interrupts, this method is the solution with the lowest overhead to prevent simultaneous access to a shared resource. While interrupts are masked and the current task does not make a blocking OS call, then the current task has exclusive use of the CPU since no other task or interrupt can take control, so the critical section is protected. When the task exits its critical section, it must unmask interrupts; pending interrupts, if any, will then execute. Temporarily masking interrupts should only be done when the longest path through the critical section is shorter than the desired maximum interrupt latency. Typically this method of protection is used only when the critical section is just a few instructions and contains no loops. This method is ideal for protecting hardware bit-mapped registers when the bits are controlled by different tasks.

Binary semaphores

When the shared resource must be reserved without blocking all other tasks (such as waiting for Flash memory to be written), it is better to use mechanisms also available on general-purpose operating systems, such as semaphores and OS-supervised interprocess messaging. Such mechanisms involve system calls, and usually invoke the OS's dispatcher code on exit, so they typically take hundreds of CPU instructions to execute, while masking interrupts may take as few as one instruction on some processors.

A binary semaphore is either locked or unlocked. When it is locked, tasks must wait for the semaphore to unlock. A binary semaphore is therefore equivalent to a mutex. Typically a task will set a timeout on its wait for a semaphore. There are several well-known problems with semaphore based designs such as priority inversion and deadlocks.

In priority inversion a high priority task waits because a low priority task has a semaphore, but the lower priority task is not given CPU time to finish its work. A typical solution is to have the task that owns a semaphore run at, or 'inherit,' the priority of the highest waiting task. But this simple approach fails when there are multiple levels of waiting: task A waits for a binary semaphore locked by task B, which waits for a binary semaphore locked by task C. Handling multiple levels of inheritance without introducing instability in cycles is complex and problematic.

In a deadlock, two or more tasks lock semaphores without timeouts and then wait forever for the other task's semaphore, creating a cyclic dependency. The simplest deadlock scenario occurs when two tasks alternately lock two semaphores, but in the opposite order. Deadlock is prevented by careful design or by having floored semaphores, which pass control of a semaphore to the higher priority task on defined conditions.

Message passing

The other approach to resource sharing is for tasks to send messages in an organized message passing scheme. In this paradigm, the resource is managed directly by only one task. When another task wants to interrogate or manipulate the resource, it sends a message to the managing task. Although their real-time behavior is less crisp than semaphore systems, simple message-based systems avoid most protocol deadlock hazards, and are generally better-behaved than semaphore systems. However, problems like those of semaphores are possible. Priority inversion can occur when a task is working on a low-priority message and ignores a higher-priority message (or a message originating indirectly from a high priority task) in its incoming message queue. Protocol deadlocks can occur when two or more tasks wait for each other to send response messages.

Interrupt handlers and the scheduler

Since an interrupt handler blocks the highest priority task from running, and since real time operating systems are designed to keep thread latency to a minimum, interrupt handlers are typically kept as short as possible. The interrupt handler defers all interaction with the hardware if possible; typically all that is necessary is to acknowledge or disable the interrupt (so that it won't occur again when the interrupt handler returns) and notify a task that work needs to be done. This can be done by unblocking a driver task through releasing a semaphore, setting a flag or sending a message. A scheduler often provides the ability to unblock a task from interrupt handler context.

An OS maintains catalogues of objects it manages such as threads, mutexes, memory, and so on. Updates to this catalogue must be strictly controlled. For this reason it can be problematic when an interrupt handler calls an OS function while the application is in the act of also doing so. The OS function called from an interrupt handler could find the object database to be in an inconsistent state because of the application's update. There are two major approaches to deal with this problem: the unified architecture and the segmented architecture. RTOSs implementing the unified architecture solve the problem by simply disabling interrupts while the internal catalogue is updated. The downside of this is that interrupt latency increases, potentially losing interrupts. The segmented architecture does not make direct OS calls but delegates the OS related work to a separate handler. This handler runs at a higher priority than any thread but lower than the interrupt handlers. The advantage of this architecture is that it adds very few cycles to interrupt latency. As a result, OSes which implement the segmented architecture are more predictable and can deal with higher interrupt rates compared to the unified architecture.

Memory allocation

Memory allocation is more critical in a real-time operating system than in other operating systems.

First, for stability there cannot be memory leaks (memory that is allocated, then unused but never freed). The device should work indefinitely, without ever a need for a reboot. For this reason, dynamic memory allocation is frowned upon. Whenever possible, allocation of all required memory is specified statically at compile time.

Another reason to avoid dynamic memory allocation is memory fragmentation. With frequent allocation and releasing of small chunks of memory, a situation may occur when the memory is divided into several sections, in which case the RTOS can not allocate a large continuous block of memory, although there is enough free memory. Secondly, speed of allocation is important. A standard memory allocation scheme scans a linked list of indeterminate length to find a suitable free memory block,[6] which is unacceptable in an RTOS since memory allocation has to occur within a certain amount of time.

Because mechanical disks have much longer and more unpredictable response times, swapping to disk files is not used for the same reasons as RAM allocation discussed above.

The simple fixed-size-blocks algorithm works quite well for simple embedded systems because of its low overhead.

Examples

A common example of an RTOS application is an HDTV receiver and display. It needs to read a digital signal, decode it and display it as the data comes in. Any delay would be noticeable as jerky or pixelated video and/or garbled audio.

According to a 2014 Embedded Market Study,[7] the following RTOSes are among the top 10 operating systems used in the embedded systems market:

  • Green Hills Software INTEGRITY
  • Wind River VxWorks
  • QNX Neutrino
  • FreeRTOS
  • Micrium µC/OS-II, III
  • Windows CE
  • TI-RTOS Kernel (previously called DSP/BIOS)

See the comparison of real-time operating systems for a comprehensive list. Also, see the list of operating systems for all types of operating systems.

See also

  • Adaptive Partition Scheduler
  • DO-178B
  • Earliest deadline first scheduling
  • Interruptible operating system
  • Least slack time scheduling
  • POSIX
  • Rate-monotonic scheduling
  • RDOS (disambiguation)
  • ROS (disambiguation)
  • SCADA
  • Synchronous programming language
  • Time-triggered system
  • Time-utility function

References

  1. "Response Time and Jitter".
  2. Tanenbaum, Andrew (2008). Modern Operating Systems. Upper Saddle River, NJ: Pearson/Prentice Hall. p. 160. ISBN 978-0-13-600663-3.
  3. "RTOS Concepts".
  4. "Context switching time". Segger Microcontroller Systems. Retrieved 2009-12-20.
  5. "RTOS performance comparison on emb4fun.de".
  6. CS 241, University of Illinois
  7. "2014 Embedded Market Study" (PDF). EE Live!. UBM. p. 44.


Picture of the internals of an ADSL modem/router. Hao A modern example of an embedded system. Labelled parts include a microprocessor (4), RAM (6), and flash memory (7).

An embedded system is a computer system with a dedicated function within a larger mechanical or electrical system, often with real-time computing constraints.[1][2] It is embedded as part of a complete device often including hardware and mechanical parts. Embedded systems control many devices in common use today.[3]

Examples of properties typical of embedded computers when compared with general-purpose ones are low power consumption, small size, rugged operating ranges, and low per-unit cost. This comes at the price of limited processing resources, which make them significantly more difficult to program and to interface with. However, by building intelligence mechanisms on the top of the hardware, taking advantage of possible existing sensors and the existence of a network of embedded units, one can both optimally manage available resources at the unit and network levels as well as provide augmented functionalities, well beyond those available.[4] For example, intelligent techniques can be designed to manage power consumption of embedded systems.[5]

Modern embedded systems are often based on microcontrollers (i.e. CPUs with integrated memory or peripheral interfaces)[6] but ordinary microprocessors (using external chips for memory and peripheral interface circuits) are also still common, especially in more complex systems. In either case, the processor(s) used may be types ranging from general purpose to those specialised in certain class of computations, or even custom designed for the application at hand. A common standard class of dedicated processors is the digital signal processor (DSP).

Since the embedded system is dedicated to specific tasks, design engineers can optimize it to reduce the size and cost of the product and increase the reliability and performance. Some embedded systems are mass-produced, benefiting from economies of scale.

Embedded systems range from portable devices such as digital watches and MP3 players, to large stationary installations like traffic lights, factory controllers, and largely complex systems like hybrid vehicles, MRI, and avionics. Complexity varies from low, with a single microcontroller chip, to very high with multiple units, peripherals and networks mounted inside a large chassis or enclosure.

Contents

  • 1 Varieties
  • 2 History
  • 3 Characteristics
    • 3.1 User interface
    • 3.2 Processors in embedded systems
      • 3.2.1 Ready made computer boards
      • 3.2.2 ASIC and FPGA solutions
    • 3.3 Peripherals
    • 3.4 Tools
    • 3.5 Debugging
      • 3.5.1 Tracing
    • 3.6 Reliability
    • 3.7 High vs low volume
  • 4 Embedded software architectures
    • 4.1 Simple control loop
    • 4.2 Interrupt-controlled system
    • 4.3 Cooperative multitasking
    • 4.4 Preemptive multitasking or multi-threading
    • 4.5 Microkernels and exokernels
    • 4.6 Monolithic kernels
    • 4.7 Additional software components
  • 5 See also
  • 6 Notes
  • 7 References
  • 8 Further reading
  • 9 External links

Varieties

Embedded Computer Sub-Assembly for Accupoll Electronic Voting Machine[7]

Embedded systems are commonly found in consumer, cooking, industrial, automotive, medical, commercial and military applications.

Telecommunications systems employ numerous embedded systems from telephone switches for the network to cell phones at the end-user. Computer networking uses dedicated routers and network bridges to route data.

Consumer electronics include personal digital assistants (PDAs), mp3 players, mobile phones, videogame consoles, digital cameras, DVD players, GPS receivers, and printers. Household appliances, such as microwave ovens, washing machines and dishwashers, include embedded systems to provide flexibility, efficiency and features. Advanced HVAC systems use networked thermostats to more accurately and efficiently control temperature that can change by time of day and season. Home automation uses wired- and wireless-networking that can be used to control lights, climate, security, audio/visual, surveillance, etc., all of which use embedded devices for sensing and controlling.

Transportation systems from flight to automobiles increasingly use embedded systems. New airplanes contain advanced avionics such as inertial guidance systems and GPS receivers that also have considerable safety requirements. Various electric motors — brushless DC motors, induction motors and DC motors — use electric/electronic motor controllers. Automobiles, electric vehicles, and hybrid vehicles increasingly use embedded systems to maximize efficiency and reduce pollution. Other automotive safety systems include anti-lock braking system (ABS), Electronic Stability Control (ESC/ESP), traction control (TCS) and automatic four-wheel drive.

Medical equipment uses embedded systems for vital signs monitoring, electronic stethoscopes for amplifying sounds, and various medical imaging (PET, SPECT, CT, MRI) for non-invasive internal inspections. Embedded systems within medical equipment are often powered by industrial computers.[8]

Embedded systems are used in transportation, fire safety, safety and security, medical applications and life critical systems, as these systems can be isolated from hacking and thus, be more reliable.[citation needed] For fire safety, the systems can be designed to have greater ability to handle higher temperatures and continue to operate. In dealing with security, the embedded systems can be self-sufficient and be able to deal with cut electrical and communication systems.

A new class of miniature wireless devices called motes are networked wireless sensors. Wireless sensor networking, WSN, makes use of miniaturization made possible by advanced IC design to couple full wireless subsystems to sophisticated sensors, enabling people and companies to measure a myriad of things in the physical world and act on this information through IT monitoring and control systems. These motes are completely self-contained, and will typically run off a battery source for years before the batteries need to be changed or charged.

Embedded Wi-Fi modules provide a simple means of wirelessly enabling any device which communicates via a serial port.

History

One of the very first recognizably modern embedded systems was the Apollo Guidance Computer, developed by Charles Stark Draper at the MIT Instrumentation Laboratory. At the project's inception, the Apollo guidance computer was considered the riskiest item in the Apollo project as it employed the then newly developed monolithic integrated circuits to reduce the size and weight. An early mass-produced embedded system was the Autonetics D-17 guidance computer for the Minuteman missile, released in 1961. When the Minuteman II went into production in 1966, the D-17 was replaced with a new computer that was the first high-volume use of integrated circuits. This program alone reduced prices on quad nand gate ICs from $1000/each to $3/each[citation needed], permitting their use in commercial products.

Since these early applications in the 1960s, embedded systems have come down in price and there has been a dramatic rise in processing power and functionality. An early microprocessor for example, the Intel 4004, was designed for calculators and other small systems but still required external memory and support chips. In 1978 National Engineering Manufacturers Association released a "standard" for programmable microcontrollers, including almost any computer-based controllers, such as single board computers, numerical, and event-based controllers.

As the cost of microprocessors and microcontrollers fell it became feasible to replace expensive knob-based analog components such as potentiometers and variable capacitors with up/down buttons or knobs read out by a microprocessor even in consumer products. By the early 1980s, memory, input and output system components had been integrated into the same chip as the processor forming a microcontroller. Microcontrollers find applications where a general-purpose computer would be too costly.

A comparatively low-cost microcontroller may be programmed to fulfill the same role as a large number of separate components. Although in this context an embedded system is usually more complex than a traditional solution, most of the complexity is contained within the microcontroller itself. Very few additional components may be needed and most of the design effort is in the software. Software prototype and test can be quicker compared with the design and construction of a new circuit not using an embedded processor.

Characteristics

Gumstix Overo COM, a tiny, OMAP-based embedded computer-on-module with Wifi and Bluetooth.

Embedded systems are designed to do some specific task, rather than be a general-purpose computer for multiple tasks. Some also have real-time performance constraints that must be met, for reasons such as safety and usability; others may have low or no performance requirements, allowing the system hardware to be simplified to reduce costs.

Embedded systems are not always standalone devices. Many embedded systems consist of small, computerized parts within a larger device that serves a more general purpose. For example, the Gibson Robot Guitar features an embedded system for tuning the strings, but the overall purpose of the Robot Guitar is, of course, to play music.[9] Similarly, an embedded system in an automobile provides a specific function as a subsystem of the car itself.

e-con Systems eSOM270 & eSOM300 Computer on Modules

The program instructions written for embedded systems are referred to as firmware, and are stored in read-only memory or Flash memory chips. They run with limited computer hardware resources: little memory, small or non-existent keyboard or screen.

User interface

Embedded system text user interface using MicroVGA[nb 1]

Embedded systems range from no user interface at all, in systems dedicated only to one task, to complex graphical user interfaces that resemble modern computer desktop operating systems. Simple embedded devices use buttons, LEDs, graphic or character LCDs (HD44780 LCD for example) with a simple menu system.

More sophisticated devices which use a graphical screen with touch sensing or screen-edge buttons provide flexibility while minimizing space used: the meaning of the buttons can change with the screen, and selection involves the natural behavior of pointing at what's desired. Handheld systems often have a screen with a "joystick button" for a pointing device.

Some systems provide user interface remotely with the help of a serial (e.g. RS-232, USB, I²C, etc.) or network (e.g. Ethernet) connection. This approach gives several advantages: extends the capabilities of embedded system, avoids the cost of a display, simplifies BSP and allows one to build a rich user interface on the PC. A good example of this is the combination of an embedded web server running on an embedded device (such as an IP camera) or a network router. The user interface is displayed in a web browser on a PC connected to the device, therefore needing no software to be installed.

Processors in embedded systems

Embedded processors can be broken into two broad categories. Ordinary microprocessors (μP) use separate integrated circuits for memory and peripherals. Microcontrollers (μC) have on-chip peripherals, thus reducing power consumption, size and cost. In contrast to the personal computer market, many different basic CPU architectures are used, since software is custom-developed for an application and is not a commodity product installed by the end user. Both Von Neumann as well as various degrees of Harvard architectures are used. RISC as well as non-RISC processors are found. Word lengths vary from 4-bit to 64-bits and beyond, although the most typical remain 8/16-bit. Most architectures come in a large number of different variants and shapes, many of which are also manufactured by several different companies.

Numerous microcontrollers have been developed for embedded systems use. General-purpose microprocessors are also used in embedded systems, but generally require more support circuitry than microcontrollers.

Ready made computer boards

PC/104 and PC/104+ are examples of standards for ready made computer boards intended for small, low-volume embedded and ruggedized systems, mostly x86-based. These are often physically small compared to a standard PC, although still quite large compared to most simple (8/16-bit) embedded systems. They often use DOS, Linux, NetBSD, or an embedded real-time operating system such as MicroC/OS-II, QNX or VxWorks. Sometimes these boards use non-x86 processors.

In certain applications, where small size or power efficiency are not primary concerns, the components used may be compatible with those used in general purpose x86 personal computers. Boards such as the VIA EPIA range help to bridge the gap by being PC-compatible but highly integrated, physically smaller or have other attributes making them attractive to embedded engineers. The advantage of this approach is that low-cost commodity components may be used along with the same software development tools used for general software development. Systems built in this way are still regarded as embedded since they are integrated into larger devices and fulfill a single role. Examples of devices that may adopt this approach are ATMs and arcade machines, which contain code specific to the application.

However, most ready-made embedded systems boards are not PC-centered and do not use the ISA or PCI busses. When a System-on-a-chip processor is involved, there may be little benefit to having a standarized bus connecting discrete components, and the environment for both hardware and software tools may be very different.

One common design style uses a small system module, perhaps the size of a business card, holding high density BGA chips such as an ARM-based System-on-a-chip processor and peripherals, external flash memory for storage, and DRAM for runtime memory. The module vendor will usually provide boot software and make sure there is a selection of operating systems, usually including Linux and some real time choices. These modules can be manufactured in high volume, by organizations familiar with their specialized testing issues, and combined with much lower volume custom mainboards with application-specific external peripherals.

Implementation of embedded systems have advanced, embedded systems can easily be implemented with already made boards which are based on worldwide accepted platform. These platforms include but not limited to arduino, raspberry pi etc.

ASIC and FPGA solutions

A common array of n configuration for very-high-volume embedded systems is the system on a chip (SoC) which contains a complete system consisting of multiple processors, multipliers, caches and interfaces on a single chip. SoCs can be implemented as an application-specific integrated circuit (ASIC) or using a field-programmable gate array (FPGA).

Peripherals

A close-up of the SMSC LAN91C110 (SMSC 91x) chip, an embedded ethernet chip.

Embedded Systems talk with the outside world via peripherals, such as:

  • Serial Communication Interfaces (SCI): RS-232, RS-422, RS-485 etc.
  • Synchronous Serial Communication Interface: I2C, SPI, SSC and ESSI (Enhanced Synchronous Serial Interface)
  • Universal Serial Bus (USB)
  • Multi Media Cards (SD Cards, Compact Flash etc.)
  • Networks: Ethernet, LonWorks, etc.
  • Fieldbuses: CAN-Bus, LIN-Bus, PROFIBUS, etc.
  • Timers: PLL(s), Capture/Compare and Time Processing Units
  • Discrete IO: aka General Purpose Input/Output (GPIO)
  • Analog to Digital/Digital to Analog (ADC/DAC)
  • Debugging: JTAG, ISP, ICSP, BDM Port, BITP, and DB9 ports.

Tools

As with other software, embedded system designers use compilers, assemblers, and debuggers to develop embedded system software. However, they may also use some more specific tools:

  • In circuit debuggers or emulators (see next section).
  • Utilities to add a checksum or CRC to a program, so the embedded system can check if the program is valid.
  • For systems using digital signal processing, developers may use a math workbench such as Scilab / Scicos, MATLAB / Simulink, EICASLAB, MathCad, Mathematica,or FlowStone DSP to simulate the mathematics. They might also use libraries for both the host and target which eliminates developing DSP routines as done in DSPnano RTOS.
  • A model based development tool like VisSim lets you create and simulate graphical data flow and UML State chart diagrams of components like digital filters, motor controllers, communication protocol decoding and multi-rate tasks. Interrupt handlers can also be created graphically. After simulation, you can automatically generate C-code to the VisSim RTOS which handles the main control task and preemption of background tasks, as well as automatic setup and programming of on-chip peripherals.
  • Custom compilers and linkers may be used to optimize specialized hardware.
  • An embedded system may have its own special language or design tool, or add enhancements to an existing language such as Forth or Basic.
  • Another alternative is to add a real-time operating system or embedded operating system, which may have DSP capabilities like DSPnano RTOS.
  • Modeling and code generating tools often based on state machines

Software tools can come from several sources:

  • Software companies that specialize in the embedded market
  • Ported from the GNU software development tools
  • Sometimes, development tools for a personal computer can be used if the embedded processor is a close relative to a common PC processor

As the complexity of embedded systems grows, higher level tools and operating systems are migrating into machinery where it makes sense. For example, cellphones, personal digital assistants and other consumer computers often need significant software that is purchased or provided by a person other than the manufacturer of the electronics. In these systems, an open programming environment such as Linux, NetBSD, OSGi or Embedded Java is required so that the third-party software provider can sell to a large market.

Debugging

Embedded debugging may be performed at different levels, depending on the facilities available. From simplest to most sophisticated they can be roughly grouped into the following areas:

  • Interactive resident debugging, using the simple shell provided by the embedded operating system (e.g. Forth and Basic)
  • External debugging using logging or serial port output to trace operation using either a monitor in flash or using a debug server like the Remedy Debugger which even works for heterogeneous multicore systems.
  • An in-circuit debugger (ICD), a hardware device that connects to the microprocessor via a JTAG or Nexus interface. This allows the operation of the microprocessor to be controlled externally, but is typically restricted to specific debugging capabilities in the processor.
  • An in-circuit emulator (ICE) replaces the microprocessor with a simulated equivalent, providing full control over all aspects of the microprocessor.
  • A complete emulator provides a simulation of all aspects of the hardware, allowing all of it to be controlled and modified, and allowing debugging on a normal PC. The downsides are expense and slow operation, in some cases up to 100X slower than the final system.
  • For SoC designs, the typical approach is to verify and debug the design on an FPGA prototype board. Tools such as Certus [10] are used to insert probes in the FPGA RTL that make signals available for observation. This is used to debug hardware, firmware and software interactions across multiple FPGA with capabilities similar to a logic analyzer.

Unless restricted to external debugging, the programmer can typically load and run software through the tools, view the code running in the processor, and start or stop its operation. The view of the code may be as HLL source-code, assembly code or mixture of both.

Because an embedded system is often composed of a wide variety of elements, the debugging strategy may vary. For instance, debugging a software- (and microprocessor-) centric embedded system is different from debugging an embedded system where most of the processing is performed by peripherals (DSP, FPGA, co-processor). An increasing number of embedded systems today use more than one single processor core. A common problem with multi-core development is the proper synchronization of software execution. In such a case, the embedded system design may wish to check the data traffic on the busses between the processor cores, which requires very low-level debugging, at signal/bus level, with a logic analyzer, for instance.

Tracing

Real-time operating systems (RTOS) often supports tracing of operating system events. A graphical view is presented by a host PC tool, based on a recording of the system behavior. The trace recording can be performed in software, by the RTOS, or by special tracing hardware. RTOS tracing allows developers to understand timing and performance issues of the software system and gives a good understanding of the high-level system behaviors. Commercial tools like RTXC Quadros or IAR Systems exists.

Reliability

Embedded systems often reside in machines that are expected to run continuously for years without errors, and in some cases recover by themselves if an error occurs. Therefore, the software is usually developed and tested more carefully than that for personal computers, and unreliable mechanical moving parts such as disk drives, switches or buttons are avoided.

Specific reliability issues may include:

  • The system cannot safely be shut down for repair, or it is too inaccessible to repair. Examples include space systems, undersea cables, navigational beacons, bore-hole systems, and automobiles.
  • The system must be kept running for safety reasons. "Limp modes" are less tolerable. Often backups are selected by an operator. Examples include aircraft navigation, reactor control systems, safety-critical chemical factory controls, train signals.
  • The system will lose large amounts of money when shut down: Telephone switches, factory controls, bridge and elevator controls, funds transfer and market making, automated sales and service.

A variety of techniques are used, sometimes in combination, to recover from errors—both software bugs such as memory leaks, and also soft errors in the hardware:

  • watchdog timer that resets the computer unless the software periodically notifies the watchdog
  • subsystems with redundant spares that can be switched over to
  • software "limp modes" that provide partial function
  • Designing with a Trusted Computing Base (TCB) architecture[11] ensures a highly secure & reliable system environment
  • A Hypervisor designed for embedded systems, is able to provide secure encapsulation for any subsystem component, so that a compromised software component cannot interfere with other subsystems, or privileged-level system software. This encapsulation keeps faults from propagating from one subsystem to another, improving reliability. This may also allow a subsystem to be automatically shut down and restarted on fault detection.
  • Immunity Aware Programming

High vs low volume

For high volume systems such as portable music players or mobile phones, minimizing cost is usually the primary design consideration. Engineers typically select hardware that is just “good enough” to implement the necessary functions.

For low-volume or prototype embedded systems, general purpose computers may be adapted by limiting the programs or by replacing the operating system with a real-time operating system.

Embedded software architectures

Main article: Embedded software

There are several different types of software architecture in common use.

Simple control loop

In this design, the software simply has a loop. The loop calls subroutines, each of which manages a part of the hardware or software.

Interrupt-controlled system

Some embedded systems are predominantly controlled by interrupts. This means that tasks performed by the system are triggered by different kinds of events; an interrupt could be generated, for example, by a timer in a predefined frequency, or by a serial port controller receiving a byte.

These kinds of systems are used if event handlers need low latency, and the event handlers are short and simple. Usually, these kinds of systems run a simple task in a main loop also, but this task is not very sensitive to unexpected delays.

Sometimes the interrupt handler will add longer tasks to a queue structure. Later, after the interrupt handler has finished, these tasks are executed by the main loop. This method brings the system close to a multitasking kernel with discrete processes.

Cooperative multitasking

A nonpreemptive multitasking system is very similar to the simple control loop scheme, except that the loop is hidden in an API. The programmer defines a series of tasks, and each task gets its own environment to “run” in. When a task is idle, it calls an idle routine, usually called “pause”, “wait”, “yield”, “nop” (stands for no operation), etc.

The advantages and disadvantages are similar to that of the control loop, except that adding new software is easier, by simply writing a new task, or adding to the queue.

Preemptive multitasking or multi-threading

In this type of system, a low-level piece of code switches between tasks or threads based on a timer (connected to an interrupt). This is the level at which the system is generally considered to have an "operating system" kernel. Depending on how much functionality is required, it introduces more or less of the complexities of managing multiple tasks running conceptually in parallel.

As any code can potentially damage the data of another task (except in larger systems using an MMU) programs must be carefully designed and tested, and access to shared data must be controlled by some synchronization strategy, such as message queues, semaphores or a non-blocking synchronization scheme.

Because of these complexities, it is common for organizations to use a real-time operating system (RTOS), allowing the application programmers to concentrate on device functionality rather than operating system services, at least for large systems; smaller systems often cannot afford the overhead associated with a generic real time system, due to limitations regarding memory size, performance, or battery life. The choice that an RTOS is required brings in its own issues, however, as the selection must be done prior to starting to the application development process. This timing forces developers to choose the embedded operating system for their device based upon current requirements and so restricts future options to a large extent.[12] The restriction of future options becomes more of an issue as product life decreases. Additionally the level of complexity is continuously growing as devices are required to manage variables such as serial, USB, TCP/IP, Bluetooth, Wireless LAN, trunk radio, multiple channels, data and voice, enhanced graphics, multiple states, multiple threads, numerous wait states and so on. These trends are leading to the uptake of embedded middleware in addition to a real-time operating system.

Microkernels and exokernels

A microkernel is a logical step up from a real-time OS. The usual arrangement is that the operating system kernel allocates memory and switches the CPU to different threads of execution. User mode processes implement major functions such as file systems, network interfaces, etc.

In general, microkernels succeed when the task switching and intertask communication is fast and fail when they are slow.

Exokernels communicate efficiently by normal subroutine calls. The hardware and all the software in the system are available to and extensible by application programmers.

Monolithic kernels

In this case, a relatively large kernel with sophisticated capabilities is adapted to suit an embedded environment. This gives programmers an environment similar to a desktop operating system like Linux or Microsoft Windows, and is therefore very productive for development; on the downside, it requires considerably more hardware resources, is often more expensive, and, because of the complexity of these kernels, can be less predictable and reliable.

Common examples of embedded monolithic kernels are embedded Linux and Windows CE.

Despite the increased cost in hardware, this type of embedded system is increasing in popularity, especially on the more powerful embedded devices such as wireless routers and GPS navigation systems. Here are some of the reasons:

  • Ports to common embedded chip sets are available.
  • They permit re-use of publicly available code for device drivers, web servers, firewalls, and other code.
  • Development systems can start out with broad feature-sets, and then the distribution can be configured to exclude unneeded functionality, and save the expense of the memory that it would consume.
  • Many engineers believe that running application code in user mode is more reliable and easier to debug, thus making the development process easier and the code more portable.[citation needed]
  • Features requiring faster response than can be guaranteed can often be placed in hardware.

Additional software components

In addition to the core operating system, many embedded systems have additional upper-layer software components. These components consist of networking protocol stacks like CAN, TCP/IP, FTP, HTTP, and HTTPS, and also included storage capabilities like FAT and flash memory management systems. If the embedded device has audio and video capabilities, then the appropriate drivers and codecs will be present in the system. In the case of the monolithic kernels, many of these software layers are included. In the RTOS category, the availability of the additional software components depends upon the commercial offering.

See also

Portal icon Electronics portal
  • Communications server
  • Cyber-physical system
  • DSP
  • Electronic Control Unit
  • Hypervisor
  • Embedded operating systems
  • Embedded software
  • Firmware
  • FPGA
  • Information appliance
  • Microprocessor
  • Microcontroller
  • Programming languages
  • Real-time operating system
  • Software engineering
  • System on a chip
  • System on module
  • Ubiquitous computing

Notes

  1. For more details of MicroVGA see this PDF.


Hardware-in-the-loop (HIL) simulation, (or HWIL) is a technique that is used in the development and test of complex real-time embedded systems. HIL simulation provides an effective platform by adding the complexity of the plant under control to the test platform. The complexity of the plant under control is included in test and development by adding a mathematical representation of all related dynamic systems. These mathematical representations are referred to as the “plant simulation”. The embedded system to be tested interacts with this plant simulation.

Contents

  • 1 How HIL works
  • 2 Why use hardware-in-the-loop simulation?
    • 2.1 Enhancing the quality of testing
    • 2.2 Tight development schedules
    • 2.3 High-burden-rate plant
    • 2.4 Early process human factors development
  • 3 Use in various disciplines
    • 3.1 Automotive systems
    • 3.2 Power electronics
    • 3.3 Radar
    • 3.4 Robotics
    • 3.5 Power systems
    • 3.6 Offshore systems
  • 4 References
  • 5 External links

How HIL works

An HIL simulation must include electrical emulation of sensors and actuators. These electrical emulations act as the interface between the plant simulation and the embedded system under test. The value of each electrically emulated sensor is controlled by the plant simulation and is read by the embedded system under test (feedback). Likewise, the embedded system under test implements its control algorithms by outputting actuator control signals. Changes in the control signals result in changes to variable values in the plant simulation.

For example, a HIL simulation platform for the development of automotive anti-lock braking systems may have mathematical representations for each of the following subsystems in the plant simulation:[1]

  • Vehicle dynamics, such as suspension, wheels, tires, roll, pitch and yaw;
  • Dynamics of the brake system’s hydraulic components;
  • Road characteristics.

Why use hardware-in-the-loop simulation?

In many cases, the most effective way to develop an embedded system is to connect the embedded system to the real plant. In other cases, HIL simulation is more efficient. The metric of development and test efficiency is typically a formula that includes the following factors: 1. Cost 2. Duration 3. Safety 4. Feasibility

The cost of the approach should be a measure of the cost of all tools and effort. The duration of development and testing affects the time-to-market for a planned product. Safety factor and development duration are typically equated to a cost measure. Specific conditions that warrant the use of HIL simulation include the following:

  • Enhancing the quality of testing
  • Tight development schedules
  • High-burden-rate plant
  • Early process human factor development

Enhancing the quality of testing

Usage of HiLs enhances the quality of the testing by increasing the scope of the testing. Ideally, an embedded system would be tested against the real plant, but most of the time the real plant itself imposes limitations in terms of the scope of the testing. For example, testing an engine control unit as a real plant can create the following dangerous conditions for the test engineer:

  • Testing at or beyond the range of the certain ECU parameters (e.g. Engine parameters etc.)
  • Testing and verification of the system at failure conditions

In the above mentioned test scenarios, HIL provides the efficient control and safe environment where test or application engineer can focus on the functionality of the controller.

Tight development schedules

The tight development schedules associated with most new automotive, aerospace and defense programs do not allow embedded system testing to wait for a prototype to be available. In fact, most new development schedules assume that HIL simulation will be used in parallel with the development of the plant. For example, by the time a new automobile engine prototype is made available for control system testing, 95% of the engine controller testing will have been completed using HIL simulation[citation needed].

The aerospace and defense industries are even more likely to impose a tight development schedule. Aircraft and land vehicle development programs are using desktop and HIL simulation to perform design, test, and integration in parallel.

High-burden-rate plant

In many cases, the plant is more expensive than a high fidelity, real-time simulator and therefore has a higher-burden rate. Therefore, it is more economical to develop and test while connected to a HIL simulator than the real plant. For jet engine manufacturers, HIL simulation is a fundamental part of engine development. The development of Full Authority Digital Engine Controllers (FADEC) for aircraft jet engines is an extreme example of a high-burden-rate plant. Each jet engine can cost millions of dollars. In contrast, a HIL simulator designed to test a jet engine manufacturer’s complete line of engines may demand merely a tenth of the cost of a single engine.

Early process human factors development

HIL simulation is a key step in the process of developing human factors, a method of ensuring usability and system consistency using software ergonomics, human-factors research and design. For real-time technology, human-factors development is the task of collecting usability data from man-in-the-loop testing for components that will have a human interface.

An example of usability testing is the development of fly-by-wire flight controls. Fly-by-wire flight controls eliminate the mechanical linkages between the flight controls and the aircraft control surfaces. Sensors communicate the demanded flight response and then apply realistic force feedback to the fly-by-wire controls using motors. The behavior of fly-by-wire flight controls is defined by control algorithms. Changes in algorithm parameters can translate into more or less flight response from a given flight control input. Likewise, changes in the algorithm parameters can also translate into more or less force feedback for a given flight control input. The “correct” parameter values are a subjective measure. Therefore, it is important to get input from numerous man-in-the-loop tests to obtain optimal parameter values.

In the case of fly-by-wire flight controls development, HIL simulation is used to simulate human factors. The flight simulator includes plant simulations of aerodynamics, engine thrust, environmental conditions, flight control dynamics and more. Prototype fly-by-wire flight controls are connected to the simulator and test pilots evaluate flight performance given various algorithm parameters.

The alternative to HIL simulation for human factors and usability development is to place prototype flight controls in early aircraft prototypes and test for usability during flight test. This approach fails when measuring the four conditions listed above. Cost: A flight test is extremely costly and therefore the goal is to minimize any development occurring with flight test. Duration: Developing flight controls with flight test will extend the duration of an aircraft development program. Using HIL simulation, the flight controls may be developed well before a real aircraft is available. Safety: Using flight test for the development of critical components such as flight controls has a major safety implication. Should errors be present in the design of the prototype flight controls, the result could be a crash landing. Feasibility: It may not be possible to explore certain critical timings (e.g. sequences of user actions with millisecond precision) with real users operating a plant. Likewise for problematical points in parameter space that may not be easily reachable with a real plant but must be tested against the hardware in question.

Use in various disciplines

Automotive systems

In context of automotive applications "Hardware-in-the-loop simulation systems provide such a virtual vehicle for systems validation and verification."[2] Since in-vehicle driving tests for evaluating performance and diagnostic functionalities of Engine Management Systems are often time-consuming, expensive and not reproducible, HIL simulators allow developers to validate new hardware and software automotive solutions, respecting quality requirements and time-to-market restrictions. In a typical HIL Simulator, engine dynamics is emulated from mathematic models, executed by a dedicated real-time processor. In addition, an I/O unit allows the connection of vehicle sensors and actuators (which usually present high degree of non-linearity). Finally, the Electronic Control Unit (ECU) under test is connected to the system and stimulated by a set of vehicle maneuvers executed by the simulator. At this point, HIL simulation also offers a high degree of repeatability during testing phase.

In the literature, several HIL specific applications are reported and simplified HIL simulators were built according some specific purpose.[1][3][4] When testing a new ECU software release for example, experiments can be performed in open loop and therefore several engine dynamic models are no longer required. The strategy is restricted to the analysis of ECU outputs when excited by controlled inputs. In this case, a Micro HIL system (MHIL) offers a simpler and more economic solution.[5] Since complexity of models processing is dumped, a full-size HIL system is reduced into a portable device composed of a signal generator, an I/O board, and a console containing the actuators (external loads) to be connected to the ECU.

Power electronics

Hardware-in-the-Loop Simulation for Power Electronics systems is the next quantum leap in the evolution of HIL technologies[citation needed]. The ability to design and automatically test power electronics systems with HIL simulations will reduce development cycle, increase efficiency, improve reliability and safety of these systems for large number of applications. Indeed, power electronics is an enabling technology for hybrid electric vehicles, electric vehicles, variable speed wind turbines, solar photovoltaics, industry automation, electric trains etc. There are at least three strong reasons for using hardware-in-the-loop simulation for power electronics, namely:

  • reduction of development cycle,
  • demand to extensively test control hardware and software in order to meet safety and quality requirements, and
  • need to prevent costly and dangerous failures.

The question is why are power electronics systems so different considering that HIL has been used in aerospace and automotive applications for decades? Power electronics systems are a class of dynamic systems that exhibit extremely fast dynamics due to high-frequency switching action of power electronics switches (e.g. IGBTs, MOSFETs, IGCTs, diodes etc.). Real-time simulations of switching transitions require digital processor speeds and latencies that can actually be met with off-the-shelf computer systems and with FPGA/CPU platform technologies making it 100 times faster than traditional computational methods to achieve high-resolution HIL for power electronics.

Radar

HIL simulation for radar systems have evolved from radar-jamming. Digital Radio Frequency Memory (DRFM) systems are typically used to create false targets to confuse the radar in the battlefield, but these same systems can simulate a target in the laboratory. This configuration allows for the testing and evaluation of the radar system, reducing the need for flight trials (for airborne radar systems) and field tests (for search or tracking radars), and can give an early indication to the susceptibility of the radar to electronic warfare (EW) techniques.

Robotics

Techniques for HIL simulation have been recently applied to the automatic generation of complex controllers for robots. A robot uses its own real hardware to extract sensation and actuation data, then uses this data to infer a physical simulation (self-model) containing aspects such as its own morphology as well as characteristics of the environment. Algorithms such as Back-to-Reality[6] (BTR) and Estimation Exploration[7] (EEA) have been proposed in this context.

Power systems

In recent years, HIL for power systems has been used for verifying the stability, operation, and fault tolerance of large-scale electrical grids. Current-generation real-time processing platforms have the capability to model large-scale power systems in real-time. This includes systems with more than 10,000 buses with associated generators, loads, power-factor correction devices, and network interconnections.[8] These types of simulation platforms enable the evaluation and testing of large-scale power systems in a realistic emulated environment. Moreover, HIL for power systems has been used for investigating the integration of distributed resources, next-generation SCADA systems and power management units, and static synchronous compensator devices.[9]

Offshore systems

In offshore and marine engineering, control systems and mechanical structures are generally designed in parallel. Testing the control systems is only possible after integration. As a result many errors are found that have to be solved during the commissioning, with the risks of personal injuries, damaging equipment and delays. To reduce these errors, HIL simulation is gaining widespread attention.[10] This is reflected by the adoption of HIL simulation in the Det Norske Veritas rules.[11


Hardware-In-the-Loop Simulation

The key feature of rapid-prototyping systems is fast transfer of slow-motion off-line simulation, running on a PC or workstation, to a real-time simulation running on a dedicated processor linked to the physical hardware components. From energy production, to aerospace and aeronautics, to robotics, automotive, naval, and defense, real-time simulation and support for hardware-in-the-loop (HIL) modeling are increasingly recognized as essential tools for a design.

Mobile Manipulator

The mobile manipulator consists of a two-wheeled differential-drive platform and a 5 DOF arm with servo joints. An array of 8 sonar sensors covers the full 180 degrees view in front of robot, and the wheels and manipulator joints are equipped with optical encoders. The robot can communicate through radio frequency with a PC that hosts a comprehensive software application for navigating and controlling the robot. An on-board microcontroller handles the real-time control dealing with sensor and actuator signals and radio communications with the host PC.

Smart Structure

A remotely accessible real-time control experiment consisting of a flexible beam clamped at one end while the other end is equipped with a servo motor that drives an eccentric load. The purpose of the experiment is to design a controller in MATLAB® to dampen out the vibrations in the beam.

Strain Gage and Materials Testing

A remotely accessible stress-strain test bed allows students to deterermine the Elastic Modulus, Poisson's Ratio, and the material loss factors for a variety of pre-gaged cantilever beams using surface mounted Constantan alloy strain gages. Comparisons can be made between a variety of materials including several advanced composites. The test bed is a custom experimentation platform developed from the ground up for teleoperation.

Photoelastic Stress Analysis

A remotely accessible photoelastic stress test bed allows students to visual stress gradients in a variety of structure components using polarized light. Stress concentration, distribution and failure criteria are determined using computer-aided image analysis of pictures collected using a digital camera. The test bed is a custom experimentation platform developed from the ground up for teleoperation.

Aerodynamic Subsonic Forces on an Airfoil

A remotely accessible subsonic wind tunnel allows students to obtain the section lift and drag coefficients for a symmetric airfoil by measuring the pressure distributions on the airfoil surface using a variety of pressure sensors. Some dynamic observations can also performed for the airfoil pitching with various amplitudes and speeds. The wind tunnel was adapted for teleoperation using an integrated data-acquisition hardware control system.

Supersonic Flow and Shockwaves

A remotely accessible supersonic wind tunnel allows students to characterize a supersonic flow using static and impact pressure probes to monitor velocities in the tunnel at various points along the flow. A Schlieren camera system is used to visualize shock waves from objects placed in the tunnel test section. The wind tunnel was adapted for teleoperation using an integrated data-acquisition hardware control system.

Design Laboratory

The design laboratory is a learning space for second year students in AER201 - Engineering Students. The laboratory is equipped with 34 workstations each with a design computer, function generator, oscilloscope, and Hardware-In-the-Loop (HIL) simulation platform.


Research

Holistic Mechatronics

This research outlines a holistic concurrent design methodology that enhances communication between designers from various disciplines through introducing the universal notion of satisfaction and expressing the holistic behaviour of multidisciplinary systems using the concept of energy. The methodology formalizes subjective aspects of design, resulting in the simplification of the multi-objective constrained optimization process. The impact of the designer’s subjective attitude throughout the design is also formalized and adjusted based on a holistic system performance by utilizing an energy-based model of multidisciplinary systems. The application of the methodology to a 5 D.O.F industrial robot manipulator has shown promising results.


Reconfigurable Mechatronics

The research focuses on the development of a concurrent design framework for autonomously reconfigurable mechatronic systems. Using manifold topology as an abstract representation of the system configuration, Reconfigurable Mechatronics utilizes a template-based approach along with manifold path planning to select a task-based desirable configuration for the inherently-redundant multidisciplinary systems. The merits of the methodology are shown through its applications to reconfigurable robotic rovers as well as a newly-designed 18 D.O.F. autonomously-reconfigurable serial manipulator.


Mechatronics by Analogy

The research postulates that by establishing a similarity relation between a complex system and a number of simpler systems it is possible to design the former using the analysis and synthesis means developed for the simpler systems. The methodology provides a framework for concurrent engineering of multidisciplinary systems while maintaining the transparency of the system behaviour through making formal analogies between the system and those with more tractable dynamics. The methodology is successfully applied to the design of a monopod robotic leg.


Heterogeneous Robotic Team

The implementation of knowledge-base hierarchical control schemes is studied for developing new architectures that allow a team of non-uniform (with respect to both software and hardware) rover platforms to communicate and collaborate in performing various tasks and also to enhance their collective performance in time, without the intervention of a central server or operator. Using multiple robots with diverse capabilities can result in performing complex tasks by simple individual robot platforms, as can be observed repeatedly in the nature, such as insect colonies. The challenge, however, is to build a simple yet effective means of communication and knowledge integration. The focus of this research is on the methods of parsing the tasks of overall mission objectives and mapping them onto a heterogeneous group of robotic platforms, as well as techniques for the integration of perceptual information packets obtained from heterogeneous robots and their synthesis into a coherent picture for a remote operator’s situational awareness.


Intelligent Robotic Swarm

The research addresses Insect Robotics, which is inspired by social insects. Five major characteristics distinguish insect robots from other multi-agent robotic teams, namely homogeneity, simplicity and compactness, agent-to-agent communication, distributed control strategy, and social learning. Although social insects have simple brains, they are capable of navigating, interacting and cooperating with each other. These characteristics are implemented through the creation of large quantities (tens to thousands) of rover platforms, equipped with sensors and on-board processors, which are small, simple, and cheap, and which collectively behave similarly to a colony of ants in terms of navigation, communication, interaction, and social learning. Such a study will be unique for its attempt to develop a systematic and pragmatic distributed control architecture that accommodates both individualistic navigation/localization and social collaboration/interaction and learning.


Robot Social Learning

The research studies interactions between collective, cooperative and collaborative behaviours of robotic teams, and attempts to develop hybrid multi-agent learning algorithms for enhancing such social behaviours concurrently. Of particular interest are questions such as: i) how to enhance one’s advice; ii) how to build upon advice from others and generate new advice; and iii) how to strike a balance between improving individual performance and enhancing group advice-sharing.


Free-base Robot Manipulation

The research aims at reformulating the kinematic and dynamic equations of free-base manipulators, based on symplectic geometry, in order to obtain suitable laws for the concurrent base-manipulator motion control. The goal is to develop new generation of free-flying manipulators that can be released from the base station for reaching larger workspaces. Free-flying and free-floating manipulators are widely used in space applications. In terrestrial applications, mobile manipulators are also gaining popularity for their large workspace. Since these mechanisms are mounted on non-stationary bases, their kinematics, dynamics and controls are highly coupled with those of their bases. This research aims at reformulating the kinematic and dynamic equations of free-base manipulators, in general, based on symplectic geometry, in order to obtain suitable laws for the concurrent base-manipulator motion control.


Aerospace Remote Experimentation

The research attempts to establish a transformative vision of remotely-accessible aerospace laboratories for both pedagogical and research purposes. The goal is to enable students and researchers to reliably operate remote devices (such as manipulators) in space and also conduct from Earth future experiments on the moon. Furthermore, a common problem with presenting experimental research results in various communities, such as robotics and aerospace, is the lack of a "unique" setup by which the research hypotheses have been examined. In robotics, for example, a new control algorithm, works marvelously on a 4-degree-of-freedom robot with short links and comes to the literature as a breakthrough. But, later on another researcher argues that the same algorithm causes poor performance on a different robot. Thus, researchers of a community around the world would welcome a "unique remote-access laboratory" with which all the new research works are examined, so that experimental data and outcomes have a unified and consistent meaning for the entire community. For example, a central aerospace robotics laboratory, would be an interesting asset for the researchers around the world to access it remotely and perform their experiments.


Robotic Hardware-in-the-loop Simulation

This research attempts to develop a practical framework for the concurrent engineering of reconfigurable robot manipulators through the development of a hardware-in-the-loop simulation platform. Reconfigurable robot manipulators have recently received a growing increasing attention from both research community and industry for their potential benefits of versatility in task orientation and adaptation to changing environments. Design of such systems is complicated, as the conventional “decoupled” or “loosely coupled” approaches cannot provide satisfactory solutions with the proliferation of advanced high speed automation systems. This research addresses a knowledge-based concurrent analysis and synthesis methodology for the detail-level engineering of reconfigurable robot manipulators, with the aid of a scalable, object-oriented hardware-in-the-loop simulation platform. Key features of the platform are: hierarchical and modular architecture, knowledge-base c apability, object-oriented modeling and design, reconfigurability and scalability, and distance communication between distributed designers and remote hardware/software modules.


Detail-level Concurrent Engineering of Mechatronic Systems

Systematic concurrent methodologies, such as Linguistic Mechatronics, are applied to realistic design problems to investigate their merits and also find better solutions for complex systems. The market-driven need for multidisciplinary design of mechatronic systems has recently been recognized by the research community and by funding organizations. However, much of the literature on mechatronics design focuses on specific applications, and the multidisciplinary design in them is mostly based on ad hoc strategies for incrementally changing the conventional sequential design into a subsystem-based methodology. Some of the applications include fast-running legged robots, autonomously reconfigurable robot manipulators, rehabilitation robotics, etc.


Object-oriented Mechatronics Modeling and Design

The research extends some of the current object-oriented modeling approaches to concurrent modeling and design of aerospace systems, through which various functional modules can be built and synthesized by integrating programmatic elements (mechanical, electronic, computer, etc.) from pre-assembled libraries of reusable components. Interpretation of aerospace systems, in the form of mathematical textual coding, requires fundamental multidisciplinary knowledge and expertise. Hence, team work is an essential feature of aerospace systems design. Nonetheless, different disciplines conceptualize and represent their knowledge differently. Consequently, it becomes difficult for the participating disciplines to communicate their points of view, let alone collaborate with each other as required in a concurrent design. Hence, a unified system description language is essential for the concurrent design, which interprets different components of the aerospace systems without addressing their underlying theory. Furthermore, a graphical design entry tool with guided and automatic synthesis features will present all functional modules as finite state machines, so that designers can combine them concurrently using a high-level state-flow language. The entire object-oriented interface provides the designers with a hierarchical abstraction from conceptualization through functional decomposition to detailed design.


Mechatronics Pedagogy

The research attempts to develop a hybrid framework for teaching mechatronics that synergistically utilizes the two rival learning theories, namely behaviourism and constructivism. Behaviourism conceives learning as dissemination of knowledge via abstract representation of reality, and thus prescribes teaching as transfer of the knowledge from expert to learner. On the other hand, constructivism sees knowledge as a subjective and dynamic product of knower’s experiential world constructed through the senses and social interactions, and thus defines the role of teacher not to dispense knowledge but to serve as a creative mediator and facilitator. The premise of this research is that teaching mechatronics requires both direct instruction and learner-controlled knowledge construction. Hence, both theories must be utilized in a unified framework. Such a framework can be built based on an instructional design theory, namely Elaboration Theory, which allows a gradual transition from content-based to activity-based learning process. One key outcome of the research is the development of an affordable, comprehensive, and transparent Personal Mechatronics Laboratory toolkit for students and researchers.


Entry requirements

Courses of at least 90 credits at first cycle including the following knowledge/courses. The courses D0009E Introduction to programming, E0013E Basic course in electrical engineering (alternative E0003E and E0007E) and R0002E Modelling and Control or equvivalent. This means that the student should be able to program in a high-level language, analyse simple electronic circuits and furthermore be familiar with basic control theory. Alternative: Alternative to completed courses can be corresponding knowledge acquired through work with the electronics sector.

More information about English language requirements

Selection

The selection is based on 20-285 credits

Course Aim

The student will after the course be able to design and program a mechatronic system including mechanics, electronic sensors, simple electronics, a control circuit (microcomputer) and electrical motors.

  • After the course the student should be able to construct and analyze a mechatronic system.
  • The student should be able to critical and creative deal with issues and technology solutions, plan and execute a skilled task, and work in teams with different compositions.
  • The student should be able to identify the need for further knowledge and to continuously upgrade their skills.
  • The student should be able to integrate knowledge, model, simulate, and anticipate a process. This is shown during the execution of the project that is a part of the examination in the course.
Contents
  • Transistors, transistor circuits with inductive loads.
  • Radiometry, the photodiode, amplifiers for photodiodes.
  • Digital circuitry, peripheral circuits and control circuits.
  • Introduction to the C programming language, program development tools.
  • Electric motors and drive circuits for motors.
  • Project Mobile Robot.
  • OrCAD (PSpice) are used for description and simulation of designed circuits both for the laboratory work and in the project.
Realization
The course consists of three parts: lectures, labs and projects. During the lectures important parts of the theory is dealt with. In the lab-exercises the students will perform assignments on basic concepts in the course and get training in using the software and equipment needed for the project. The course is largely based on PBL (problem based learning) because most of the time is devoted to work in groups of 4-6 students with an assignment to design and implement hardware and software for an autonomous mobile robot. Some parts of the robot are given and implemented at the start. At the end of the course there is held a competition between the groups


Entry requirements

Courses of at least 90 credits at first cycle including the following knowledge/courses. Basic knowledge in the subject of Automatic control. Concepts such as transfer function, Bode plot, poles and zeros, impulse response and step response, feedback and PID controllers should be known. Sound knowledge on the Laplace transform and experience with Matlab is also presumed. These prerequisites correspond to the course R0002E or R0003E. Alternative: Alternative to completed courses can be corresponding knowledge acquired through work within the processindustry or electronics sector.

More information about English language requirements

Selection

Selection C

Course Aim

The course aim is for students to acquire in-depth knowledge of feedback systems, their design and their use in control engineering applications.


The students should be able to:

  • demonstrate broad knowledge of control engineering methods and terminology.
  • demonstrate broad knowledge of mathematical methods to analyze dynamic systems
  • demonstrate the ability to model dynamic systems based on empirical data
  • use standard methods for designing and analyzing controllers.
  • demonstrate an ability to, in a group,simulate, analyze, evaluate and implement controllers for a real process and to report on this work, both orally and in writing
  • demonstrate the ability to identify  constraintsof simple controllers and the need for more advanced methods.
  • show insight into how the use of automaticcontrol can contribute to sustainable development through reduced consumption of resources.
Contents
Automatic Control is the Science of controlling processes. A typical example of is the cruise control in a car. In this case the car is the \"process\" and the cruise controller varies the throttle lever (\"input signal\") in order to maintain constant speed (\"output signal\") despite slopes and wind gusts (\"disturbance\"). Other common examples can be found in the process industry, where common tasks are to control pressure and temperature, and in communication where it is desirable to control data rates and transmitted power. Control theory is, however, not limited to technical systems but may also be applied in e.g. economy and medicine. Automatic control is generally used for maintaining quality while minimizing consumption of resources such as energy or raw material. This is our standard course in Automatic Control and covers the most common classical methods for analysis and design of feedback control systems for a broad spectrum of technical processes. The course provides detailed knowledge on the subject, sufficient for non-specialists, and gives a broad and necessary base for further studies in the subject. The course is started with a solid treatment of some basic control theoretic concepts, some known from previous courses. Examples are e.g. poles and zeros, stability, and Bode diagrams. Gradually, new concepts and tools will be introduced, such as the Nyquist criterion for stability analysis, state feedback, and control of sampled systems. To confirm the theoretical knowledge obtain during the course, lab work is performed, e.g. on a model of an overhead crane that is set up on the campus. The task here is to design a controller in order to move a cargo, suspended in a wire, from one point to another without oscillation.
Realization
The teaching consists of lectures, problem seminars, and laboratory work. The labs are constituted by simulation exercises and controlling a real-world process, the overhead crane model in the foyer of the A-building


The masters graduate degree program in
engineering must change to respond to the needs of the modern
practicing engineer. What is needed is a balance between
theory and practice, between academic rigor and the best
practices of industry, presented in an integrated way that feeds
the needs of modern practicing engineers and the companies
they work for. The new Master of Engineering in
Mechatronics program attempts to remedy these deficiencies.
The key element is the one-credit module which:
balances theory and practice where concepts are applicationdriven,
not theory-driven; identifies and understands
industrial best practices by dissecting them into engineering
and mathematical fundamental models; achieves innovation by
assembling these fundamental models into new products and
processes; analyzes both existing and new products and
processes using computer simulations within a topic area;
demonstrates hardware to show system realization and validity
of modeling and analysis results; shows videos of industry
systems and interviews with industry experts; discusses best
practices to achieve sustainability of products; and maintains
flexibility through 15 one-hour blocks of instruction – a 5-week
mini-course or longer if preferred


I. Current Situation
It is widely recognized that the future of the U.S. and indeed
our everyday lives are increasingly dependent on scientific
and technical innovation. However, the United States is in
an innovation crisis fueled by a crisis in engineering
education. The innovation shortfall of the past decade is
real and there have been far too few commercial innovations
that can transform lives and solve urgent human problems.
Society’s problems are getting harder, broader, and deeper
and are multidisciplinary in nature. They require a
multidisciplinary systems approach to solve them and
present-day engineering education is not adequately
preparing young engineers for the challenge. Basic
engineering skills have become commodities worldwide.
To be competitive, U.S. engineers must provide high value
by being immediate, innovative, integrative, conceptual, and
multidisciplinary. In addition, innovation is local – you
don’t import it and you don’t export it! You create it! It is
a way of thinking, communicating, and doing
Innovation, the process of inventing something new,
desirable, useful, and sustainable, happens at the
intersection of technology, business, human factors, and
complexity (Figure 1). In addition to addressing the
nation’s needs for economic growth and defense, engineers,
scientists, and mathematicians must identify and solve
societal problems that benefit people, their health and
quality of life, and the environment. The STEM (science,
technology, engineering, and mathematics) disciplines must
embrace a renewed human-centered focus and along with
that a face that attracts a diversity of students interested in
serving people at home and worldwide. STEM students, as
well as students from the humanities, arts, social sciences,
and business, must all realize they are partners in solving
the innovation crisis. They each play a vital role and must
be able to identify the needs of people, to critically think
and solve problems, to generate human-centered ideas and
rapidly prototype concepts, to integrate human values and
business into concepts, to manage complexity, to work in
multidisciplinary teams, and to effectively communicate
results. The quality of STEM education in innovation, both
in K-12 and at universities, has a direct impact on our
ability as a nation to compete in the increasingly
competitive global arena.
Engineering, science, and mathematics educators face
daunting challenges to prepare this next wave of STEM
professionals. In general, the current preparation of
students is inadequate for the challenge. Students focus on
facts, tests, and grades and fail to understand concepts and
processes. They are unable to integrate knowledge,
processes, techniques, and tools, both hardware and
software, to solve a multidisciplinary problem. Students
need first, and foremost, to become critical-thinking
problem solvers. Indeed, one of the great failures in STEM
education has been the inability of graduating students to
integrate all they have learned in the solution of a real-world
problem, as the cartoon suggests
The situation for industrial professional engineering is very
similar, as they are products of our failing engineering
educational system. This situation has been exacerbated by
the current economic crisis and is captured by the cartoon
A College of Engineering must place renewed emphasis on
genuine university - industry interaction to create a culture
of innovation both throughout the College of Engineering
and within industry partner companies. This interaction
must be one of mutual collaboration, as only through a
balance of theory and practice, i.e., academic rigor and best
industrial practices, can the challenging multidisciplinary
problems be solved
Multidisciplinary engineering system design deals with the
integrated and optimal design of a physical system,
including sensors, actuators, and electronic components, and
its embedded digital control system
Discovery Learning is at the core of a College of
Engineering and is best defined by the student commitments
or outcomes it brings about than the teaching methods used:
critical thinking, independent inquiry, responsibility for
one’s own learning, and intellectual growth and
development. There are a range of strategies used to
promote learning, e.g., interactive lecture, discussion,
problem-based learning, case studies, but no exclusive use
of traditional lecturing! Instructors assist students in
mastering and learning through the process of active
investigation. It is student-centered with a focus on student
development
The integration is respect to both hardware components and
information processing. An optimal choice must be made
with respect to the realization of the design specifications in
the different domains. Performance, reliability, low cost,
robustness, efficiency, and sustainability are absolutely
essential. It is truly a mechatronic system, as the name
“mechatronics” does not justmean electro-mechanical
There are two keys to innovation through mechatronic
system design. The first is Human-Centered Design (HCD).
HCD requires interdisciplinary collaboration, an iterative
process with frequent prototyping, and engagement with
real people. As the cost of complexity has decreased
dramatically, the quantity of complexity and information
has increased just as dramatically, while human evolution,
our ability to deal with inherent complexity in powerful
systems, has remained constant (Figure 7). HCD helps
bridge the gap
The second key is system-level, model-based design. Once
a system is in development, correcting a problem costs 10
times as much as fixing the same problem in concept. If the
system has been released, it costs 100 times as much.
System-level, model-based design addresses this head on.
The best multidisciplinary systemdesign companies excel at
communicating design changes across disciplines,
partitioning multiple technologies present and allocating
design requirements to specific systems, subsystems, and
components, and validating system behavior with modeling
and simulation (virtual prototyping) of integrated
mechanical, electrical, and software components
Undergraduate engineering education today is ineffective in
preparing students for multidisciplinary system integration
and optimization – exactly what is needed by companies to
become innovative and gain a competitive advantage in this
global economy. While there is some movement in
engineering education to changethat, this change is not
easy, as it involves a cultural change from the silo-approach
to a holistic approach. In addition, problems today in
energy, environment, health care, and water resources, for
example, cannot be solved bytechnology alone. Only a
comprehensive problem-solving approach addressing the
issues of feasibility, viability, desirability, usability, and
sustainability will lead to a complete, effective solution. As
the Figure 8 shows, the modern professional engineer must
have depth in an engineering discipline with
multidisciplinary engineering breadth and a balance
between theory and practice.
A modern multidisciplinary system engineering design team
– a mechatronic system design team – most often takes the
form shown in Figure 9, with all participants knowledgeable
in controls, as it is such a pervasive, enabling technology.
Engineering programs need more than four years to be truly
effective. Practicing engineers usually pursue a graduate
degree to fill the gaps in their undergraduate education and
gain further knowledge and insight. Typically the graduate
degree is more of the same with less relevance, practicality,
integrative insight, and hands-on experience, and more in
depth theory that often is way beyond what most practicing
engineers will ever use. They are siloed degrees in siloed
institutions that often become very specialized. Most
industries need problem solvers across disciplines rather
than experts who know one thing really well. These
graduate programs involve a selection of 10-12 three-credit
courses from several departments, usually chosen by the
student for scheduling convenience. Integration of concepts
is left up to the student, as graduate courses are rarely taught
in an integrated way. Each is its own stand-alone entity.
Aggravating the problem is the fact that practicing
engineers cannot take a one-to-two-year leave of absence
from a company to get a graduate degree. While practicing
engineers can take courses bydistance education, a threecredit course offered in a semester format can often be
overwhelming from a time-commitment point of view and
further complicates the integration of concepts. Students
learn better in small chunks and not always at the same rate.
In addition, the current distance education model is flawed
as it tries to capture a lecture, with a camera in the back of a
room, and not a learning environment.
The masters degree must change to respond to the needs of
the modern practicing engineer. What is needed is a
balance between theory and practice, between academic
rigor and the best practices of industry, presented in an
integrated way that feeds the needs of modern practicing
engineers and the companies they work for. The new
Master of Engineering in Mechatronics program attempts to
remedy these deficiencies. Figure 10 represents a new
approach to graduate engineering education. The key
element is the one-credit module which:
•  Balances theory and practice where concepts are
application-driven, not theory-driven. Important
industry applications are studied with the goal to relate
physical operation to engineering fundamentals through
modeling and analysis.
•  Identifies and understands industrial best practices by
dissecting them into engineering and mathematical
fundamental models.
•  Achieves innovation by assembling these fundamental
models into new products and processes.
•  Analyzes both existing and new products and processes
using computer simulations within a topic area.
•  Demonstrates hardware to show system realization and
validity of modeling and analysis results.
•  Shows videos of industry systems and interviews with
industry experts.
•  Discusses best practices to achieve sustainability of
products.
•  Maintains flexibility through 15 one-hour blocks of
instruction – a 5-week mini-course or longer if
preferred.
All instruction is done via video with instruction interlaced
with industrial interviews, laboratory experiments, and
editorial sidebars – not just a camera at the back of a room.
The modules can be used by both non-degree and degreeseeking students, and also for industry short courses.
These modules all then feed into four three-credit, casestudy courses, taking the student from the user and problem,
to concept, to implementation, while emphasizing
integration, trade-offs, and optimization at every step. An
on-site culminating experience concludes the program
allowing the student to put it all together in a six-credit
integrated experience.
The Figure 11 shows the integration of these modules in a
multidisciplinary engineering system design. Different
modules can be added, while others deleted, depending on
the application area.
This program doesn’t yet exist, but there is widespread
industry and university support for its development. The
content for these modules and courses resides in textbooks,
industry application papers, and the minds of engineers and
professors, so the development challenge is great, but the
need is urgent! Modules and courses are presently being
developed. Examples of the type of presentation for the
Modeling Module can be found at
http://mechatronics.eng.mu.edu/~publicshare/Movies.


A view of a ship's engine room

Marine propulsion is the mechanism or system used to generate thrust to move a ship or boat across water. While paddles and sails are still used on some smaller boats, most modern ships are propelled by mechanical systems consisting of an electric motor or engine turning a propeller, or less frequently, in pump-jets, an impeller. Marine engineering is the discipline concerned with the engineering design process of marine propulsion systems.

Marine steam engines were the first mechanical engines used in marine propulsion, however they have mostly been replaced by two-stroke or four-stroke diesel engines, outboard motors, and gas turbine engines on faster ships. Nuclear reactors producing steam are used to propel warships and icebreakers. Nuclear reactors to power commercial vessels has not been adopted by the marine industry. Electric motors using electric battery storage have been used for propulsion on submarines and electric boats and have been proposed for energy-efficient propulsion.[1] Development in liquefied natural gas (LNG) fueled engines are gaining recognition for their low emissions and cost advantages. Stirling engines, which are more efficient, quieter, smoother running producing less harmful emissions than diesel engines, propel a number of small submarines. The Stirling engine has yet to be upscaled for larger surface ships.


Power sources

Pre-mechanisation

A wind propelled fishing boat in Mozambique

Until the application of the coal-fired steam engine to ships in the early 19th century, oars or the wind were used to assist watercraft propulsion. Merchant ships predominantly used sail, but during periods when naval warfare depended on ships closing to ram or to fight hand-to-hand, galley were preferred for their manoeuvrability and speed. The Greek navies that fought in the Peloponnesian War used triremes, as did the Romans at the Battle of Actium. The development of naval gunnery from the 16th century onward meant that manoeuvrability took second place to broadside weight; this led to the dominance of the sail-powered warship over the following three centuries.

In modern times, human propulsion is found mainly on small boats or as auxiliary propulsion on sailboats. Human propulsion includes the push pole, rowing, and pedals.

Propulsion by sail generally consists of a sail hoisted on an erect mast, supported by stays, and controlled by lines made of rope. Sails were the dominant form of commercial propulsion until the late nineteenth century, and continued to be used well into the twentieth century on routes where wind was assured and coal was not available, such as in the South American nitrate trade. Sails are now generally used for recreation and racing, although innovative applications of kites/royals, turbosails, rotorsails, wingsails, windmills and SkySails's own kite buoy-system have been used on larger modern vessels for fuel savings.

Reciprocating steam engines

SS Ukkopekka uses a triple expansion steam engine
Main article: Marine steam engine

The development of piston-engined steamships was a complex process. Early steamships were fueled by wood, later ones by coal or fuel oil. Early ships used stern or side paddle wheels, while later ones used screw propellers.

The first commercial success accrued to Robert Fulton's North River Steamboat (often called Clermont) in US in 1807, followed in Europe by the 45-foot Comet of 1812. Steam propulsion progressed considerably over the rest of the 19th century. Notable developments include the steam surface condenser, which eliminated the use of sea water in the ship's boilers. This, along with improvements in boiler technology, permitted higher steam pressures, and thus the use of higher efficiency multiple expansion (compound) engines. As the means of transmitting the engine's power, paddle wheels gave way to more efficient screw propellers.

Steam turbines

Steam turbines were fueled by coal or, later, fuel oil or nuclear power. The marine steam turbine developed by Sir Charles Algernon Parsons raised the power-to-weight ratio. He achieved publicity by demonstrating it unofficially in the 100-foot Turbinia at the Spithead Naval Review in 1897. This facilitated a generation of high-speed liners in the first half of the 20th century, and rendered the reciprocating steam engine obsolete; first in warships, and later in merchant vessels.

In the early 20th century, heavy fuel oil came into more general use and began to replace coal as the fuel of choice in steamships. Its great advantages were convenience, reduced manpower by removal of the need for trimmers and stokers, and reduced space needed for fuel bunkers.

In the second half of the 20th century, rising fuel costs almost led to the demise of the steam turbine. Most new ships since around 1960 have been built with diesel engines. The last major passenger ship built with steam turbines was the Fairsky, launched in 1984. Similarly, many steam ships were re-engined to improve fuel efficiency. One high profile example was the 1968 built Queen Elizabeth 2 which had her steam turbines replaced with a diesel-electric propulsion plant in 1986.

Most new-build ships with steam turbines are specialist vessels such as nuclear-powered vessels, and certain merchant vessels (notably Liquefied Natural Gas (LNG) and coal carriers) where the cargo can be used as bunker fuel.

LNG carriers

New LNG carriers (a high growth area of shipping) continue to be built with steam turbines. The natural gas is stored in a liquid state in cryogenic vessels aboard these ships, and a small amount of 'boil off' gas is needed to maintain the pressure and temperature inside the vessels within operating limits. The 'boil off' gas provides the fuel for the ship's boilers, which provide steam for the turbines, the simplest way to deal with the gas. Technology to operate internal combustion engines (modified marine two-stroke diesel engines) on this gas has improved, however, such engines are starting to appear in LNG carriers; with their greater thermal efficiency, less gas is burnt. Developments have also been made in the process of re-liquifying 'boil off' gas, letting it be returned to the cryogenic tanks. The financial returns on LNG are potentially greater than the cost of the marine-grade fuel oil burnt in conventional diesel engines, so the re-liquefaction process is starting to be used on diesel engine propelled LNG carriers. Another factor driving the change from turbines to diesel engines for LNG carriers is the shortage of steam turbine qualified seagoing engineers. With the lack of turbine powered ships in other shipping sectors, and the rapid rise in size of the worldwide LNG fleet, not enough have been trained to meet the demand. It may be that the days are numbered for marine steam turbine propulsion systems, even though all but sixteen of the orders for new LNG carriers at the end of 2004 were for steam turbine propelled ships.[2]

The NS Savannah was the first nuclear-powered cargo-passenger ship

Nuclear-powered steam turbines

Main article: Marine nuclear propulsion

In these vessels, the nuclear reactor heats water to create steam to drive the turbines. Due to low prices of diesel oil, nuclear propulsion is rare except in some Navy and specialist vessels such as icebreakers. In large aircraft carriers, the space formerly used for ship's bunkerage could be used instead to bunker aviation fuel. In submarines, the ability to run submerged at high speed and in relative quiet for long periods holds obvious advantages. A few cruisers have also employed nuclear power; as of 2006, the only ones remaining in service are the Russian Kirov class. An example of a non-military ship with nuclear marine propulsion is the Arktika class icebreaker with 75,000 shaft horsepower (55,930 kW). Commercial experiments such as the NS Savannah have so far proved uneconomical compared with conventional propulsion.

In recent times, there is some renewed interest in commercial nuclear shipping. Nuclear-powered cargo ships could lower costs associated with carbon dioxide emissions and travel at higher cruise speeds than conventional diesel powered vessels.[3]

Reciprocating diesel engines

A modern diesel engine aboard a cargo ship

Most modern ships use a reciprocating diesel engine as their prime mover, due to their operating simplicity, robustness and fuel economy compared to most other prime mover mechanisms. The rotating crankshaft can be directly coupled to the propeller with slow speed engines, via a reduction gearbox for medium and high speed engines, or via an alternator and electric motor in diesel-electric vessels. The rotation of the crankshaft is connected to the camshaft or a hydraulic pump on an intelligent diesel.

The reciprocating marine diesel engine first came into use in 1903 when the diesel electric rivertanker Vandal was put into service by Branobel. Diesel engines soon offered greater efficiency than the steam turbine, but for many years had an inferior power-to-space ratio. The advent of turbocharging however hastened their adoption, by permitting greater power densities.

Diesel engines today are broadly classified according to

  • Their operating cycle: two-stroke engine or four-stroke engine
  • Their construction: crosshead, trunk, or opposed piston
  • Their speed
    • Slow speed: any engine with a maximum operating speed up to 300 revolutions per minute (rpm), although most large two-stroke slow speed diesel engines operate below 120 rpm. Some very long stroke engines have a maximum speed of around 80 rpm. The largest, most powerful engines in the world are slow speed, two stroke, crosshead diesels.
    • Medium speed: any engine with a maximum operating speed in the range 300-900 rpm. Many modern four-stroke medium speed diesel engines have a maximum operating speed of around 500 rpm.
    • High speed: any engine with a maximum operating speed above 900 rpm.
4-Stroke Marine Diesel Engine System

Most modern larger merchant ships use either slow speed, two stroke, crosshead engines, or medium speed, four stroke, trunk engines. Some smaller vessels may use high speed diesel engines.

The size of the different types of engines is an important factor in selecting what will be installed in a new ship. Slow speed two-stroke engines are much taller, but the footprint required is smaller than that needed for equivalently rated four-stroke medium speed diesel engines. As space above the waterline is at a premium in passenger ships and ferries (especially ones with a car deck), these ships tend to use multiple medium speed engines resulting in a longer, lower engine room than that needed for two-stroke diesel engines. Multiple engine installations also give redundancy in the event of mechanical failure of one or more engines, and the potential for greater efficiency over a wider range of operating conditions.

As modern ships' propellers are at their most efficient at the operating speed of most slow speed diesel engines, ships with these engines do not generally need gearboxes. Usually such propulsion systems consist of either one or two propeller shafts each with its own direct drive engine. Ships propelled by medium or high speed diesel engines may have one or two (sometimes more) propellers, commonly with one or more engines driving each propeller shaft through a gearbox. Where more than one engine is geared to a single shaft, each engine will most likely drive through a clutch, allowing engines not being used to be disconnected from the gearbox while others keep running. This arrangement lets maintenance be carried out while under way, even far from port.

See also: Diesel engine

LNG Engines

Shipping companies are required to comply with the International Maritime Organization (IMO) and the International Convention for the Prevention of Pollution from Ships (MARPOL) emissions rules. Dual fuel engines are fueled by either marine grade diesel, heavy fuel oil, or liquefied natural gas (LNG). A Marine LNG Engine has multiple fuel options, allowing vessels to transit without relying on one type of fuel. Studies show that LNG is the most efficient of fuels, although limited access to LNG fueling stations limits the production of such engines. Vessels providing services in the LNG industry have been retrofitted with dual-fuel engines, and have been proved to be extremely effective. Benefits of dual-fuel engines include fuel and operational flexibility, high efficiency, low emissions, and operational cost advantages. Liquefied natural gas engines offer the marine transportation industry with an environmentally friendly alternative to provide power to vessels. In 2010, STX Finland and Viking Line signed an agreement to begin construction on what would be the largest environmentally friendly cruise ferry. Construction of NB 1376 will be completed in 2013. According to Viking Line, vessel NB 1376 will primarily be fueled by liquefied natural gas. Vessel NB 1376 nitrogen oxide emissions will be almost zero, and sulphur oxide emissions will be at least 80% below the International Maritime Organization’s (IMO) standards. Company profits from tax cuts and operational cost advantages has led to the gradual growth of LNG fuel use in engines. [4]

Gas turbines



Many warships built since the 1960s have used gas turbines for propulsion, as have a few passenger ships, like the jetfoil. Gas turbines are commonly used in combination with other types of engine. Most recently, the Queen Mary 2 has had gas turbines installed in addition to diesel engines. Because of their poor thermal efficiency at low power (cruising) output, it is common for ships using them to have diesel engines for cruising, with gas turbines reserved for when higher speeds are needed however, in the case of passenger ships the main reason for installing gas turbines has been to allow a reduction of emissions in sensitive environmental areas or while in port.[5] Some warships, and a few modern cruise ships have also used steam turbines to improve the efficiency of their gas turbines in a combined cycle, where waste heat from a gas turbine exhaust is utilized to boil water and create steam for driving a steam turbine. In such combined cycles, thermal efficiency can be the same or slightly greater than that of diesel engines alone; however, the grade of fuel needed for these gas turbines is far more costly than that needed for the diesel engines, so the running costs are still higher.

Stirling engines

Since the late 1980s, Swedish shipbuilder Kockums has built a number of successful Stirling engine powered submarines.[6][7] The submarines store compressed oxygen to allow more efficient and cleaner external fuel combustion when submerged, providing heat for the Stirling engine's operation. The engines are currently used on submarines of the Gotland and Södermanland classes. and the Japanese Sōryū-class submarine.[8] These are the first submarines to feature Stirling air-independent propulsion (AIP), which extends the underwater endurance from a few days to several weeks.[7]

The heat sink of a Stirling engine is typically the ambient air temperature. In the case of medium to high power Stirling engines, a radiator is generally required to transfer the heat from the engine to the ambient air. Stirling marine engines have the advantage of using the ambient temperature water. Placing the cooling radiator section in seawater rather than ambient air allows for the radiator to be smaller. The engine's cooling water may be used directly or indirectly for heating and cooling purposes of the ship. The Stirling engine has potential for surface-ship propulsion, as the engine's larger physical size is less of a concern.

Screws

Main article: Propeller

Marine propellers are also known as "screws". There are many variations of marine screw systems, including twin, contra-rotating, controllable-pitch, and nozzle-style screws. While smaller vessels tend to have a single screw, even very large ships such as tankers, container ships and bulk carriers may have single screws for reasons of fuel efficiency. Other vessels may have twin, triple or quadruple screws. Power is transmitted from the engine to the screw by way of a propeller shaft, which may or may not be connected to a gearbox.

Paddle wheels

Left: original paddle wheel from a paddle steamer.
Right: detail of a paddle steamer.
See also: Paddle steamer and Pedalo

The paddle wheel is a large wheel, generally built of a steel framework, upon the outer edge of which are fitted numerous paddle blades (called floats or buckets). The bottom quarter or so of the wheel travels underwater. Rotation of the paddle wheel produces thrust, forward or backward as required. More advanced paddle wheel designs have featured feathering methods that keep each paddle blade oriented closer to vertical while it is in the water; this increases efficiency. The upper part of a paddle wheel is normally enclosed in a paddlebox to minimise splashing.

Paddle wheels have been superseded by screws, which are a much more efficient form of propulsion. Nevertheless, paddle wheels have two advantages over screws, making them suitable for vessels in shallow rivers and constrained waters: first, they are less likely to be clogged by obstacles and debris; and secondly, when contra-rotating, they allow the vessel to spin around its own vertical axis. Some vessels had a single screw in addition to two paddle wheels, to gain the advantages of both types of propulsion.

Sailing

Main article: Forces on sails

The purpose of sails is to use wind energy to propel the vessel, sled, board, vehicle or rotor.

Water caterpillar

The water caterpillar boat propulsion system (Popular Science Monthly, December 1918)

An early uncommon means of boat propulsion was the water caterpillar. This moved a series of paddles on chains along the bottom of the boat to propel it over the water and preceded the development of tracked vehicles.[9] The first water caterpillar was developed by Desblancs in 1782 and propelled by a steam engine. In the United States the first water caterpillar was patented in 1839 by William Leavenworth of New York.[citation needed]



همه پیوندها