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

در سیمولینک، بلوک‌های MinMax Running Resettable و Trigonometric Function برای پاسخ به این نیازها در کتابخانه Math Operations قرار گرفته‌اند.

بلوک MinMax Running Resettable

بلوک MinMax Running Resettable برای دنبال‌کردن کمینه یا بیشینه یک سیگنال در طول زمان استفاده می‌شود.

برخلاف MinMax معمولی که کمینه یا بیشینه ورودی‌های فعلی را محاسبه می‌کند، این بلوک مقدارهای قبلی سیگنال را نیز در نظر می‌گیرد و یک مقدار Running Minimum یا Running Maximum ایجاد می‌کند.

به همین دلیل این بلوک برای مدل‌هایی مناسب است که در آن‌ها وضعیت گذشته سیگنال اهمیت دارد.

تفاوت MinMax و MinMax Running Resettable

بلوک MinMax می‌تواند کمترین یا بیشترین مقدار ورودی‌های خود را پیدا کند، اما MinMax Running Resettable رفتار زمانی دارد.

در MinMax Running Resettable، خروجی بر اساس تمام مقادیر دریافت‌شده تا لحظه فعلی تعیین می‌شود.

برای مثال، در یک شبیه‌سازی طولانی می‌توان از آن برای ثبت کمترین فشار، بیشترین دما، بیشترین سرعت یا کمترین مقدار یک متغیر در طول اجرای سیستم استفاده کرد.

بلوک MinMax معمولی نیز امکان انتخاب عملکرد min یا max و اعمال آن روی ابعاد مختلف سیگنال را دارد.

مفهوم Running Minimum

در حالت Minimum، بلوک دائماً کوچک‌ترین مقدار مشاهده‌شده از سیگنال را دنبال می‌کند.

اگر مقدار جدیدی کمتر از مقدار ذخیره‌شده باشد، خروجی تغییر می‌کند؛ در غیر این صورت مقدار قبلی حفظ می‌شود.

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

مفهوم Running Maximum

در حالت Maximum، منطق برعکس است.

بلوک بزرگ‌ترین مقدار مشاهده‌شده را دنبال می‌کند و فقط زمانی خروجی را تغییر می‌دهد که ورودی جدید از بیشینه قبلی بزرگ‌تر باشد.

این قابلیت برای ثبت Peak یا بیشینه یک متغیر در طول شبیه‌سازی بسیار مفید است.

قابلیت Reset

یکی از ویژگی‌های مهم MinMax Running Resettable، امکان بازنشانی وضعیت داخلی است.

این بلوک می‌تواند یک سیگنال خارجی Reset دریافت کند. هنگامی که سیگنال Reset در وضعیت فعال قرار گیرد، مقدار ذخیره‌شده پاک شده و خروجی بر اساس Initial Condition دوباره مقداردهی می‌شود.

این ویژگی باعث می‌شود بتوان محاسبه کمینه یا بیشینه را در چند بازه مستقل انجام داد.

کاربرد Reset در سیستم‌های دوره‌ای

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

در چنین شرایطی می‌توان در پایان یا آغاز هر سیکل، سیگنال Reset را فعال کرد.

در نتیجه مقدار Running Minimum یا Running Maximum مربوط به سیکل قبلی کنار گذاشته می‌شود و محاسبه برای سیکل جدید آغاز خواهد شد.

Initial Condition

پارامتر Initial Condition مشخص می‌کند که پس از Reset، خروجی از چه مقداری شروع شود.

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

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

سیگنال‌های اسکالر، برداری و ماتریسی

MinMax Running Resettable فقط برای سیگنال‌های اسکالر محدود نیست.

این بلوک می‌تواند سیگنال‌های Scalar، Vector و Matrix را پردازش کند و خروجی دارای همان ابعاد ورودی باشد. هر عنصر خروجی، کمینه یا بیشینه متناظر با همان عنصر ورودی را در طول زمان دنبال می‌کند.

این قابلیت برای مدل‌های چندکاناله و سیستم‌های دارای چند متغیر هم‌زمان بسیار کاربردی است.

کاربرد در پایش پارامترهای مهندسی

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

برای مثال می‌توان بیشینه دمای یک تجهیز، کمینه فشار یک فرآیند، بیشترین شتاب یک سیستم مکانیکی یا بیشترین دامنه یک سیگنال را در طول یک بازه زمانی دنبال کرد.

ترکیب این بلوک با Scope و سایر ابزارهای مانیتورینگ می‌تواند امکان تحلیل بهتر رفتار سیستم را فراهم کند.

کاربرد در سیستم‌های کنترل

در کنترل سیستم‌ها، دانستن حداقل و حداکثر مقدار مشاهده‌شده یک متغیر می‌تواند برای ارزیابی عملکرد کنترل‌کننده مفید باشد.

به‌عنوان مثال، می‌توان بیشینه خطا در یک بازه زمانی را دنبال کرد و پس از پایان بازه، مقدار ثبت‌شده را برای تحلیل عملکرد سیستم مورد استفاده قرار داد.

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

توابع مثلثاتی در سیمولینک

گروه مهم دیگری از عملیات ریاضی در سیمولینک مربوط به Trigonometric Function است.

بلوک Trigonometric Function امکان محاسبه مجموعه‌ای از توابع مثلثاتی و برخی توابع هایپربولیک را فراهم می‌کند.

این بلوک در کتابخانه Simulink / Math Operations قرار دارد و برای مدل‌سازی روابط زاویه‌ای و غیرخطی کاربرد زیادی دارد.

تابع Sine

تابع Sine برای محاسبه سینوس یک سیگنال ورودی استفاده می‌شود.

سینوس در مدل‌سازی حرکت‌های تناوبی، ارتعاشات، سیستم‌های الکتریکی، مکانیک، پردازش سیگنال و بسیاری از مدل‌های فیزیکی استفاده می‌شود.

در سیمولینک می‌توان Sine را از طریق Trigonometric Function انتخاب کرد.

تابع Cosine

Cosine نیز یکی از توابع اصلی Trigonometric Function است.

این تابع در محاسبات مربوط به موقعیت زاویه‌ای، تبدیل مختصات، سیستم‌های مکانیکی و مدل‌سازی سیگنال‌های تناوبی کاربرد دارد.

ترکیب Sine و Cosine یکی از ساختارهای متداول در مدل‌های دینامیکی و کنترلی است.

تابع Tangent

تابع Tangent برای مدل‌سازی روابط زاویه‌ای دیگری مورد استفاده قرار می‌گیرد.

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

این مسئله در شبیه‌سازی‌های عددی و طراحی سیستم‌های کنترل اهمیت ویژه‌ای دارد.

توابع مثلثاتی معکوس

Trigonometric Function علاوه بر توابع اصلی، توابع معکوس مانند asin، acos و atan را نیز پشتیبانی می‌کند. همچنین تابع atan2 برای تعیین زاویه با درنظرگرفتن دو مؤلفه ورودی استفاده می‌شود.

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

تابع atan2

atan2 نسبت به atan کاربرد گسترده‌تری در محاسبات دوبعدی دارد، زیرا ورودی آن از دو مؤلفه تشکیل می‌شود.

یکی از ورودی‌ها نقش مؤلفه محور y و دیگری نقش مؤلفه محور x را دارد.

به همین دلیل می‌توان از atan2 برای تعیین زاویه در چهار ناحیه صفحه استفاده کرد.

این قابلیت در رباتیک، مکانیک، سیستم‌های ناوبری و تبدیل مختصات اهمیت زیادی دارد.

توابع هایپربولیک

بلوک Trigonometric Function علاوه بر توابع مثلثاتی معمول، توابعی مانند sinh، cosh و tanh و نسخه‌های معکوس آن‌ها را نیز پشتیبانی می‌کند.

این توابع در مدل‌های ریاضی و سیستم‌های غیرخطی کاربرد دارند و می‌توانند برای ایجاد روابط پیچیده‌تر در مدل مورد استفاده قرار گیرند.

واحد زاویه

یکی از نکات مهم هنگام کار با توابع مثلثاتی، توجه به واحد زاویه است.

در سیمولینک، نحوه تفسیر زاویه به تنظیمات بلوک و روش محاسبه وابسته است. در حالت‌های مرتبط با Lookup می‌توان واحد زاویه را به صورت radian یا revolution تنظیم کرد.

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

توابع مثلثاتی و سیگنال‌های برداری

Trigonometric Function می‌تواند ورودی‌های اسکالر، برداری و ماتریسی را پردازش کند.

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

این ویژگی در پردازش چندکاناله و مدل‌های دارای چند متغیر زاویه‌ای مفید است.

روش‌های Approximation

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

از جمله این روش‌ها می‌توان به None، CORDIC و Lookup اشاره کرد. روش CORDIC برای محاسبات سریع و تقریبی و همچنین برخی داده‌های Fixed-Point کاربرد دارد، در حالی که Lookup می‌تواند محاسبه را بر اساس جدول تقریب انجام دهد.

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

CORDIC و سیستم‌های Embedded

الگوریتم CORDIC یکی از روش‌های مهم برای محاسبه توابع ریاضی در سخت‌افزار است.

این روش بر عملیات تکراری مبتنی بر شیفت و جمع تکیه دارد و می‌تواند برای پیاده‌سازی برخی توابع مثلثاتی در سیستم‌های سخت‌افزاری مناسب باشد.

افزایش تعداد Iteration می‌تواند دقت را بیشتر کند، اما هزینه محاسبات و تأخیر را نیز افزایش می‌دهد.

Lookup برای توابع مثلثاتی

روش Lookup می‌تواند مقدار تابع را بر اساس نقاط ذخیره‌شده در جدول تقریب محاسبه کند.

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

تعداد نقاط جدول و روش درون‌یابی از عواملی هستند که بر دقت و هزینه محاسبات اثر می‌گذارند.

Fixed-Point و توابع مثلثاتی

در کاربردهای Embedded، استفاده از داده‌های Fixed-Point اهمیت زیادی دارد.

برای Trigonometric Function، ورودی Fixed-Point در شرایط مشخصی پشتیبانی می‌شود و برای برخی توابع باید از روش‌های CORDIC یا Lookup استفاده شود.

بنابراین انتخاب نوع داده و روش Approximation باید هماهنگ با نیازهای سخت‌افزار انجام شود.

ترکیب MinMax Running Resettable و توابع مثلثاتی

این دو گروه از بلوک‌ها می‌توانند در یک مدل واحد نیز با یکدیگر ترکیب شوند.

برای مثال، یک سیگنال زاویه‌ای می‌تواند ابتدا وارد یک تابع مثلثاتی شود و سپس خروجی حاصل در طول زمان از نظر کمینه یا بیشینه پایش شود.

چنین ساختاری در تحلیل پاسخ سیستم‌های دینامیکی، ارتعاشی و تناوبی بسیار کاربردی است.

کاربرد در تحلیل سیگنال‌های تناوبی

سیگنال‌های سینوسی معمولاً در سیستم‌های مهندسی با دامنه و فرکانس مشخص مشاهده می‌شوند.

با استفاده از Trigonometric Function می‌توان رفتارهای زاویه‌ای و تناوبی را مدل کرد و با استفاده از MinMax Running Resettable می‌توان حدود کمینه و بیشینه خروجی را در طول شبیه‌سازی دنبال کرد.

این ترکیب برای تحلیل Peak، حداقل مقدار و رفتار گذرای سیگنال مفید است.

تولید کد و کاربردهای سخت‌افزاری

بلوک Trigonometric Function از قابلیت‌های تولید کد C و C++ پشتیبانی می‌کند و در شرایط مناسب می‌توان از آن برای تولید کد HDL نیز استفاده کرد.

