مقدمه فکاهی
این مقاله به درخواست یکی از عزیزان قرار داده شده است. این مقاله را در روز یکم فروردین 1388 نوشتم. یادش بخیر، عجب روزی بود! تو خونه تنها بودم و فقط به یک چیز فکر می کردم و اون هم نوشتن این مقاله بود، چون به یک نفر گفته بودم که آمادش می کنم،خلاصه این که این مطلبو با یه ...
بگذریم...
امیدوارم از این مقاله استفاده ی لازم را ببرید. (فقط در موردش سوال نکنید چون هیچی ازش یادم نیست!!)
حرفهاي ما هنوز ناتمام...
تا نگاه مي کني:
وقت رفتن است
بازهم همان حکايت هميشگي !
پيش از آنکه با خبر شوي
لحظه ي عظيمت تو ناگزير مي شود
آي...
ناگهان
چقدر زود
دير مي شود!
شبيه سازي کنترل قند خون با استفاده از سيمولينک
فايل glocuse.mdl را باز کنيد. اين شبيه سازي براي بيماران ديابتي که نياز به تزريق انسولين دارند، يعني پانکراس آنان نمي تواند انسولين مورد نياز براي تنظيم قند خون را ترشح کند، طراحي شده است.
ابتدا مي خواهيم پاسخ سيستم طراحي شده را در صورتي که قندي وارد خون نشده باشد را مشاهده کنيم.
روي بلوک Glucose: meals دابل کليک مي کنيم. در قسمت time values، مقادير زمان هايي که گلوکز خوراکي وارد بدن مي شود را به صورت يک ماتريس وارد مي کنيم. به عنوان مثال :[0 300 600 900 1200]
در قسمت output valuse، ماتريس [0 0 0 0 0] را وارد مي کنيم که اين بدان معناست که در زمان هاي فوق هيچ گلوکز خوراکي مصرف نشده است.
سپس روي بلوک insulin infusion دابل کليک مي کنيم تا پنجره مشخصات اين بلوک باز شود. اين بلوک مقدار انسولين تزريق شده به بيمار را مشخص مي کند که چون در اين حالت ما شرايط عادي سيستم را مي خواهيم مشاهده کنيم در قسمت data مقدار [0 0] را وارد مي کنيم. يعني هيچ مقدار انسولين به بيمار تزريق نشده است.
حال روي بلوک insulin secretion دابل کليک مي کنيم. در قسمت constant value مقدار صفر را وارد مي کنيم و اين يعني پانکراس شخص بيمار هيچ انسوليني براي کنترل قند خون ترشح نکرده است.
در بالاي پنجره سيمولينک در قسمت تولبار در باکس simulation stop time مقدار 1200 را وارد مي کنيم، که اين مقدار زماني است که شبيه سازي به پايان مي رسد. در انتها روي آيکون Run کليک مي کنيم و از طريق پنجره اسکوپ نتيجه را مشاهده مي کنيم. همانطور که انتظار مي رفت، پاسخ سيستم با فرضيات فوق پس از گذشت مدت زماني مقدار ثابتي شد.
براي مشاهده بهتر نتايج روي نمودار مي توان از دستور plot(glu) در command window متلب استفاده کرد.
اکنون سيستم را با وارد کردن مقادير مختلف امتحان مي کنيم و نتايج را مشاهده مي کنيم.
ابتدا پاسخ ضربه سيستم را بررسي مي کنيم. يعني در يک لحظه معين مقداري انسولين وارد مي کنيم و در بقيه زمان ها مقدار انسولين وارد شده صفر باشد. به عنوان مثال مي خواهيم در دقيقه 800 مقداري انسولين با دوز 1 وارد کنيم. براي اين منظور در قسمت command window متلب عبارت زير را وارد مي کنيم و اينتر مي کنيم:
insulin=[0 0; 100 0; 200 0; 300 0; 400 0; 500 0; 600 0; 700 0; 800 1; 900 0; 1000 0; 1100 0; 1200 0]
حال به پنجره سيمولينک برمي گرديم و در پنجره خصوصيات insulin infusion در قسمت data عبارت insulin را وارد مي کنيم. دکمه Run را مي زنيم و نتيجه را مشاهده مي کنيم.
نمودار اين حالت نيز به صورت زير مشاهده شد:
حال پاسخ پله سيستم را بررسي مي کنيم. مقدار ثابتي گلوکز وارد مي کنيم. مانند قبل ابتدا عبارت زير را وارد مي کنيم:
insulin=[0 1; 100 1; 200 1; 300 1; 400 1; 500 1; 600 1; 700 1; 800 1; 900 1; 1000 1; 1100 1; 1200 1]
و سپس دکمه Run را مي زنيم. نمودار نيز به صورت زير مشاهده شد:
اگر بيمار در دقيقه 600 گلوکز وارد بدنش شود و انسولين تزريقي مقدار ثابتي باشد، مي خواهيم تغييرات قند خون بيمار را مشاهده کنيم. براي اين منظور در باکس output values در پنجره خصوصيات Glucose: meals مقدار [0 0 1 0 0] را وارد مي کنيم که نتيجه به صورت زير مي شود: