در مدلهای پیشرفته سیمولینک، برخی محاسبات فقط به مقدار عددی یک سیگنال وابسته نیستند و زمان نمونهبرداری یا Sample Time نیز میتواند در نتیجه محاسبات نقش داشته باشد. این موضوع در سیستمهای گسسته، چندنرخی، کنترل دیجیتال و مدلهای بلادرنگ اهمیت ویژهای دارد.
در کنار این مفهوم، Bias نیز یکی از بلوکهای پایه کتابخانه Math Operations است که برای ایجاد یک جابهجایی ثابت در مقدار سیگنال استفاده میشود. سیمولینک هر دو مفهوم را در قالب بلوکهای اختصاصی در اختیار کاربر قرار میدهد.
مفهوم Bias در سیمولینک
بایاس یا Offset به معنای اعمال یک مقدار ثابت به سیگنال ورودی است. این قابلیت زمانی کاربرد دارد که مقدار یک سیگنال باید نسبت به یک مرجع مشخص جابهجا شود.
برای مثال، در سیستمهای اندازهگیری ممکن است خروجی یک حسگر دارای Offset باشد و لازم باشد این مقدار قبل از ادامه پردازش اصلاح شود. همچنین در مدلهای کنترلی میتوان از Bias برای ایجاد مقدار مرجع یا جابهجایی عمدی یک سیگنال استفاده کرد.
بنابراین Bias را میتوان یکی از ابزارهای ساده اما کاربردی برای اصلاح و تنظیم سیگنال در مدلهای ریاضی سیمولینک دانست.
کاربرد بایاس در مدلسازی مهندسی
اعمال Bias در حوزههای مختلفی مانند کنترل، ابزار دقیق، پردازش سیگنال و مدلسازی سیستمهای فیزیکی کاربرد دارد.
در یک مدل اندازهگیری، Bias میتواند برای اصلاح خطای ثابت حسگر استفاده شود. در یک مدل کنترلی نیز میتوان از آن برای جابهجایی نقطه کار یا ایجاد یک مقدار مرجع استفاده کرد.
مزیت استفاده از بلوک اختصاصی Bias این است که هدف محاسبه در دیاگرام مدل بهصورت واضح مشخص میشود و ساختار مدل خوانایی بیشتری پیدا میکند.
Sample Time چیست؟
Sample Time مشخص میکند یک بخش گسسته از مدل با چه فاصله زمانی اجرا یا بهروزرسانی میشود.
در مدلهای ساده ممکن است Sample Time تنها یک ویژگی اجرایی باشد، اما در مدلهای پیشرفته میتوان از آن بهعنوان بخشی از محاسبات ریاضی نیز استفاده کرد.
این قابلیت بهخصوص زمانی اهمیت پیدا میکند که الگوریتم موردنظر به نرخ اجرای سیستم وابسته باشد.
Weighted Sample Time Math
بلوک Weighted Sample Time Math برای انجام محاسباتی طراحی شده است که در آن Sample Time با یک وزن مشخص وارد عملیات ریاضی میشود. این بلوک میتواند Sample Time وزندار را ایجاد کند یا آن را با سیگنال ورودی ترکیب نماید.
پارامتر Weight Value مشخص میکند Sample Time با چه ضریبی در محاسبه وارد شود.
این ویژگی باعث میشود اثر زمانی یک سیگنال بدون تغییر مستقیم تنظیمات اصلی Sample Time قابل کنترل باشد.
مفهوم Weight Value
پارامتر Weight Value یک مقدار حقیقی است که میزان اثرگذاری Sample Time را تعیین میکند.
با تغییر این مقدار، سهم Sample Time در عملیات ریاضی تغییر میکند. بنابراین میتوان یک محاسبه زمانی را متناسب با نیاز الگوریتم تنظیم کرد.
اگر وزن برابر مقدار واحد باشد، Sample Time بدون تغییر مقیاس اساسی وارد محاسبه میشود؛ اما انتخاب وزنهای دیگر باعث افزایش یا کاهش اثر آن خواهد شد.
عملیات ریاضی با Sample Time
Weighted Sample Time Math امکان انجام چند نوع عملیات را فراهم میکند. از جمله این عملیات میتوان به جمع، تفریق، ضرب و تقسیم اشاره کرد.
در نتیجه، Sample Time میتواند بهعنوان یک مؤلفه محاسباتی در کنار سیگنال ورودی قرار گیرد.
این قابلیت بهخصوص در الگوریتمهایی مفید است که رفتار آنها باید نسبت به نرخ اجرای مدل مقیاس شود.
استخراج Sample Time
یکی از کاربردهای مهم این بلوک، استخراج Sample Time از یک سیگنال است.
با تنظیم مناسب Operation و Weight، میتوان Sample Time سیگنال ورودی را بهعنوان خروجی دریافت کرد. MathWorks استفاده از Weighted Sample Time و Weighted Sample Time Math را برای استخراج اطلاعات Sample Time از سیگنال معرفی کرده است.
این ویژگی در تحلیل مدلهای پیچیده و چندنرخی بسیار مفید است.
Weighted Sample Time در سیستمهای چندنرخی
در یک سیستم چندنرخی، بخشهای مختلف مدل ممکن است با Sample Timeهای متفاوت اجرا شوند.
در چنین شرایطی یک محاسبه ممکن است در یک بخش مدل با نرخ مشخصی انجام شود و در بخش دیگری نرخ متفاوتی داشته باشد.
Weighted Sample Time Math امکان میدهد اثر Sample Time مربوط به محیط اجرای همان بخش در محاسبات وارد شود و وابستگی زمانی مدل بهتر مدیریت شود.
تفاوت اجرای دورهای و تحریکشده
نحوه تعیین Sample Time مورد استفاده در این بلوک به Execution Context بستگی دارد.
در یک محیط اجرای دورهای، Sample Time مدل مبنای محاسبه قرار میگیرد. اما در محیطهای غیردورهای یا Triggered، زمان سپریشده از اجرای قبلی میتواند مبنای محاسبات باشد.
این تفاوت برای مدلهایی که دارای Trigger، Function یا ساختارهای اجرایی غیرثابت هستند اهمیت زیادی دارد.
ارتباط با سیستمهای گسسته
در سیستمهای گسسته، فاصله زمانی میان نمونهها یکی از پارامترهای مهم مدل است.
اگر یک الگوریتم به این فاصله زمانی وابسته باشد، تغییر Sample Time میتواند نتیجه محاسبات را تغییر دهد.
استفاده از Weighted Sample Time Math باعث میشود این وابستگی بهصورت مستقیم در ساختار مدل نمایش داده شود و ارتباط میان محاسبات عددی و زمان اجرای مدل شفافتر باشد.
کاربرد در کنترل دیجیتال
در کنترل دیجیتال، بسیاری از الگوریتمها بر اساس نمونههای متوالی یک سیگنال اجرا میشوند.
بنابراین نرخ نمونهبرداری میتواند روی رفتار کنترلکننده و نحوه پردازش داده اثرگذار باشد.
استفاده از محاسبات مبتنی بر Sample Time میتواند در مدلهایی که نیاز به مقیاسبندی زمانی یا وابستگی صریح به نرخ اجرای کنترلکننده دارند، مفید باشد.
کاربرد در پردازش سیگنال
در پردازش سیگنال نیز زمان نمونهبرداری نقش اساسی دارد.
تغییر نرخ نمونهبرداری میتواند فاصله زمانی میان دادهها و در نتیجه رفتار برخی محاسبات را تغییر دهد.
Weighted Sample Time Math امکان میدهد اطلاعات زمانی سیگنال مستقیماً در محاسبات مدل مورد استفاده قرار گیرد.
پشتیبانی از سیگنالهای اسکالر، برداری و ماتریسی
این بلوک تنها برای سیگنالهای اسکالر طراحی نشده است.
ورودی آن میتواند اسکالر، بردار یا ماتریس باشد و خروجی نیز بر اساس تنظیمات عملیات میتواند ساختار متناظری داشته باشد.
به همین دلیل میتوان از آن در مدلهایی با ساختارهای داده پیچیدهتر نیز استفاده کرد.
Fixed-Point و محاسبات عددی
Weighted Sample Time Math از انواع مختلف داده، از جمله دادههای Floating-Point، Integer و Fixed-Point پشتیبانی میکند.
در محاسبات Fixed-Point، انتخاب نوع داده، مقیاسبندی و روش گرد کردن میتواند بر نتیجه نهایی تأثیر داشته باشد.
بنابراین هنگام استفاده از این بلوک در سیستمهای Embedded باید علاوه بر منطق محاسباتی، محدودیتهای عددی سختافزار نیز در نظر گرفته شوند.
محاسبات Online و Offline
در عملیات ضرب و تقسیم، سیمولینک امکان انتخاب نحوه پیادهسازی محاسبات Sample Time را فراهم میکند.
در روش Online Calculations عملیات موردنیاز هنگام اجرای مدل انجام میشود، در حالی که Offline Scaling Adjustment میتواند برای برخی محاسبات Fixed-Point و Integer، بخشی از تنظیمات مقیاس را از زمان اجرا خارج کند.
این انتخاب میتواند روی کارایی اجرای مدل و کد تولیدشده اثرگذار باشد.
مدیریت Overflow
در محاسبات عدد صحیح، ممکن است نتیجه یک عملیات از محدوده قابل نمایش نوع داده خارج شود.
Weighted Sample Time Math دارای تنظیمی برای کنترل رفتار در برابر Integer Overflow است. با فعال کردن Saturation، مقدار از محدوده مجاز فراتر نمیرود و به حد قابل نمایش محدود میشود؛ در حالت دیگر ممکن است رفتار Wrap-around رخ دهد.
این موضوع در سیستمهای Embedded اهمیت زیادی دارد، زیرا محدودیت طول کلمه و محدوده داده میتواند مستقیماً روی رفتار الگوریتم اثر بگذارد.
تفاوت Bias و Weighted Sample Time
اگرچه Bias و Weighted Sample Time Math هر دو در دسته محاسبات ریاضی قرار میگیرند، اما هدف آنها متفاوت است.
Bias برای اعمال یک جابهجایی ثابت روی سیگنال استفاده میشود، در حالی که Weighted Sample Time Math اطلاعات مربوط به زمان نمونهبرداری را وارد محاسبات میکند.
بنابراین Bias بیشتر با مقدار سیگنال ارتباط دارد و Weighted Sample Time Math با زمان اجرای سیستم.
ترکیب Bias و Sample Time
در یک مدل پیشرفته میتوان از Bias برای اصلاح مقدار سیگنال و از Weighted Sample Time Math برای وارد کردن وابستگی زمانی استفاده کرد.
این ترکیب زمانی مفید است که یک سیگنال هم نیاز به اصلاح مقدار داشته باشد و هم محاسبات بعدی آن به نرخ نمونهبرداری وابسته باشد.
تفکیک این دو مفهوم باعث میشود ساختار مدل قابل فهمتر و عیبیابی آن سادهتر باشد.
کاربرد در سیستمهای بلادرنگ
در سیستمهای Real-Time، زمان اجرای الگوریتم و نرخ نمونهبرداری اهمیت زیادی دارد.
اگر محاسبات به فاصله زمانی میان نمونهها وابسته باشند، استفاده از Weighted Sample Time Math میتواند ارتباط میان منطق محاسباتی و زمانبندی اجرای مدل را بهتر نشان دهد.
این ویژگی در مدلهای کنترلی و Embedded که قرار است در نهایت روی سختافزار اجرا شوند، اهمیت بیشتری پیدا میکند.
تولید کد و سیستمهای Embedded
Weighted Sample Time Math قابلیت C/C++ Code Generation دارد و میتواند در فرآیند طراحی مدلهای قابل پیادهسازی روی سختافزار مورد استفاده قرار گیرد.
در چنین کاربردهایی، انتخاب نوع داده، مدیریت Overflow و روش انجام محاسبات اهمیت ویژهای پیدا میکند.
جمعبندی
Bias و Weighted Sample Time Math دو ابزار متفاوت اما مکمل در بخش محاسبات ریاضی سیمولینک هستند. Bias برای ایجاد Offset یا جابهجایی مقدار یک سیگنال به کار میرود، در حالی که Weighted Sample Time Math امکان وارد کردن Sample Time یا Sample Rate در محاسبات را فراهم میکند.
Weighted Sample Time Math با پشتیبانی از عملیات مختلف، Weight Value، محیطهای اجرای دورهای و تحریکشده، انواع داده عددی و محاسبات Fixed-Point، ابزار مناسبی برای مدلهای گسسته و چندنرخی محسوب میشود.
شناخت این بلوک به کاربر کمک میکند وابستگی میان سیگنال، زمان نمونهبرداری و محاسبات ریاضی را بهصورت دقیقتری در مدل نمایش دهد؛ موضوعی که در طراحی سیستمهای کنترل دیجیتال، پردازش سیگنال، سیستمهای Embedded و شبیهسازی بلادرنگ اهمیت زیادی دارد.
کلیدواژه ها : Weighted Sample Time Math-محاسبات گام زمانی وزندار-Weighted Sample Time-گام زمانی وزندار-Sample Time-گام نمونهبرداری-Sample Rate-نرخ نمونهبرداری-Bias-بایاس-Offset-افست-Weight Value-مقدار وزن-Sample Time Calculation-محاسبات گام زمانی-Sample Time Extraction-استخراج گام زمانی-Weighted Calculation-محاسبات وزندار-Discrete System-سیستم گسسته-Multirate System-سیستم چندنرخی-Periodic Execution-اجرای دورهای-Aperiodic Execution-اجرای غیردورهای-Triggered Execution-اجرای تحریکشده-Execution Context-محیط اجرا-Digital Control-کنترل دیجیتال-Signal Processing-پردازش سیگنال-Real-Time Simulation-شبیهسازی بلادرنگ-Embedded Systems-سیستمهای نهفته-Fixed-Point-ممیز ثابت-Floating-Point-ممیز شناور-Integer Arithmetic-محاسبات عدد صحیح-Overflow-سرریز عددی-Saturation-اشباع-Rounding-گرد کردن عددی-Online Calculations-محاسبات آنلاین-Offline Scaling Adjustment-تنظیم مقیاس آفلاین-Data Type-نوع داده-Output Data Type-نوع داده خروجی-Time-Based Computation-محاسبات مبتنی بر زمان-Rate-Dependent Calculation-محاسبات وابسته به نرخ-Discrete-Time Modeling-مدلسازی زمان گسسته-Multirate Modeling-مدلسازی چندنرخی-Mathematical Modeling-مدلسازی ریاضی-Advanced Mathematical Computation-محاسبات پیشرفته ریاضی-Simulink Math Operations-عملیات ریاضی سیمولینک-Simulink Modeling-مدلسازی سیمولینک-Model-Based Design-طراحی مبتنی بر مدل-C Code Generation-تولید کد C-C++ Code Generation-تولید کد C++-Embedded Control-کنترل سیستمهای نهفته-Temporal Scaling-مقیاسبندی زمانی-Time-Dependent Signal-سیگنال وابسته به زمان-Sample Time Weighting-وزندهی گام زمانی-Rate Scaling-مقیاسبندی نرخ-Computational Timing-زمانبندی محاسبات