این قابلیت باعث می‌شود مدل ایجادشده بتواند فراتر از شبیه‌سازی نرم‌افزاری، در فرآیند طراحی سیستم‌های Embedded و سخت‌افزاری نیز مورد استفاده قرار گیرد.

جمع‌بندی

بلوک MinMax Running Resettable برای دنبال‌کردن کمینه یا بیشینه سیگنال در طول زمان طراحی شده و قابلیت Reset آن امکان شروع مجدد محاسبه را در نقاط مشخص فراهم می‌کند. این ویژگی در پایش عملکرد، تحلیل Peak، سیستم‌های کنترل و بررسی رفتار دوره‌ای سیستم‌ها بسیار کاربردی است.

در کنار آن، Trigonometric Function مجموعه گسترده‌ای از توابع سینوسی، کسینوسی، تانژانت، توابع معکوس و هایپربولیک را در اختیار مدل قرار می‌دهد. پشتیبانی از روش‌هایی مانند CORDIC و Lookup نیز امکان ایجاد تعادل میان دقت، سرعت و هزینه محاسباتی را فراهم می‌کند.

تسلط بر این دو گروه از بلوک‌ها، زمینه مناسبی برای مدل‌سازی سیستم‌های دینامیکی، کنترل، پردازش سیگنال، سیستم‌های مکانیکی و کاربردهای Embedded در سیمولینک ایجاد می‌کند.

کلیدواژه ها : MinMax Running Resettable-مینیمم ماکزیمم بازنشانی‌پذیر-Running Minimum-مینیمم در حال اجرا-Running Maximum-ماکزیمم در حال اجرا-Resettable MinMax-مینیمم ماکزیمم قابل بازنشانی-Minimum Tracking-ردیابی کمینه-Maximum Tracking-ردیابی بیشینه-Initial Condition-شرایط اولیه-Reset Signal-سیگنال بازنشانی-MinMax Block-بلوک مینیمم ماکزیمم-Minimum Value-مقدار کمینه-Maximum Value-مقدار بیشینه-Peak Detection-تشخیص قله-Signal Monitoring-پایش سیگنال-Time-Based Analysis-تحلیل زمانی-Trigonometric Function-تابع مثلثاتی-Trigonometric Functions-توابع مثلثاتی-Sine-سینوس-Cosine-کسینوس-Tangent-تانژانت-Arcsine-آرک سینوس-Arccosine-آرک کسینوس-Arctangent-آرک تانژانت-atan2-تابع atan2-Hyperbolic Functions-توابع هایپربولیک-Sinh-سینوس هایپربولیک-Cosh-کسینوس هایپربولیک-Tanh-تانژانت هایپربولیک-Angle Calculation-محاسبه زاویه-Angle Unit-واحد زاویه-Radian-رادیان-Revolution-دور کامل-Coordinate Transformation-تبدیل مختصات-Periodic Signal-سیگنال تناوبی-Oscillatory System-سیستم نوسانی-Control System-سیستم کنترل-Signal Processing-پردازش سیگنال-Nonlinear Modeling-مدل‌سازی غیرخطی-CORDIC-الگوریتم CORDIC-Lookup Approximation-تقریب جدولی-Fixed-Point-ممیز ثابت-Floating-Point-ممیز شناور-Embedded Systems-سیستم‌های نهفته-Code Generation-تولید کد-Real-Time Simulation-شبیه‌سازی بلادرنگ-HDL Code Generation-تولید کد HDL-Math Operations-عملیات ریاضی-Simulink Math Operations-عملیات ریاضی سیمولینک-Simulink Modeling-مدل‌سازی سیمولینک-Engineering Simulation-شبیه‌سازی مهندسی-Advanced Mathematical Computation-محاسبات پیشرفته ریاضی-Engineering Mathematics-ریاضیات مهندسی-Computational Modeling-مدل‌سازی محاسباتی