مقدمة في نظم التحكم في الماتلاب

مقدمة في نظم التحكم في الماتلاب

مبادئ أساسية
يتطلب تصميم أي نظام تحكمي معرفة سلوك هذا النظام في حالات عمل مختلفة للوصول إلى تصميم موثوق وذو دقة نسبية كبيرة مع التمتع باستقرار ممتاز.
يتحكم في مواصفات النظام (كسرعة استجابته) بعضاً من المتغيرات الفيزيائية التي يقوم المصمم بتجريبها للوصول إلى القيم المطلوبة, وذلك عند عدم أخذ كامل المؤثرات الخارجية على النظام والتي تجعل تابع التحويل الكلي معقداً جداً وصعب التحليل. وهذا هو سبب الحصول على نتائج عملية قريبة من النتائج النظرية لكنها لا تطابقها. إن إجراء هذه التغييرات ليس بالأمر المتاح دائماً. كما أن دراسة مدى تأثير كل بارامتر أو متغير فيزيائي على النظام يحتاج إلى وقت طويل وكلفة مادية عالية. وبالتالي فوجود برنامج يساعد المصمم على دراسة وتحليل نظم التحكم سوف يؤدي إلى اختصار الزمن و الحصول على نظم بكلفة أقل واستقرار أفضل.
يحتوي الماتلاب على إمكانيات كبيرة تساعد على تحليل النظم التحكمية بكل بساطة وذلك باحتوائه على كثير من توابع التحكم التقليدي المستخدمة, إن لم نقل جميعها.
سوف نقوم باعتماد نظام عملي من أجل تطبيق توابع التحكم عليه مباشرة. إن التحكم بحركة رأس القراءة و الكتابة في محرك الأقراص الصلبة ضمن الحاسب من الأمثلة العملية التي تظهر مدى أهمية ودقة اختيار بارمترات النظام للوصول إلى نظام موثوق وعلى مستوى عالٍ من الدقة.
تتم دراسة هذا النظام وفق قانون نيوتن التقليدي للوصول إلى معادلة زمنية تصف حركة رأس القراءة. عادة يتم الانتقال من المستوي الزمني إلى مستوي لابلاس حيث يتعرف الماتلاب على الأنظمة باعتبارها موصفة بمستوي لابلاس أي بالمتحول
s. يمكن الانتقال إلى المستوي Z عند التعامل مع الإشارات المقطعة و خاصة عند دخول النظم الرقمية كالحاسب ضمن النظام التحكمي. عموماً يفيدنا الانتقال إلى مستوي لابلاس في ناحيتين أساسيتين هما :
-         تسهيل التحليل الرياضي.
-         دراسة الإشارة من وجهة النظر الترددية وليس الزمنية.
يمكننا هنا معرفة سلوك النظام وكيفية تأثيره على كل مركبة ترددية وبالتالي إمكانية إضافة أو تعزيز أو حذف بعض المركبات الترددية وفقاً لمتطبات النظام.
يوصف أي تابع تحويل خطي بشكل تابع كسري بسط
Numerator  ومقام Denominator. باعتبار النظام خطي فهذا يتطلب كون درجة البسط أدنى أو تساوي درجة المقام. يطبق تحويل لابلاس على النظم الخطية وهذه النظم هي التي سنجري عليها الدراسة في في الماتلاب.
إن المعادلة التي تصف نظام التحكم بحركة رأس القراءة والكتابة للقرص موصوفة في مستوي لابلاس بالشكل التالي :

يتم كخطوة أولى تعريف التابع بتعريف كلٍ من البسط والمقام كمتحولين :
>> num=[0.05]
>> den=[0.01 0.004 10]
-         printsys : يقوم هذا التابع بطباعة تابع التحويل بالشكل الكسري
>> printsys(num,den,’s’)
  num/den =  
   0.05
   -----------------------
   0.01 s^2 + 0.004 s + 10


يمكن استخدام أي محرف غير s كما يلي :
>> printsys(num,den,’Z’)
num/den =  
0.05
-----------------------
0.01       Z^2 + 0.004 Z + 10

         -         tf : وظيفة هذا التابع تعريف تابع التحويل ابتداءً من البسط و المقام.
>> y=tf(num,den);
>> y1=y*2
y1  =
0.1
-----------------------
0.01 s^2 + 0.004 s + 10

Continuous-time transfer function.

 zpk  - : يقوم هذا التابع بتعريف تابع التحويل ابتداءً من أصفار وأقطاب وربح النظام.
 
    >> y=zpk(1,[2 3],4)
     y =
 4 (s-1)
-----------
(s-2) (s-3)
 Continuous-time zero/pole/gain model.

    -         filt : وظيفة هذا التابع تعريف مرشح رقمي.

    >> filt(num,den,0.1)
     Ans  =

0.05
---------------------------
0.01 + 0.004 z^-1 + 10 z^-2
Sample time: 0.1 seconds
Discrete-time transfer function.

   -         C2d : وظيفة هذا التابع الانتقال من الإشارة الزمنية المستمرة إلى الإشارة المقطعة.

    >> y1=c2d(y,0.1,’zoh’)
      y1 =
0.49015 (z-1.105)
------------------
(z-1.221) (z-1.35)
Sample time: 0.1 seconds
Discrete-time zero/pole/gain model.
هنا تم اختيار زمن التقطيع 0.1 sec كما تم استخدام آخذ وماسك عينات في مدخل الإشارة.

  -         D2c : وظيفة هذا التابع الانتقال من الإشارة الزمنية المقطعة إلى الإشارة المستمرة.

  -         Step : وظيفة هذا التابع رسم أو تخزين الاستجابة الواحدية للنظام.
   لرسم الاستجابة الواحدية للنظام يمكننا القول :
     >> step(num,den)
  أو باعتبار عرفنا النظام بالمتحول y :
>> step(y)

 والاعتبار نفسه لبقية التعليمات أي يمكن استخدام y أو num و den.
 فنحصل على الشكل المبين :
يمكننا تحديد اللحظات الزمنية التي نرغب بالحساب عندها بتعريف شعاع يمثل هذه اللحظات ومن ثم القيام بالرسم :
>> y=tf(num,den);
>> t=0:30;
>> step(t,y)
سوف نحصل بهذا الأسلوب على شكل أوضح ولكنه ليس أدق.
أما لتخزين الاستجابة الواحدية :
>> y1 = step(y,t);
        ويمكن رسمها كما يلي :
>> plot(t,y1)
>> grid



 -         Impulse : وظيفة هذا التابع رسم أو تخزين الاستجابة النبضية للنظام.
>> impulse(y,0:0.2:30)



وأخيراً لا تنسوا زيارة الرابط التالي :  هنا