You are on page 1of 174

‫اٌّؾبوبح‬ٚ ُ‫ُ ٔظُ اٌزؾى‬١ّ‫ ٌزظ‬ٛ١‫اعزؼّبي الثف‬

for Control Design and


Simulation 1
+_ s
‫‪The Virtual Instrumentation Approach‬‬
‫ِذخً إٌ‪ ٝ‬األع‪ٙ‬ضح االفزشاػ‪١‬خ‬

‫اٌّى‪ٔٛ‬بد اٌجشِغ‪١‬خ‬

‫ػشع رؾٍ‪ ً١‬رؾظ‪ً١‬‬


‫ػشع رؾٍ‪ ً١‬رؾظ‪ً١‬‬

‫اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ‬

‫‪3‬‬
‫٘زا اٌذسط ع‪ٛ‬ف ‪٠‬غبػذن ػٍ‪:ٝ‬‬
‫‪ -‬ف‪ٚ ُٙ‬ؽذح ِظُّ اٌزؾىُ ‪ٚ‬اٌزؼش‪٠‬ف ف‪ ٟ‬الثف‪.ٛ١‬‬
‫‪-‬اعزؼّبي الثف‪ ٛ١‬ف‪ ٟ‬ؽً ِشبوً اٌزؾىُ‪.‬‬
‫‪ -‬ثٕبء د‪ٚ‬اي رؾ‪ ً٠ٛ‬إٌظُ‪.‬‬
‫‪ -‬رـ‪٠ٛ‬ش خ‪ٛ‬اسصِ‪١‬بد اٌزؾىُ ‪ٚ‬رؾٍ‪ ً١‬اعزغبثبر‪ٙ‬ب‪.‬‬
‫‪ِ -‬ؾبوبح خ‪ٛ‬اسصِ‪١‬بد اٌزؾىُ ف‪ِ ٟ‬ؾ‪١‬ؾ الخـ‪.ٟ‬‬
‫‪ -‬اٌجؾش ػٓ اٌؾٍ‪ٛ‬ي اٌّضٍ‪ٌٍ ٝ‬خ‪ٛ‬اسصِ‪١‬بد ِٓ خالي ِؾ‪١‬ؾ‬
‫عذاٌ‪.ٟ‬‬

‫‪4‬‬
‫‪ -‬ف‪ٚ ُٙ‬ؽذح ِظُّ اٌزؾىُ ‪ٚ‬اٌزؼش‪٠‬ف ف‪ٟ‬‬
‫الثف‪.ٛ١‬‬
‫‪-‬‬
‫اعزؼّبي الثف‪ ٛ١‬ف‪ ٟ‬ؽً ِشبوً اٌزؾىُ‪.‬‬

‫‪ -‬ثٕبء د‪ٚ‬اي رؾ‪ ً٠ٛ‬إٌظُ‪.‬‬


‫رـ‪٠ٛ‬ش خ‪ٛ‬اسصِ‪١‬بد اٌزؾىُ ‪ٚ‬رؾٍ‪ً١‬‬
‫‪ -‬اعزغبثبر‪ٙ‬ب‪.‬‬
‫ِؾبوبح خ‪ٛ‬اسصِ‪١‬بد اٌزؾىُ ف‪ِ ٟ‬ؾ‪١‬ؾ‬
‫‪-‬الخـ‪.ٟ‬‬
‫‪ -‬اٌجؾش ػٓ اٌؾٍ‪ٛ‬ي اٌّضٍ‪ٌٍ ٝ‬خ‪ٛ‬اسصِ‪١‬بد‬
‫ِٓ خالي ِؾ‪١‬ؾ عذاٌ‪.ٟ‬‬
‫ٌالعزفبدح ِٓ ٘زا اٌذسط ‪٠‬فؼً اإلٌّبَ‬
‫ثم‪ٛ‬اػذ اٌزؾىُ ‪ِ ٚ‬ؼشفخ ‪ ٌٛٚ‬ثغ‪١‬ـخ ثجشٔبِظ‬
‫الثف‪.ٛ١‬‬
‫‪5‬‬
‫الثف‪ٔ ٛ١‬ظبَ رـ‪٠ٛ‬ش‪ٌٍ ٞ‬زـج‪١‬مبد اٌّجٕ‪١‬خ ؽ‪ٛ‬ي اٌؾ‪ٛ‬اع‪١‬ت ف‪ ٟ‬اٌم‪١‬بط‬
‫‪ٚ‬اٌزؾىُ‪ِٕ ٛ٘ٚ ،‬زظ ِٓ ؿشف ششوخ ٔبش‪ٔٛ١‬بي أغزشِٕزظ‪0‬‬
‫ِ‪١‬بد‪ ٓ٠‬رـج‪١‬ك الثف‪ : ٛ١‬ف‪ ٟ‬اٌظٕبػخ‪ ،‬اٌجؾ‪ٛ‬س‪ٚ ،‬اٌزـ‪٠ٛ‬ش‪ٚ ،‬اٌزؼٍ‪0ُ١‬‬
‫الثف‪٠ ٛ١‬غزؼًّ اٌجشِغخ اٌظ‪ٛ‬س‪٠‬خ(ثبٌشع‪ٌ )َٛ‬ىٓ ‪ّ٠‬ىٓ اعزؼّبي‬
‫اٌجشِغخ إٌظ‪١‬خ ثبعزؼّبي‪:‬‬
‫……‪C, Mathscript‬‬
‫وض‪١‬ش ِٓ اٌ‪ٛ‬ظبئف ٌٍزؾٍ‪ ً١‬اٌؼذد‪ٚ ،ٞ‬اٌزظّ‪ ٚ ،ُ١‬ػشع اٌج‪١‬بٔبد‪ .‬وض‪١‬ش‬
‫ِٓ اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ رؼ‪١‬ف ِ‪ٛ‬اطفبد ِزؼذدح إٌ‪ ٝ‬الثف‪ ٛ١‬ف‪ٟ‬‬
‫اٌزؾىُ ‪ِ ،‬ؼبٌغخ اإلشبساد‪ ،‬اٌش‪٠‬بػ‪١‬بد‪ ...‬اٌز‪ٛ‬اطً ِغ اٌؼبٌُ اٌخبسع‪ٟ‬‬
‫‪٠‬زُ ػٓ ؿش‪٠‬ك ‪:‬‬
‫‪OPC, Modbus, RS 232, GPIB ……..‬‬
‫األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪Virtual Instrumentation‬‬
‫ألوضش ِٓ ‪ 25‬عٕخ‪ ،‬غ‪١‬شد ششوخ ٔبش‪ٔٛ١‬بي أغزشِٕزظ ؿشق رؼبًِ‬
‫‪ٚ‬ؿشق اٌّ‪ٕٙ‬ذع‪ٚ ٓ١‬اٌجبؽض‪ ٓ١‬ف‪ ٟ‬اٌظٕبػخ‪ٚ ،‬األوبد‪ِ ٓ١١ّ٠‬غ األع‪ٙ‬ضح‬
‫اٌم‪١‬بَ ثبٌم‪١‬بعبد ‪ٚ‬األرّزخ‪ .‬األع‪ٙ‬ضح االفزشاػ‪١‬خ رض‪٠‬ذ ِٓ اإلٔزبع‪١‬خ‪،‬‬
‫‪ٚ‬رخفغ رىبٌ‪١‬ف االخزجبس‪ ،‬اٌزؾىُ ‪ٚ ،‬رغبػذ ػٍ‪ ٝ‬رظّ‪ ُ١‬اٌزـج‪١‬مبد ِٓ‬
‫خالي رغ‪ ً١ٙ‬اعزؼّبي اٌجشاِظ ‪ِ ،‬ضً الثف‪ ٚ ،ٛ١‬اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ إٌّـ‪١‬خ‬
‫اٌّغزمٍخ ثزار‪ٙ‬ب ‪ٚ‬اٌزؼبًِ ِغ األع‪ٙ‬ضح‪:‬‬
‫‪PXI, PCI, USB, and Ethernet.‬‬

‫‪7‬‬
‫ِغ األع‪ٙ‬ضح االفزشاػ‪١‬خ‪٠ ،‬غزؼًّ اٌّ‪ٕٙ‬ذع‪ ْٛ‬اٌجشِغخ‬
‫اٌظ‪ٛ‬س‪٠‬خ ٌخٍك ؽٍ‪ٛ‬ي رٕبعت ؽبع‪١‬بر‪ ٛ٘ٚ ،ُٙ‬اٌجذ‪ً٠‬‬
‫اٌّ‪ٌٍٍّ ُٙ‬ى‪١‬خ اٌخبطخ‪ ،‬اٌز‪ٛ‬ظ‪١‬ف اٌضبثذ ٌألع‪ٙ‬ضح‬
‫اٌزمٍ‪١‬ذ‪٠‬خ‪.‬‬
‫أػف إٌ‪ ٝ‬رٌه‪ ،‬األع‪ٙ‬ضح االفزشاػ‪١‬خ رؼـ‪ ٟ‬أ‪٠ٌٛٚ‬خ ألداء‬
‫اٌؾبع‪ٛ‬ة اٌّزضا‪٠‬ذ‪ِ .‬ضال‪ ،‬ف‪ ٟ‬االخزجبس‪ ،‬اٌم‪١‬بط‪ٚ ،‬اٌزؾىُ‪،‬‬
‫اٌّ‪ٕٙ‬ذع‪ ْٛ‬األع‪ٙ‬ضح االفزشاػ‪١‬خ ٌٍزمٍ‪ ِٓ ً١‬ؽغُ اعزؼًّ‬
‫أع‪ٙ‬ضح األرّزخ ‪ٚ‬االخزجبس‪ٚ ،‬اسرفغ وغت اٌّشد‪ٚ‬د ف‪ٟ‬‬
‫اإلٔزبع‪١‬خ ثؼششح ِشاد‬
‫ِمبثً رىبٌ‪١‬ف ِزذٔ‪١‬خ ثبٌٕغجخ ٌّشد‪ٚ‬د األع‪ٙ‬ضح اٌزمٍ‪١‬ذ‪٠‬خ‪.‬‬
‫وض‪١‬ش ِٓ اٌششوبد اٌشائذح اخزبسد األع‪ٙ‬ضح االفزشاػ‪١‬خ‬
‫ثذال ِٓ األع‪ٙ‬ضح اٌزمٍ‪١‬ذ‪٠‬خ‪.‬‬
‫‪8‬‬
‫ذغٕس األخٓضج االفرشاض‪ٛ‬ح‬
‫‪ٚ‬ؼرثش ذغٕس األخٓضج االفرشاض‪ٛ‬ح ذسٕال ف‪ ٙ‬عش‪ٚ‬قح ذغث‪ٛ‬ق ػًه‪ٛ‬ح انشتظ ت‪ٍٛ‬‬
‫انساعٕب ٔاألخٓضج انخاسخ‪ٛ‬ح انًشذثغح تّ‪ .‬ف‪ ٙ‬انًاض‪ ٙ‬انقش‪ٚ‬ة‪ ،‬كاَد ػًه‪ٛ‬ح‬
‫انشتظ يثُ‪ٛ‬ح ػهٗ أكٕاد‪ ،‬يؼقذج ٔغ‪ٛ‬ش ٔاضسح انًؼانى‪ ،‬إٌ نى َقم يثًٓح‪ٚٔ .‬قض‪ٙ‬‬
‫انًظًى ٔقرا عٕ‪ٚ‬ال نكراتح انكٕد أٔ نًؼشفح ك‪ٛ‬ف ‪ٚ‬ؼًم‪ ،‬يثم يا ْٕ انسال ػُذ‬
‫اعرؼًال نغح ‪ ....، Basic ،Pascal ، C‬ان‪ٕٛ‬و‪ًٚ ،‬كٍ أٌ ‪ٚ‬سم َفظ انًٕضٕع‬
‫ف‪ ٙ‬نسظح تاعرؼًال عش‪ٚ‬قح األخٓضج االفرشاض‪ٛ‬ح ‪Virtual ( VI‬‬
‫‪ٔ ،)Instruments‬خاطح ذهك انر‪ ٙ‬ذغرؼًم ذقُ‪ٛ‬ح انثشيدح(انظٕس‪ٚ‬ح)‬
‫تانشعٕياخ ٔاألشكال ٔذذفق انث‪ٛ‬اَاخ‪.‬‬

‫‪9‬‬
‫ْزِ انرقُ‪ٛ‬ح ذسراج إنٗ يًاسعح ػًه‪ٛ‬ح‪ ،‬كًا ذسراج إنٗ‬
‫انُض انرذق‪ٛ‬ق‪ ٙ‬انُظش٘ نرسٕ‪ٚ‬م انخثشج إنٗ كٕد يُرح‬
‫ٔفؼال‪ .‬انُض انُظش٘ ‪ٚ‬غرؼًم كًشخغ نرشخًرّ إنٗ‬
‫ػًه‪ ٙ‬ف‪ ٙ‬انً‪ٛ‬ذاَ‪ ٍٛ‬األكاد‪ٔ ًٙٚ‬انظُاػ‪ .ٙ‬ف‪ ٙ‬اػرقاد‬
‫انكث‪ٛ‬ش‪ ٍٚ‬أَّ ال ذٕخذ ػالقح ت‪ ٍٛ‬تشيدح التف‪ٔ ٕٛ‬انثشيدح‬
‫انرقه‪ٛ‬ذ‪ٚ‬ح‪ْٔ ،‬زا غ‪ٛ‬ش يقُغ‪ .‬طس‪ٛ‬ر أٌ يٕاطفاخ التف‪ٕٛ‬‬
‫كث‪ٛ‬شج ٔٔظائف خاطح تّ‪ ،‬ن‪ٛ‬ظ نٓا يا ‪ٚ‬قاتهٓا ف‪ٙ‬‬
‫انثشيدح انرقه‪ٛ‬ذ‪ٚ‬ح‪.‬‬

‫‪10‬‬
‫ف‪Icon ٙ‬نكٍ‪ ،‬أعاط انًُغق ٔازذ‪ .‬التف‪ٚ ٕٛ‬غرؼًم األ‪ٚ‬قَٕح‬
‫انثشيدح‪ٔ ،‬انؼالقح ت‪ ٍٛ‬انثشيدح انرقه‪ٛ‬ذ‪ٚ‬ح‪ .‬انثشيدح ف‪ ٙ‬التف‪ٕٛ‬‬
‫‪ًٚ‬كٍ ذذاسكٓا تغٕٓنح ٔتذٌٔ ػُاء تؼكظ انثشيدح انرقه‪ٛ‬ذ‪ٚ‬ح‬
‫انر‪ ٙ‬ذرغى تانظؼٕتح ٔانٕقٕع ف‪ ٙ‬كثشج األخغاء‪.‬‬

‫‪11‬‬
‫نًارا التف‪ٕٛ‬؟‬
‫٘ذف ٘زٖ اٌّشبسوبد اٌفٕ‪١‬خ ٘‪ ٛ‬إػـبء فىشح ػٍ‪ ٝ‬األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪ ،‬ثٕبء‬
‫اٌم‪١‬بط‪ٚ ،‬األرّزخ ثزـج‪١‬ك اٌّؼب‪١٠‬ش اٌظٕبػ‪١‬خ ثبعزؼّبي ِؾ‪١‬ؾ الثف‪ ٛ١‬اٌّجٕ‪ٟ‬‬
‫ػٍ‪ ٝ‬اٌشع‪ِٛ‬بد ‪ٚ‬األشىبي‪ .‬و‪١‬ف ‪ّ٠‬ىٓ اعزؼّبي الثف‪ٌ ٛ١‬زؾظ‪ ً١‬اٌج‪١‬بٔبد‪،‬‬
‫رؾٍ‪ٍٙ١‬ب‪ٚ،‬ػشػ‪ٙ‬ب؟ ‪Acquire , Analyze, and Present Data‬‬

‫‪12‬‬
‫األع‪ٙ‬ضح االفزشاػ‪١‬خ رزـٍت اٌزـ‪ٛ‬س اٌّز‪ٛ‬اص‪ ٞ‬ف‪ٟ‬‬
‫اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ ‪ٚ‬اٌّى‪ٔٛ‬بد اٌغ‪١‬ش ِبد‪٠‬خ(اٌجشِغ‪١‬بد)‪.‬‬
‫إْ رـ‪ٛ‬س اٌ‪ٛ‬طٍخ اٌج‪١ٕ١‬خ ٌّغزؼًّ اٌشع‪ِٛ‬بد ثزـ‪ٛ‬س‬
‫اٌجشاِظ ‪ ٚ‬اٌزمذَ ف‪ ٟ‬اعزؼّبي ِؼب‪١٠‬ش ِ‪ٛ‬طالد األع‪ٙ‬ضح‪،‬‬
‫وٍ‪ٙ‬ب شبسوذ ف‪ ٟ‬رـ‪٠ٛ‬ش األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪ٌُٚ ،VI‬‬
‫‪٠‬ىٓ ثّمذ‪ٚ‬س أؽذ٘ب اٌزـ‪ٛ‬س ثذ‪ ْٚ‬ا‪٢‬خش‪٘ .‬زا اٌزفبػً رُ‬
‫إثشاصٖ ‪ٚ‬رفغ‪١‬ش اٌزؼبًِ ث‪٘ ٓ١‬زٖ اٌؼٕبطش‪ .‬وّب رـشلٕب‬
‫ٌٍّمبسٔخ ث‪ِ ٓ١‬ؾ‪١‬ـ‪ ٟ‬اٌجشِغخ اٌزمٍ‪١‬ذ‪٠‬خ اٌز‪ ٟ‬ر‪ٛ‬طف‬
‫ثزذفك اٌجشاِظ ‪ ٚ‬اٌجشِغخ ثبعزؼّبي الثف‪ ِٓ ٛ١‬خالي ‪VI‬‬
‫اٌز‪ ٟ‬رؼشف ثزذفك اٌج‪١‬بٔبد‪ٚ ،‬إظ‪ٙ‬بس ‪ٚ‬عٗ االخزالف‬
‫ث‪ّٕٙ١‬ب‪.‬‬

‫‪13‬‬
‫ِب ٘‪ ٟ‬األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪VI‬؟‬
‫ِٕز ِٕزظف اٌضّبٔ‪ٕ١‬بد‪ ،‬أطجؾذ األع‪ٙ‬ضح االفزشاػ‪١‬خ رى‪ ْٛ‬رؾبٌفب‬
‫ِغ رىٕ‪ٌٛٛ‬ع‪١‬ب اٌؾبع‪ٛ‬ة‪ ،‬ثشاِظ اٌزـ‪٠ٛ‬ش ‪ٚ‬أع‪ٙ‬ضح اٌم‪١‬بط‬
‫اٌّؼ‪١‬بس‪٠‬خ(اٌّى‪ٔٛ‬خ ِٓ ػٕبطش ِزىشسح) ٌّغبػذح اٌّغزؼٍّ‪ٓ١‬‬
‫ثزى‪ ٓ٠ٛ‬أع‪ٙ‬ضح شخظ‪١‬خ ِؼشفخ ث‪ٛ‬اعـخ ثشٔبِظ اٌؾبع‪ٛ‬ة‪.‬‬
‫٘زٖ األع‪ٙ‬ضح االفزشاػ‪١‬خ رز‪ٛ‬فش ػٍ‪ ٝ‬اٌٍ‪ٔٛ١‬خ ‪ٚ‬اٌّش‪ٔٚ‬خ أفؼً ِٓ‬
‫األع‪ٙ‬ضح اٌزمٍ‪١‬ذ‪٠‬خ ‪ ٚ‬رـ‪ٛ‬سد ثغشػخ ٌزالؽك رـ‪ٛ‬س رىٕ‪ٌٛٛ‬ع‪١‬ب ػٍُ‬
‫اٌؾبع‪ٛ‬ة‪.‬‬
‫األع‪ٙ‬ضح االفزشاػ‪١‬خ رُ اػزّبد٘ب ‪ٚ‬ثم‪ٛ‬ح ف‪ ٟ‬رـج‪١‬مبد االخزجبس‪.‬‬
‫ِؼبٔ‪ٚ ٟ‬رظ‪ٛ‬ساد األع‪ٙ‬ضح االفزشاػ‪١‬خ إِب ‪٠‬زُ اػزّبد٘ب أ‪٠ ٚ‬ـؼٓ‬
‫ف‪ِ ٟ‬ظذال‪١‬ز‪ٙ‬ب ف‪ ٟ‬طٕبػخ االخزجبس‪.‬‬

‫‪14‬‬
‫اٌظٕبػخ اٌزىٕ‪ٌٛٛ‬ع‪١‬خ ػٕذ ‪ٚ‬صاسح ٌذفبع األِش‪٠‬ى‪١‬خ‪ِ ،‬ضال‪ ،‬اٌز‪ٟ‬‬
‫ٌ‪١‬ظ ٌ‪ٙ‬ب ‪ ،‬ثظفخ ػبِخ‪ٛ١ِ ،‬ي ‪ٔ ٚ‬ضػخ ف‪ ٟ‬خٍك اٌز‪ٛ‬ع‪ٙ‬بد‬
‫ف‪١ِ ٟ‬ذاْ اٌزىٕ‪ٌٛٛ‬ع‪١‬ب‪ ،‬اػزّذد ‪ٚ‬ثم‪ٛ‬ح األع‪ٙ‬ضح االفزشاػ‪١‬خ‪،‬‬
‫‪ ٟ٘ٚ‬رؼزجش أوجش ِغز‪ٍٙ‬ه ألع‪ٙ‬ضح االخزجبس اٌّؤرّزخ‪ٚ .‬لذ‬
‫اػزّذد اخز‪١‬بس األع‪ٙ‬ضح اٌّ‪ٛ‬ع‪ٙ‬خ ث‪ٛ‬اعـخ ثشاِظ اٌؾبع‪ٛ‬ة‬
‫‪Synthetic‬ف‪ِ ٟ‬شش‪ٚ‬ػ‪ٙ‬ب"األع‪ٙ‬ضح اٌزشو‪١‬ج‪١‬خ‬
‫‪Instrument .‬‬

‫‪15‬‬
‫٘زٖ األع‪ٙ‬ضح ‪ّ٠‬ىٓ إػبدح رشى‪ٍٙ١‬ب اٌزى‪ٟٕ٠ٛ‬‬
‫‪ Reconfiguration‬وٍّب ٌضَ رغ‪١١‬ش ّٔؾ‬
‫اٌزؾىُ‪ .‬اٌغ‪ٙ‬بص اٌزشو‪١‬ج‪ّ٠ ٟ‬ىٓ أْ ‪٠‬ؼ‪ٛ‬ع وض‪١‬شا‬
‫ِٓ األع‪ٙ‬ضح أؽبد‪٠‬خ اٌ‪ٛ‬ظ‪١‬فخ‪٘ٚ ،‬زا ‪٠‬مٍض ِٓ‬
‫اٌؾغُ اٌّخظض ٌ‪ٙ‬ب‪ ِٓٚ ،‬اٌظؼ‪ٛ‬ثبد اٌٍ‪ٛ‬عغز‪١‬خ‬
‫‪٠ٚ‬ؾً ِشىً اإلّ٘بي ‪ٚ‬االعزغٕبء ػٓ األع‪ٙ‬ضح‬
‫أؽبد‪٠‬خ اٌّ‪ٙ‬بَ ‪ٚ‬اٌّىٍفخ‪.‬‬

‫‪16‬‬
‫ِؼظُ اٌششوبد اٌظٕبػ‪١‬خ اٌىجش‪ِ ، ٜ‬ضً‬
‫ِ‪ٛ‬ر‪ٛ‬س‪ٚ‬ال‪ ،‬ف‪١ٍ١‬جظ‪ٛٔ،‬و‪١‬ب ‪ ....‬اػزّذد األع‪ٙ‬ضح‬
‫االفزشاػ‪١‬خ ‪ٚ‬رغزؼًّ ثشاِظ اٌؾبع‪ٛ‬ة ‪ٚ‬األع‪ٙ‬ضح‬
‫االفزشاػ‪١‬خ ٌجٕبء اٌزـج‪١‬مبد اٌؾبعّخ ‪ٚ‬اٌؾشعخ‬
‫ف‪ ٟ‬اخزجبس اإلٔزبع‪١‬خ ثىّ‪١‬بد وج‪١‬شح ‪ٚ‬ثذلخ ػبٌ‪١‬خ‪،‬‬
‫‪ ٚ‬ف‪١ِ ٟ‬ذاْ اٌزؾىُ ف‪ ٟ‬آالد اإلٔزبط‪ٚ ،‬ؽز‪ ٝ‬ف‪ٟ‬‬
‫اٌّفبػالد اٌزس‪٠‬خ‪......‬‬

‫‪17‬‬
‫ربس‪٠‬خ األع‪ٙ‬ضح االفزشاػ‪١‬خ‬
‫ػٕذ ثذا‪٠‬خ رـ‪ٛ‬س اٌؾبعجبد‪ ،‬وبْ ٌىً ؽبع‪ٛ‬ة ثشٔبِظ خبص ثٗ‪ٌ .‬ىٓ‪ ،‬ػٍّ‪١‬خ‬
‫رمبعُ اٌّؾ‪١‬ؾ اٌضِٕ‪ ٟ‬ثبعزؼّبي ٔظُ اٌزشغ‪ ً١‬ثذأد ِٕز اٌغز‪ٕ١‬بد‪ .‬فىبْ‪،‬‬
‫‪ VAX VMS‬أ‪٘ ٚ‬زٖ إٌظُ ‪ٚ‬ع‪١‬ـش ػٍ‪ ٝ‬اٌىض‪١‬ش ِٓ ػٍّ‪١‬بد اٌزؾىُ ف‪ٟ‬‬
‫اٌزـج‪١‬مبد اٌظٕبػ‪١‬خ‪ٚ .‬رالٖ ٔظبَ ‪ .UNIX ِٓ HPUX‬إؿالق‬
‫‪ PC/MSDOS2‬ف‪ ٟ‬عٕخ ‪ 1983‬غ‪١‬ش اٌىض‪١‬ش ف‪ّٔ ٟ‬ؾ رشغ‪ ً١‬اٌؾبعت‬
‫اٌشخظ‪ٌ ،ٟ‬ىٓ اٌش‪ٟ‬ء اٌغذ‪٠‬ذ اٌز‪ ٞ‬ؽٍّٗ ٘‪ ٛ‬إِىبٔ‪١‬خ سثؾ األع‪ٙ‬ضح اٌّشغٍخ‬
‫ثٕظبَ اٌزشغ‪ٚ .ً١‬ثزٌه أطجؾذ ػٍّ‪١‬خ رـ‪٠ٛ‬ش األع‪ٙ‬ضح اإلٌىزش‪١ٔٚ‬خ اٌز‪ّ٠ ٟ‬ىٓ‬
‫سثـ‪ٙ‬ب ثٕظبَ اٌزشغ‪ِٕ ً١‬زششح‪ٚ ،‬وً ِـ‪ٛ‬س ‪٠‬جؾش ػٓ رـ‪٠ٛ‬ش ٔظبَ األع‪ٙ‬ضح‬
‫اٌخبطخ ثزـج‪١‬مبرٗ‪ .‬صُ رّىٓ ‪ ِٓ Macintosh‬ؿشػ اٌ‪ٛ‬طٍخ اٌج‪١ٕ١‬خ‬
‫اٌخبطخ ثبٌشع‪ِٛ‬بد ‪ٚ‬األشىبي عٕخ ‪ .1984‬صُ عبء ٔظبَ ‪Windows3‬‬
‫عٕخ ‪ .1990‬ف‪ ٟ‬ثذا‪٠‬خ طذ‪ٚ‬س٘ب‪٠ ٌُ ،‬ىٓ ٔظبَ ‪ٔٚ‬ذ‪ٚٚ‬ص ِغزمشا ‪٠ ٌُٚ‬ىزغت‬
‫اٌشؼج‪١‬خ اٌّشرمجخ ِٓ ؿشف اٌّغزؼٍّ‪ٌ .ٓ١‬ىٓ‪ٔٚ ،‬ذ‪ٚٚ‬ص رؾغٓ ِٓ اٌضِٓ‪.‬‬
‫اٌز‪ٛ‬ط‪ ً١‬اٌج‪ٟٕ١‬‬
‫‪18‬‬
‫رـشلٕب عبثمب ٌؼٍّ‪١‬خ سثؾ اٌؾبع‪ٛ‬ة ثبٌؼبٌُ اٌخبسع‪ .ٟ‬ثؼذ ظ‪ٛٙ‬س‬
‫‪ٚ Unibus‬اوزغبثٗ اٌش‪ٙ‬شح‪ٌٛ ،‬ؽظ أٔٗ ال ‪٠‬غزغ‪١‬ت ٌىً ِزـٍجبد‬
‫اٌشثؾ ف‪ ٟ‬اٌزـج‪١‬مبد اٌّخزٍفخ‪ِّ ،‬ب أد‪ ٜ‬إٌ‪ ٝ‬رـ‪٠ٛ‬ش اٌىض‪١‬ش ِٓ‬
‫اٌ‪ٛ‬طالد اٌج‪١ٕ١‬خ ؽغت اٌزـج‪١‬ك اٌخبص ثٗ ‪ٚ‬عؼخ اٌزاوشح اٌالصِخ‪.‬‬
‫ف‪ ٟ‬اٌز‪ٛ‬ط‪ ً١‬اٌج‪ ٟٕ١‬ثبٌؾبع‪ٛ‬ة‪ ،‬وً ِٓ اٌّ‪ٛ‬طالد اٌج‪١ٕ١‬خ اٌذاخٍ‪١‬خ‬
‫ٌٍؾبع‪ٛ‬ة ‪ ٚ‬اٌز‪ٛ‬ط‪١‬الد اٌج‪١ٕ١‬خ اٌخبسع‪١‬خ اٌّؼ‪١‬بس‪٠‬خ رٍؼت د‪ٚ‬سا‬
‫خبطب ‪ِّٙٚ‬ب ف‪ ٟ‬سثؾ األع‪ٙ‬ضح ثبٌؾبع‪ٛ‬ة ‪ٚ‬رى‪ ٓ٠ٛ‬إٌّبثش‪ .‬رُ‬
‫رـ‪٠ٛ‬ش ‪ ٚ‬رّذ‪٠‬ذ اٌّ‪ٛ‬طً ‪١ٌ VME‬زؼبًِ ِغ األع‪ٙ‬ضح ‪ ِٕٗٚ‬ثشص‬
‫‪ PXI‬اٌّؼ‪١‬بس‪ ٞ‬اٌز‪ ٛ٘ ٞ‬ف‪ ٟ‬األطً ‪ X ٚ PCI‬رؼٕ‪ ٟ‬اٌزّذ‪٠‬ذ‪ .‬وّب‬
‫رُ رّذ‪٠‬ذ اٌّ‪ٛ‬طً ‪١ٌ SCSI‬ظجؼ ‪ SCXI‬اٌّؼ‪١‬بس‪ .ٞ‬وّب ‪ٛ٠‬عذ‬
‫ِ‪ٛ‬طً ‪٠‬ذِظ ث‪.PXI ٚ SCXI ٓ١‬‬

‫‪19‬‬
‫رغزؼًّ اٌىض‪١‬ش ِٓ اٌّ‪ٛ‬طالد اٌج‪١ٕ١‬خ ٌشثؾ األع‪ٙ‬ضح اٌخبسع‪١‬خ ثبٌؾبع‪ٛ‬ة‪ .‬ف‪ٟ‬‬
‫اٌز‪ٛ‬ط‪ ً١‬ػٍ‪ ٝ‬اٌز‪ٛ‬اٌ‪ ٟ‬رّشس وً اٌجزبد ثبٌززبثغ‪ ،‬أ‪ ٞ‬اٌ‪ٛ‬اؽذ رٍ‪ ٛ‬ا‪٢‬خش‪ .‬ف‪ٟ‬‬
‫اٌ‪ٛ‬طٍخ ػٍ‪ ٝ‬اٌز‪ٛ‬اص‪ ٞ‬ر‪ٛ‬عذ خـ‪ٛ‬ؽ ِٕفظٍخ ‪ٌٚ‬ىً ثذ خؾ خبص ثٗ‪٘ .‬زا ‪٠‬ؼٕ‪ٟ‬‬
‫أْ رؾ‪ ً٠ٛ‬اٌج‪١‬بٔبد ػٍ‪ ٝ‬اٌز‪ٛ‬اص‪ ٞ‬أعشع ِٓ رؾ‪ٍٙ٠ٛ‬ب ػٍ‪ ٝ‬اٌز‪ٛ‬اٌ‪ٌ .ٟ‬ىٓ‪ ،‬ف‪ٟ‬‬
‫اٌ‪ٛ‬لذ اٌؾبٌ‪ ٟ‬اٌز‪ٛ‬ط‪ ً١‬ػٍ‪ ٝ‬اٌز‪ٛ‬اٌ‪ ٟ‬ثبعزؼّبي ‪ ٛ٘ USB‬أ‪٠‬ؼب عش‪٠‬غ ‪ٚٚ‬طً‬
‫إٌ‪ 1600MB ٝ‬ف‪ ٟ‬اٌضبٔ‪١‬خ‪ .‬اٌّ‪ٛ‬طالد اٌّؼ‪١‬بس‪٠‬خ اٌشؼج‪١‬خ اٌّز‪ٛ‬فشح ٘‪:ٟ‬‬
‫‪.Firewire ،USB ، GPIB ، RS485 ، RS232C‬‬

‫‪20‬‬
‫ِٓ ٔبؽ‪١‬خ أخش‪ ،ٜ‬األعـ‪ٛ‬أبد اٌّشٔخ‪ٚ ،‬عبئً اإلػالْ ‪ٚ‬اٌزؼٍ‪١‬ك‪ٔٚ ،‬ـبق‬
‫اٌّش‪ٚ‬س‪ Pass Band‬ف‪ ٟ‬اٌّ‪ٛ‬طالد اٌج‪١ٕ١‬خ وٍ‪ٙ‬ب اعزفبدد ِٓ ٔفظ‬
‫اٌىغت ف‪ ٟ‬األداء‪ .‬اٌغ‪ ً١‬اٌغذ‪٠‬ذ ِٓ اٌّ‪ٛ‬طالد ػبٌ‪١‬خ اٌغشػخ ‪PCI‬‬
‫‪ Express, PXI, USB, Ethernet….‬رزّزغ ثٕـبق ِش‪ٚ‬س‬
‫‪ٚ 3Go/s‬أوضش ِٓ رٌه‪ِّ ،‬ب ‪٠‬غّؼ ثم‪١‬بط ٔـبق ِش‪ٚ‬س أ‪ٚ‬عغ‪ .‬األع‪ٙ‬ضح‬
‫االفزشاػ‪١‬خ رغّغ ث‪ ٓ١‬وً ٘زٖ اٌّ‪ٛ‬طالد اٌج‪١ٕ١‬خ ألْ وً ِ‪ٛ‬طً ث‪ٟٕ١‬‬
‫افزشاػ‪ّ٠ ٟ‬ىٓ دِغٗ ف‪ ٟ‬ثشٔبِظ اٌزـج‪١‬ك‪.‬‬
‫االرغبٖ اٌ‪ ،َٛ١‬ف‪ ٟ‬اٌزؼٍ‪ ٛ٘ ،ُ١‬رٍم‪ ٓ١‬ػٍ‪ َٛ‬اٌؾبع‪ٛ‬ة ‪ٚ‬اٌزمٕ‪١‬بد اٌؾذ‪٠‬ضخ‬
‫ِٕز اٌظغش‪ .‬ألْ اٌزؾىُ ثبٌؾبع‪ٛ‬ة ف‪ ٟ‬األع‪ٙ‬ضح أثغؾ ٌالعزؼّبي ِٓ‬
‫األع‪ٙ‬ضح راد اٌز‪ٛ‬ط‪١‬الد اٌزمٍ‪١‬ذ‪٠‬خ‬

‫‪21‬‬
‫اٌجشاِظ اٌج‪١‬بٔ‪١‬خ ٌزظّ‪ ُ١‬إٌظُ‬
‫أُ٘ ِىغت ٌألع‪ٙ‬ضح االفزشاػ‪١‬خ ٘‪ِ ٛ‬مذسر‪ٙ‬ب ػٍ‪ ٝ‬رظّ‪ٔ ُ١‬ظُ ِؾذدح‬
‫اٌّ‪ٛ‬اطفبد ‪ٚ‬رٌه ثبعزؼّبي ثشاِظ ؽبع‪ٛ‬ة ٌٍزظّ‪ ُ١‬ر‪ٛ‬فش ‪ٚ‬طٍخ ث‪١ٕ١‬خ‬
‫ؽذع‪١‬خ(ثذ‪١ٙ٠‬خ ‪ .)Intuitive‬ف‪ ٟ‬األع‪ٙ‬ضح االفزشاػ‪١‬خ‪ ،‬وً ِغزؼًّ ‪ّ٠‬ىٕٗ‬
‫اخز‪١‬بس اٌخ‪ٛ‬اسصِ‪١‬خ اٌز‪ ٟ‬رٕبعت ع‪ٙ‬بصٖ اٌشخظ‪.ٟ‬‬
‫الثف‪ِ ٛ١‬ضبي ػٍ‪٘ ٝ‬زا االخز‪١‬بس‪ .‬الثف‪٠ ٛ١‬غزؼًّ ٌغخ سع‪َٛ‬‬
‫ث‪١‬بٔ‪١‬خ(ط‪ٛ‬س‪٠‬خ)‪ِ Graphical‬غ رذفك ث‪١‬بٔبد‪٠ٚ ،‬ؾ‪ٚ ٞٛ‬طٍخ ث‪١ٕ١‬خ رغّ‪ٝ‬‬
‫اٌّخـؾ ‪ . Diagram‬الثف‪ٛ٠ ٛ١‬فش ِؾ‪١‬ـب ‪٠‬غبػذ اٌّ‪ٕٙ‬ذع‪ٚ ٓ١‬األوبد‪ٓ١١ّ٠‬‬
‫ف‪ ٟ‬رظّ‪ٔ ُ١‬ظُ ل‪١‬بط خبطخ ث‪.ُٙ‬‬

‫‪22‬‬
‫الثف‪ ٚ ٛ١‬األع‪ٙ‬ضح االفزشاػ‪١‬خ‬
‫وً ِٓ ‪٠‬غّغ ثبألع‪ٙ‬ضح االفزشاػ‪١‬خ أل‪ٚ‬ي ِشح ‪٠‬زغبءي ػٓ ِغضا٘ب؟‬
‫ٌإلعبثخ ػٍ‪ ٝ‬اٌغؤاي‪٠ ،‬غت أْ ٕٔظش إٌ‪ ٝ‬رـ‪ٛ‬س األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪.VI‬‬
‫ِٕز ثذا‪٠‬خ اعزؼّبي اٌؾبع‪ٛ‬ة‪ ،‬وبْ د‪ٚ‬سٖ األعبع‪ ٟ‬ف‪ ٟ‬اٌّشالجخ ‪ٚ‬اٌزؾىُ‪،‬‬
‫صُ رـ‪ٛ‬س رـ‪ٛ‬سا ػغ‪١‬جب ِغ اٌضِٓ‪ِ .‬غ رـ‪ٛ‬س اعزؼّبي اٌؾبع‪ٛ‬ة‪،‬‬
‫رؼبػفذ ‪ٚ‬ظبئف اٌٍ‪ٛ‬ؽبد األِبِ‪١‬خ ٌألع‪ٙ‬ضح اٌّز‪ٛ‬فشح ِٓ خالي‬
‫اٌ‪ٛ‬طالد اٌج‪١ٕ١‬خ‪٘ .‬ىزا‪ٌٚ ،‬ذد فىشح اٌزؾىُ ف‪ ٟ‬األع‪ٙ‬ضح ِٓ خالي‬
‫اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ ‪ ٚ‬اٌؾبع‪ٛ‬ة ِؼب‪٘ .‬ىزا عبءد فىشح األع‪ٙ‬ضح االفزشاػ‪١‬خ‪.‬‬
‫ثذأد ٘زٖ اٌفىشح ػٕذِب وبْ ‪ GPIB‬األوضش شؼج‪١‬خ ث‪ ٓ١‬اٌّ‪ٛ‬طالد‪ٌ .‬زٌه‬
‫‪ّ٠‬ىٓ اٌم‪ٛ‬ي أْ ‪ ٛ٘ GPIB‬أ‪ ٚ‬ع‪ٙ‬بص افزشاػ‪ ٟ‬رُ اػزّبدٖ‪٘ .‬ىزا‪،‬‬
‫أطجؾذ ‪VI‬رمٕ‪١‬خ ِغزمٍخ ثزار‪ٙ‬ب ‪ٚ‬أزششد رـج‪١‬مبر‪ٙ‬ب ف‪ ٟ‬اٌؼذ‪٠‬ذ ِٓ‬
‫اٌزـج‪١‬مبد ‪ّ٠‬زذ ِٓ اٌّخزجشاد اٌزغش‪٠‬ج‪١‬خ إٌ‪ ٝ‬اٌزـج‪١‬مبد اٌّؤرّزخ‬
‫اٌىج‪١‬شح‪....،‬‬
‫‪23‬‬
‫ِٕز اٌجذا‪٠‬خ‪ ،‬رشؼجذ رمٕ‪١‬بد ‪ VI‬اٌّزؼذدح األ‪ٚ‬عٗ ‪ٚ‬اٌّجٕ‪١‬خ‬
‫ػٍ‪ ٝ‬اٌؾبع‪ٛ‬ة‪ .‬عش ٔغبػ ‪ ٛ٘ VI‬اٌزؾ‪ٛ‬ي ف‪ ٟ‬عؼً األع‪ٙ‬ضح‬
‫رو‪١‬خ ثبسرجبؿ‪ٙ‬ب ثجشاِظ اٌؾبع‪ٛ‬ة‪ .‬اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ‬
‫ٌٍؾبع‪ٛ‬ة أطجؾذ رّضً اٌؾغبعبد ‪ Sensors‬اٌؾبٌ‪١‬خ‬
‫ٌٍزؾغظ ‪ٚ‬اٌم‪١‬بَ ثبٌم‪١‬بط‪ِ ،‬ضً االصد‪ٚ‬اط اٌؾشاس‪،ٞ‬‬
‫اٌمٕبؿش‪ٚ .... ،‬اٌّشغالد ٌزغ‪١١‬ش إٌظبَ ِضً اٌّفبر‪١‬ؼ‪،‬‬
‫اٌّؾشوبد‪ ،‬اٌظّبِبد‪ٚ....،‬وً إعشاء ‪ِٚ‬ؼبٌغخ ‪٠‬زُ ػٓ‬
‫ؿش‪٠‬ك اٌجشٔبِظ‪.‬‬
‫‪ّ٠‬ىٓ اعزؼّبي اٌؾبع‪ٛ‬ة اٌشخظ‪ ٟ‬ف‪ ٟ‬اٌزؼبًِ ِغ ‪ِٓ VI‬‬
‫خالي ٔظُ رشغ‪ٔٚ ً١‬ذ‪ٚٚ‬ص ‪ٕ١ٌ ٚ‬ىظ ‪ .Linux‬وّب ‪ّ٠‬ىٓ‬
‫اعزؼّبي ٔظُ ‪..HP ،Sun ،Macintosh‬‬
‫وً ِٕبثش ‪ VI‬رغزؼًّ ‪ٚ‬طٍخ اٌشع‪ َٛ‬اٌج‪١ٕ١‬خ‬
‫ٌٍّغزؼًّ(‪،GUI ) Graphical User Interface‬‬
‫ٌزـ‪٠ٛ‬ش‪ ،‬رٕف‪١‬ز ‪ٚ‬رؾم‪١‬ك اٌؾٍ‪ٛ‬ي‪.‬‬
‫اٌؾٍ‪ٛ‬ي ثبعزؼّبي ‪ VI‬رذ‪ٚ‬س ؽ‪ٛ‬ي اعزؼّبي اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ ٌ‪ٙ‬ذف ػبَ ‪٠‬زّضً ف‪ٟ‬‬
‫رؾظ‪ ً١‬اٌج‪١‬بٔبد ‪ ٌٛٚ‬ػٍ‪ ٝ‬ؽغبة اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ اٌغب٘ضح‪ .‬اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ‬
‫اٌّظّّخ أل٘ذاف ػبِخ ػٍ‪ٙ١‬ب ؿٍت أوضش ِٓ اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ اٌغب٘ضح ٌ‪ٙ‬ذف‬
‫ِؼ‪ .ٓ١‬ثبإلػبفخ إٌ‪ ٝ‬اٌفشق ف‪ ٟ‬اٌزىٍفخ ث‪ ٓ١‬إٌ‪ٛ‬ػ‪ّ٠ ٓ١‬ىٓ أْ ‪٠‬ؼ‪ٛ‬ي ‪٠ٚ‬ؼزّذ ػٍ‪ٝ‬‬
‫اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ ٌ‪ٙ‬ذف ػبَ وّب رزّ‪١‬ض ثبٌؼّ‪١ِٛ‬خ‪.‬‬

‫‪25‬‬
‫اٌجشِغخ اٌزمٍ‪١‬ذ‪٠‬خ ‪ٚ‬اٌجشِغخ(اٌظ‪ٛ‬س‪٠‬خ) اٌّجٕ‪١‬خ ػٍ‪ ٝ‬اٌشع‪ِٛ‬بد ‪ٚ‬األشىبي‬
‫اٌّشغالد رزّضً ف‪ ٟ‬اٌ‪ٛ‬طالد اٌج‪١ٕ١‬خ ٌٍّى‪ٔٛ‬بد اٌّبد‪٠‬خ ‪ٚ‬األع‪ٙ‬ضح ‪ِ ٟ٘ٚ‬ز‪ٛ‬فشح‬
‫ثىضشح‪٘ٚ ،‬زا ‪٠‬ؾذ ِٓ اٌزىٍفخ ‪ ِٓٚ‬صِٓ اٌزـ‪٠ٛ‬ش ف‪ ٟ‬اٌزـج‪١‬مبد اٌز‪ ٟ‬رغزؼٍّ‪ٙ‬ب‬
‫‪ٚ‬ؽغت ِـ‪ٛ‬س األع‪ٙ‬ضح اٌز‪٠ ٞ‬ؼـش إٌ‪ ٝ‬إ‪٠‬غبد اٌجشٔبِظ اٌّشغً إٌّبعت ٌّٕبثش‬
‫‪ VI‬أ‪ ٚ‬االعزؼبٔخ ثّض‪ٚ‬د‪٘ ٞ‬زٖ اٌّشغالد‪ ِٓ .‬ث‪٘ ٓ١‬زٖ إٌّزغبد ‪ّ٠‬ىٓ االػزّبد‬
‫ػٍ‪ِ ٝ‬شغالد الثف‪ ٛ١‬اٌز‪ ٟ‬رغزؼًّ ف‪ ٟ‬اٌزؾّ‪ ً١‬اٌزؾز‪ ٟ‬رمش‪٠‬جب ف‪ ٟ‬وً األع‪ٙ‬ضح ِضً‬
‫‪.....Matrox ،Tektronics ، HP‬‬
‫اٌ‪ٙ‬ذف ِٓ ٘زٖ اٌزشاو‪١‬ت اٌز‪ ٟ‬رغّغ ث‪ ٓ١‬اٌّشغً ‪ٚ‬اٌغ‪ٙ‬بص ٘‪ ٛ‬اٌ‪ٛ‬ط‪ٛ‬ي إٌ‪ ٝ‬أداء‬
‫األع‪ٙ‬ضح اٌزمٍ‪١‬ذ‪٠‬خ ثذلخ أوجش ‪ٚ‬ثغؼش الً‪ .‬وّب ‪ّ٠‬ىٓ رؼّ‪ ُ١‬اعزؼّبٌ‪ٙ‬ب ف‪ ٟ‬ؽبالد‬
‫ِزشبث‪ٙ‬خ‪.‬‬

‫‪26‬‬
‫‪٠‬شرجؾ رـ‪ٛ‬س ‪ VI‬ثزـ‪ٛ‬س اٌؾبع‪ٛ‬ة ‪ٚ‬اٌزمذَ اٌؾبطً ف‪ ٟ‬اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ‬
‫‪ٚ‬اٌجشِغخ‪ٚ .‬طٍخ اٌشع‪ِٛ‬بد اٌج‪١ٕ١‬خ ٘‪ ٟ‬أ‪٠‬ؼب ٌؼجذ د‪ٚ‬سا ِ‪ّٙ‬ب ف‪ٟ‬‬
‫رـ‪٠ٛ‬ش ‪ٚ ،VI‬أطجؾذ ػٕظشا أعبع‪١‬ب ف‪ ٟ‬ثشاِظ ‪ِ .VI‬غ رـ‪ٛ‬س‬
‫اعزؼّبي شبشخ اٌؾبع‪ٛ‬ة ف‪ ٟ‬اٌشع‪ِٛ‬بد ‪ٚ‬األشىبي أطجؾذ اٌزـج‪١‬مبد‬
‫اٌزفبػٍ‪١‬خ ع‪ٍٙ‬خ‪ .‬ف‪ٔ ٟ‬فظ اٌ‪ٛ‬لذ رـ‪ٛ‬سد لذسح اٌّؼبٌغبد ف‪ ٟ‬اٌؾ‪ٛ‬عجخ‬
‫‪ٚ‬رؼذد ؽذ‪ٚ‬دا ِؼزجشح‪.‬‬
‫‪ّ٠‬ىٓ ؽظش رـ‪ٛ‬س ‪ VI‬ف‪ ٟ‬صالصخ ػٕبطش‪:‬‬
‫‪ِ -1‬ؼ‪١‬بس‪٠‬خ ‪ٚ‬رمذَ اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ ‪ٚ‬اٌؾ‪ٛ‬عجخ‪:‬‬
‫ثّب أْ لذسح اٌؾبعجبد رـ‪ٛ‬سد ‪ٚ‬ثشىً س٘‪١‬ت‪ ،‬وبْ ِٓ اٌّّىٓ رـ‪٠ٛ‬ش‬
‫روبء اٌؾبع‪ٛ‬ة اٌشخظ‪ ٟ‬اٌز‪ّ٠ ٞ‬ضً لٍت إٌظبَ‪.‬‬
‫‪ -2‬رـ‪ٛ‬س ‪ٚ‬طٍخ اٌشع‪ َٛ‬اٌج‪١ٕ١‬خ‪:‬‬
‫رمذَ اٌّؾ‪١‬ؾ اٌّؼ‪١‬بس‪ ٞ‬اٌزفبػٍ‪ٌ ٟ‬ؼت د‪ٚ‬سا ِ‪ّٙ‬ب ف‪ ٟ‬رـ‪ٛ‬س ‪،VI‬‬
‫‪ٚ‬اٌفؼً ‪٠‬شعغ إٌ‪Macintosh ٝ‬اٌّجٕ‪ ٟ‬ػٍ‪ِٕ ٝ‬جش ‪Motorola‬‬
‫ِٕز اٌجذا‪٠‬خ‪ .‬ث‪ّٕ١‬ب‪ِٕ ،‬جش ‪٠ ٌُ Intel‬فٍؼ ف‪ ٟ‬رٌه‪.‬‬
‫‪ -3‬رـ‪٠ٛ‬ش ِؼب‪١٠‬ش اٌ‪ٛ‬طالد اٌج‪١ٕ١‬خ‪:‬‬

‫‪27‬‬
‫د‪ٚ‬س اٌّؼ‪١‬بس‪٠‬خ ‪ٚ‬اػؼ ‪ٚ‬عٍ‪ ،ٟ‬فمذ أدد إٌ‪ ٝ‬رمٍ‪١‬ض وّ‪ ُِٙ ٟ‬ف‪ِ ٟ‬غ‪ٛٙ‬د‬
‫اٌزـ‪٠ٛ‬ش‪.‬‬
‫وً ٘زٖ اٌزـ‪ٛ‬ساد ؽذصذ ثبٌز‪ٛ‬اص‪ٚ ٞ‬أ‪ٚ‬طٍذ ‪ VI‬إٌ‪ ٝ‬أداح ِغ‪١‬ـشح ف‪ ٟ‬ػٍّ‪١‬خ‬
‫رـ‪٠ٛ‬ش ‪ٚ‬رٕف‪١‬ز رـج‪١‬مبد األع‪ٙ‬ضح اٌّزؾىُ ف‪ٙ١‬ب ث‪ٛ‬اعـخ ‪ ِٓ VI‬خالي ‪VI‬‬
‫ِز‪ٛ‬اعذح داخً اٌغ‪ٙ‬بص رارٗ‪ .‬وّب ٘‪ِ ٛ‬ز‪ٛ‬فش ف‪ ٟ‬أع‪ٙ‬ضح ساعُ اٌزثزثبد‬
‫اٌؾذ‪٠‬ضخ‪٠ .‬غت اٌزفش‪٠‬ك ث‪ VI ٓ١‬اٌّجٕ‪١‬خ ؽ‪ٛ‬ي األع‪ٙ‬ضح ‪ VI ٚ‬اٌّز‪ٛ‬افمخ أ‪ٚ‬‬
‫اٌّزغمخ ِغ األع‪ٙ‬ضح‪ .‬وً ع‪ٙ‬بص ِشرجؾ ث‪ٛ‬طٍخ ث‪١ٕ١‬خ ِغ اٌؾبع‪ٛ‬ة ‪٠‬غّ‪ٝ‬‬
‫ِز‪ٛ‬افك أ‪ِ ٚ‬زغُ ‪ِ Compatible‬غ ‪ِ VI‬ضً ‪، GPIB‬‬
‫‪...،RS232C‬سغُ أْ اٌز‪ٛ‬افك ِغ اٌؾبع‪ٛ‬ة ‪ّ٠‬ىٓ أْ ‪٠‬زغ‪١‬ش‪ .‬ث‪ّٕ١‬ب‬
‫‪VI‬اٌّجٕ‪١‬خ ؽ‪ٛ‬ي األع‪ٙ‬ضح رؾزبط إٌ‪ ٝ‬ؽبع‪ٛ‬ة ٌزشغ‪ٍٙ١‬ب‪ٚ ،‬لذسار‪ٙ‬ب اٌزشغ‪١ٍ١‬خ‬
‫ِج‪ٕ١‬خ ؽ‪ٛ‬ي اٌؾبع‪ٛ‬ة‪ِ .‬ضً ٘زٖ األع‪ٙ‬ضح ‪ّ٠‬ىٓ ر‪ٛ‬ط‪ٍٙ١‬ب ِجبششح ثّ‪ٛ‬طً‬
‫اٌؾبع‪ٛ‬ة ‪ Computer Bus‬أ‪ ٚ‬ثز‪ٛ‬ط‪ٍٙ١‬ب ثشبع‪ Chassis ٟ‬ع‪ٙ‬بص‬
‫شؼج‪ِ ٟ‬ضً ‪ VXI‬أ‪.PXI ٚ‬‬

‫‪28‬‬
‫ثشٔبِظ الثف‪ٛ١‬‬
‫ثشٔاابِظ الثف‪١‬اا‪٘ ٛ‬اا‪ٔ ٛ‬ظاابَ رـاا‪٠ٛ‬ش‪٠ ٞ‬غاازؼًّ فاا‪ ٟ‬اٌظاإبػخ‪ ،‬اٌزغاابسة‪ ،‬اٌم‪١‬اابط‪،‬‬
‫اٌزؼٍاا‪ٚ ُ١‬رـج‪١‬ماابد اٌاازؾىُ ا‪ٌ٢‬اا‪٘ .ٟ‬اازا اٌجشٔاابِظ ِجٕاا‪ ٟ‬ػٍاا‪ ٝ‬اٌجشِغااخ ثبٌشعاا‪َٛ‬‬
‫‪ٚ‬األشىبي(اٌظ‪ٛ‬س‪٠‬خ) اٌج‪١‬بٔ‪١‬اخ ‪Graphical Programming Language‬‬
‫ِىاا‪ِ ْٛ‬اآ اٌىض‪١‬ااش ِاآ اٌؼمااذ ‪ِٛ nodes‬طااٍخ ثجؼؼاا‪ٙ‬ب اٌااجؼغ‪ِ ،‬اآ اٌ‪١‬غاابس إٌاا‪ٝ‬‬
‫اٌ‪ّ١‬اا‪ .ٓ١‬ثؼىااظ اٌجشِغااخ إٌظاا‪١‬خ اٌزمٍ‪١‬ذ‪٠‬ااخ ثشٔاابِظ الثف‪١‬اا‪٠ ٛ‬ؾاا‪ ٞٛ‬اٌزشعّااخ ا‪١ٌ٢‬ااخ‬
‫اٌّغاازّشح ‪ٚ Continuous Auto-Compiling‬اٌؼذ‪٠‬ااذ ِاآ اٌ‪ٛ‬ظاابئف‬
‫ٌزظااّ‪ ،ُ١‬رؾٍ‪١‬ااً ‪ ٚ‬إظ‪ٙ‬اابس اٌّؼـ‪١‬اابد‪ .‬ثؾ‪١‬ااش‪٠ ،‬خجااشن اٌجشٔاابِظ أ‪٠‬اآ ‪ٚ‬لااغ اٌخـاا‬
‫ِجبششح‪ .‬الثف‪٠ ٛ١‬جذأ اٌؼذ ِٓ اٌظافش‪ .‬وّاب أْ ِخــابد الثف‪١‬ا‪١ٌ ٛ‬غاذ ِضاً اٌاذ‪ٚ‬ائش‬
‫اٌى‪ٙ‬شثبئ‪١‬ااخ اٌّى‪ٔٛ‬ااخ ِاآ اٌّمب‪ِٚ‬اابد ‪ٚ‬اٌّىضفاابد ‪ٚ‬اٌااذ‪ٚ‬ائش اٌّزىبٍِااخ ‪ .ICs‬ثشٔاابِظ‬
‫الثف‪٠ ٛ١‬ؼ‪ٛ‬ع ٌغبد اٌجشِغخ اٌّجٕ‪١‬خ ػٍ‪ ٝ‬إٌظ‪ٛ‬ص‪ .‬ف‪ ٟ‬الثف‪١‬ا‪ ٛ‬راش‪ ٜ‬ثؼ‪١ٕ١‬اه و‪١‬اف‬
‫رجٕ‪ٔ ٟ‬ظبِه ثئػبفخ أع‪ٙ‬ضح ‪ٚ‬ر‪ٛ‬ط‪ٍٙ١‬ب ثجؼؼ‪ٙ‬ب اٌجؼغ ‪ ،‬وّاب رزابثغ راذفك اٌج‪١‬بٔابد‬
‫‪ٚ‬عش‪٠‬بٔ‪ٙ‬ب ِٓ ع‪ٙ‬بص إٌ‪ ٝ‬آخاش‪ .‬اٌجشِغاخ ثبعازؼّبي الثف‪١‬ا‪ ٛ‬ال رؾزابط إٌا‪ ٝ‬وزبثاخ ‪ٚ‬ال‬
‫٘غبء‪.‬‬

‫‪29‬‬
‫الثف‪١‬ااا‪ِ ٛ‬ااآ شاااشوخ ٔبشااا‪ٔٛ١‬بي أغااازشِٕزظ ‪ NI‬ثشٔااابِظ سائاااذ فااا‪ ٟ‬اٌّ‪١‬اااذاْ‬
‫اٌظٕبػ‪ ٛ٘ٚ ،ٟ‬أداح الخزجبس ٌٍزظّ‪ ،ُ١‬اٌم‪١‬بط‪ٚ ،‬اٌزؾىُ ف‪ ٟ‬إٌظُ‪ِٕ .‬از ثذا‪٠‬اخ‬
‫اعااازؼّبٌٗ عااإخ ‪ ، 1986‬اٌّ‪ٕٙ‬ذعااا‪ٚ ْٛ‬األوااابد‪ ،ْٛ١ّ٠‬ؽااا‪ٛ‬ي اٌؼااابٌُ‪ ،‬اٌاااز‪ٓ٠‬‬
‫اخزبس‪ٚ‬ا الثف‪ ٛ١‬ف‪ ٟ‬رـا‪٠ٛ‬ش اٌجشِغاخ ثبٌشعا‪ٚ َٛ‬األشاىبي ٌّشابس‪٠‬ؼ‪ِ ُٙ‬آ خاالي‬
‫ِشاؽااً رظااّ‪ ُ١‬إٌّاازظ سثؾاا‪ٛ‬ا إٌ‪ٛ‬ػ‪١‬ااخ فاا‪ ٟ‬إٌّاازظ‪ ،‬صِٕااب ألظااش ٌزغاا‪٠ٛ‬مٗ‪،‬‬
‫‪ٚ‬وض‪١‬ااشا ِاآ اٌذلااخ فاا‪ ٟ‬اٌزظاإ‪١‬غ‪ .‬ثزىبِااً ِؾاا‪١‬ؾ الثف‪١‬اا‪ِ ٛ‬ااغ اٌ‪ٛ‬طااٍخ اٌج‪١ٕ١‬ااخ‬
‫‪ٚ‬إشاابساد اٌؼاابٌُ اٌؾم‪١‬ماا‪ ،ٟ‬رؾٍ‪١‬ااً اٌج‪١‬بٔاابد ٌٍؾظاا‪ٛ‬ي ػٍاا‪ ٝ‬اٌّؼٍ‪ِٛ‬ااخ اٌذل‪١‬مااخ‪،‬‬
‫‪ٚ‬رمبعُ إٌزبئظ‪ّ٠ ،‬ىٓ اٌاذفغ إٌا‪ ٝ‬األِابَ ثبإلٔزبع‪١‬اخ ِآ خاالي اٌزٕظا‪ .ُ١‬ثّاب أْ‬
‫الثف‪١‬اا‪ّ٠ ٛ‬زٍااه طاافخ اٌّش‪ٔٚ‬ااخ ػٕااذ اٌجشِغااخ ‪ٚ‬اٌزاااٌف ِااغ األع‪ٙ‬ااضح اٌغااب٘ضح‬
‫اٌخبطخ ثبٌزغشثخ‪ ،‬اٌم‪١‬ابط‪ٚ ،‬اٌازؾىُ‪ّ٠ .‬ىآ إلبِاخ رـج‪١‬مابد رّزاذ ِآ ِشالجاخ‬
‫دسعخ اٌؾشاسح اٌجغ‪١‬ـخ ؽز‪ِ ٝ‬ؾبوبح إٌظُ اٌّؼمذح ‪ٚ‬اٌزؾىُ ف‪ٙ١‬ب‪.‬‬

‫‪30‬‬
‫● وزبثخ اٌجشاِظ ثبعزؼّبي ثشاِظ الثف‪ ،ٛ١‬اٌّغّبح أع‪ٙ‬ضح افزشاػ‪١‬خ‬
‫‪.VIs‬‬
‫● اٌزّىٓ ِٓ إصاٌخ اٌؼًٍ ‪،‬اوزشبف ‪ٚ‬رظؾ‪١‬ؼ األخـبء ثبعزؼّبي‬
‫رمٕ‪١‬بد ِزؼذدح‪.‬‬
‫● ِؼبٌغخ وً ِٓ ‪ٚ‬ظبئف األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪ VIs‬اٌغب٘ضح‬
‫ٌالعزؼّبي‪.‬‬
‫●رظّ‪ٚ ُ١‬طالد ث‪١ٕ١‬خ ‪ٚ‬فمب ٌّ‪ٛ‬اطفبد ِؾذدح ِٓ ؿشف اٌّغزؼًّ‪.‬‬
‫●ؽفظ اٌج‪١‬بٔبد ف‪ٍِ ٟ‬فبد ‪ٔٚ‬شش٘ب ػٍ‪ ٝ‬شىً ِخـؾ ث‪١‬بٔ‪ ٟ‬أ‪ ٚ‬خش‪٠‬ـخ‪.‬‬
‫●خٍك رـج‪١‬مبد رغزؼًّ إٌبلً اٌج‪ ٟٕ١‬ألغشاع ػبِخ ‪ GPIB‬أ‪ٚ‬‬
‫أع‪ٙ‬ضح اٌزغٍغً ‪. Serial Instruments‬‬
‫● اعزؼّبي ‪ٌ DAQ‬زؾظ‪ ً١‬اٌج‪١‬بٔبد‪.‬‬
‫● ‪ٚ‬ظبئف رؾٍ‪ ً١‬عب٘ضح ٌالعزؼّبي ٌّؼبٌغخ اٌج‪١‬بٔبد‪.‬‬
‫● اٌجؾش ػٓ اٌؾٍ‪ٛ‬ي اٌّضٍ‪ٌٍ ٟ‬غشػخ ‪ٚ‬أداء ثشاِظ الثف‪ ٛ١‬اٌز‪ ٟ‬رُ‬
‫رظّ‪ّٙ١‬ب‬
‫‪31‬‬
‫●اعزؼّبي رمٕ‪١‬بد ِزمذِخ وبٌ‪١ٙ‬بوً(اٌجٕ‪.Structures )ٟ‬‬
‫●اٌزؾىُ ف‪ٔٚ VIs ٟ‬شش اٌج‪١‬بٔبد‪.‬‬
‫●اعزؼّبي الثف‪ ٛ١‬ف‪ ٟ‬خٍك رـج‪١‬مبد ِؼ‪ٕ١‬خ‪.‬‬
‫ثؼذ وً ٘زا‪ّ٠ ،‬ىٓ اٌم‪ٛ‬ي أْ الثف‪ِٕ ٛ١‬زظ ِّزبص شبًِ ‪ٚ‬‬
‫‪ٚ‬اعغ‪٠ ،‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬س‪ٚ‬اثؾ ِٓ أد‪ٚ‬اد ‪ٚ‬ثشاِظ ػذ‪٠‬ذح ‪،‬‬
‫ِزٕ‪ٛ‬ػخ‪ ٚ ،‬لبثٍخ ٌٍزـ‪ٛ‬س‪ .‬الثف‪ٔ ٌٗ ٛ١‬ضػخ رالءَ ‪ٚ‬رزى‪١‬ف ِغ‬
‫‪Fire-wire,‬اٌ‪ٛ‬طالد اٌج‪١ٕ١‬خ اٌّؼ‪١‬بس‪٠‬خ ‪ٚ‬اٌغذ‪٠‬ذح ِضً‬
‫‪ ....‬اٌز‪ ٟ‬ثذأد رؾزً اٌ‪ٛ‬طالد ‪USB, Bluetooth‬‬
‫‪ ..‬وّب أْ الثف‪١ِ ٌٗ ٛ١‬ضح ‪RS232C, GPIB‬اٌزغٍغٍ‪١‬خ ِضً‬
‫‪MATLAB,‬اٌز‪ٛ‬اطً ِغ اٌىض‪١‬ش ِٓ ثشاِظ اٌّؾبوبح‬
‫‪Simulink‬‬

‫‪32‬‬
‫الثف‪ٚ ٛ١‬األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪VI‬‬
‫انسذ ‪ VI‬يشذثظ ترغٕس ‪ ، LabVIEW‬ز‪ٛ‬ث ذى ذُف‪ٛ‬ز أٔل ًَٕرج‬
‫انثشيدح(انظٕس‪ٚ‬ح) تانشعٕياخ ٔاألشكال‪ٔ .‬يُز أكثش يٍ ستغ قشٌ تق‪ٙ‬‬
‫التف‪ ٕٛ‬يرشتؼا ػهٗ ػشػ انثشيدح انظٕس‪ٚ‬ح‪ .‬اعرًذ التف‪ ٕٛ‬أفكاسِ يٍ‬
‫زضيح انثشايح انداْضج ف‪ٔ .Apple Macintosh ٙ‬عٕس‬
‫‪ LabVIEW2‬كًرشخى ‪ Compiler‬تشايح تذال يٍ يفغش‬
‫‪Interpret‬نثشايح خاْضج‪ْ .‬زِ انرقُ‪ٛ‬ح اندذ‪ٚ‬ذج انًؼرًذج زغُد يٍ األداء‬
‫تك‪ٛ‬ف‪ٛ‬ح يؼرثشج‪ .‬ف‪ ٙ‬عُح ‪1992‬ذى عشذ ‪ LabVIEW‬ػٍ عش‪ٚ‬ق‬
‫َٔذٔٔص‪ .‬ثى ذى ذؼً‪ٛ‬ى اعرؼًال ‪ LabVIEW3‬ف‪Macintosh, PC, ٙ‬‬
‫‪... SUN‬عُح ‪ٔ .1993‬ف‪ ٙ‬عُح ‪ 1999‬أطثر التف‪ ٕٛ‬يرٕفشا ف‪َ ٙ‬ظاو‬
‫‪ .Linux‬ف‪َ ٙ‬غخح التف‪ 6ٕٛ‬ذى اعرؼًال االَرشَد‪ .‬ف‪ ٙ‬انُغخح التف‪ 7ٕٛ‬ذى‬
‫انرثغ‪ٛ‬ظ ٔاعرؼًال انًغاػذاخ ٔانًغشػاخ ‪Express & Assistants‬‬
‫ٔ انًغاػذ انشقً‪ ٙ‬انشخظ‪..PDA ٙ‬‬
‫‪33‬‬
‫ذٕخذ َغخح ‪ LabVIEW RT‬يٕخٓح نرغث‪ٛ‬قاخ انضيٍ انسق‪ٛ‬ق‪ٔ ،ٙ‬‬
‫‪ًٚ ٔ Bridge VIEW‬كٍ ذغً‪ٛ‬رٓا ‪LabVIEW Industrial‬يٕخٓح‬
‫نرغث‪ٛ‬قاخ انً‪ٛ‬ذاٌ انظُاػ‪ ٙ‬تاعرؼًال زًا‪ٚ‬ح ذرًثم ف‪ ٙ‬كهًح عش‪ٔ ،‬ذرؼايم يغ‬
‫انكث‪ٛ‬ش يٍ انسغاعاخ ٔانًسٕالخ‪ LabVIEW RT .‬طًى‪ ،‬ف‪ ٙ‬انثذا‪ٚ‬ح‪،‬‬
‫نهرؼايم يغ انسٕعثح انًٕصػح ٔذغث‪ٛ‬قاخ انضيٍ انسق‪ٛ‬ق‪ .ٙ‬يشكهح ذشغ‪ٛ‬م‬
‫التف‪ ٕٛ‬تاعرؼًال َٔذٔٔص ْٕ أٌ َٔذٔٔص ن‪ٛ‬ظ َظاو ذشغ‪ٛ‬م ف‪ ٙ‬انضيٍ انسق‪ٛ‬ق‪ٙ‬‬
‫‪ٚ ْٕٔ ، RTOS‬رؼايم يغ ذؼذد انؼًه‪ٛ‬اخ تذال يٍ ذؼذد انًٓاو‪ .‬انؼًم تذٌٔ‬
‫‪ RTOS‬ال ‪ٚ‬غًر تانرسكى ترٕق‪ٛ‬د انسهقاخ‪ٔ ،‬ال تضيٍ ذأخ‪ٛ‬ش ػًه‪ٛ‬اخ‬
‫انرغث‪ٛ‬ق‪ .‬كًا أٌ ػًه‪ٛ‬اخ انرٕص‪ٚ‬غ أنساعٕت‪ ٙ‬ذسذ يٍ عؼح راكشج انًؼانح‪.‬‬
‫‪ًٚ‬كٍ تشيدح ‪ RT‬تانرٕافق يغ خٓاص ‪FPGA‬نرسق‪ٛ‬ق ػذد يٍ انًٓاو‬
‫انًشذثغح تانضيٍ انسق‪ٛ‬ق‪.ٙ‬‬
‫أعجبة رف‪ٛ‬ق الثف‪ ٛ١‬وض‪١‬شح‪ٔ ،‬زوش ِٕ‪ٙ‬ب‪:‬‬
‫•‪ٛ٠‬فش ِؾ‪١‬ـب ل‪٠ٛ‬ب ‪ِٚ‬الئّب ٌزـ‪٠ٛ‬ش رـج‪١‬مبد األع‪ٙ‬ضح‪.‬‬
‫•ر‪ٛ‬فش ثشاِظ اٌ‪ٛ‬طالد اٌج‪١ٕ١‬خ ِغ ٘زٖ األع‪ٙ‬ضح‪.‬‬
‫اٌجشاِظ اٌّشغٍخ ف‪ ٟ‬الثف‪ِ ٛ١‬ز‪ٛ‬فشح ٌىض‪١‬ش ِٓ األع‪ٙ‬ضح‬

‫‪34‬‬
‫•‪ّ٠‬ىٓ رؾّ‪ ً١‬الثف‪ ٛ١‬داخً ساعُ اٌزثزثبد وّب ‪ّ٠‬ىٓ اعزؼّبي الثف‪ِٓ ٛ١‬‬
‫داخً ساعُ اٌزثزثبد‪.‬‬
‫•الثف‪٠ ٛ١‬غّؼ ٌشاعُ اٌزثزثبد أْ ‪٠‬زظشف ؽغت ‪ٚVI‬ؽغت اخز‪١‬بس‬
‫اٌّغزؼًّ‪.‬‬
‫رـ‪ٛ‬س ‪ VI‬أد‪ ٜ‬إٌ‪ ٝ‬رـ‪ٛ‬س أد‪ٚ‬اد اٌجشِغخ اٌظ‪ٛ‬س‪٠‬خ‪ٌ .‬ىٓ‪ ،‬اػزجبس ‪VI‬‬
‫ِؾذ‪ٚ‬دح ػٍ‪ ٝ‬اٌجشِغخ ثبٌشع‪ِٛ‬بد ‪ٚ‬األشىبي فمؾ غ‪١‬ش طؾ‪١‬ؼ‪ّ٠ .‬ىٓ رٕف‪١‬ز‬
‫‪ VI‬ثبعزؼّبي ٌغبد اٌجشِغخ اٌزمٍ‪١‬ذ‪٠‬خ‪ ،‬ثزّذ‪٠‬ذ اٌّىزجبد‪ ،‬أ‪ ٚ‬ثبعزؼّبي‬
‫ثشاِظ اٌزشعّخ ِضً ‪٘ .CVI LabVIEW‬زا ‪٠‬ؼٕ‪ ٟ‬أْ ‪١ٌ VI‬غذ ؽىشا‬
‫ػٍ‪ ٝ‬الثف‪ٚ ٛ١‬ال ػٍ‪ِ ٝ‬ؾ‪١‬ؾ رذفك اٌج‪١‬بٔبد‪ .‬وّب ‪ّ٠‬ىٓ اٌزذاخً ث‪ ٓ١‬اٌجشِغخ‬
‫اٌزمٍ‪١‬ذ‪٠‬خ ‪ ٚ‬الثف‪.ٛ١‬‬

‫‪35‬‬
‫وً ‪ٚ‬طٍخ اٌشع‪ َٛ‬اٌج‪١ٕ١‬خ ٌٍّغزؼًّ( ‪Graphical User‬‬
‫‪ّ٠ GUI ) Interface‬ىٓ اػزجبس٘ب ِى‪ٔٛ‬خ ِٓ ػٕظش‪:ٓ٠‬‬
‫‪ٚ‬طٍخ اٌّغزؼًّ اٌج‪١ٕ١‬خ ‪ٚ‬اٌى‪ٛ‬د اٌّغـش‪ٚ .‬طٍخ اٌّغزؼًّ‬
‫اٌج‪١ٕ١‬خ ٌُ رزغ‪١‬ش ؽغت االعزؼّبي اٌزمٍ‪١‬ذ‪ ٞ‬أ‪ ٚ‬اٌظ‪ٛ‬س‪ ٞ‬أ‪ٞ‬‬
‫ثبٌشعُ ‪ٚ‬األشىبي‪ .‬ف‪ ٟ‬ؽبٌخ اٌى‪ٛ‬د اٌّغـش ف‪ ٟ‬اٌجذا‪٠‬خ‪ ،‬رظ‪ٙ‬ش‬
‫األِ‪ٛ‬س ِخزٍفخ‪ .‬اٌى‪ٛ‬د ف‪ ٟ‬اٌٍغبد اٌزمٍ‪١‬ذ‪٠‬خ ِضً ‪٠ C‬ؾ‪ٞٛ‬‬
‫ػذدا ِٓ اٌجشاِظ أ‪ ٚ‬اٌش‪ٚ‬ر‪ ،ٓ١‬ث‪ّٕ١‬ب ف‪ٌ ٟ‬غخ ‪(G‬اٌظ‪ٛ‬س‪٠‬خ) ال‬
‫ٔش‪ ٜ‬أصشا ٌٍٕض‪ .‬وً ِب ٔشاٖ ٘‪ِ ٛ‬غّ‪ٛ‬ػخ ِٓ األ‪٠‬م‪ٔٛ‬بد‬
‫ِشرجـخ ثجؼؼ‪ٙ‬ب اٌجؼغ ثخـ‪ٛ‬ؽ ِزؼذدح األٌ‪ٛ‬اْ‪ٌ .‬ىٓ‪ ،‬اٌفشق‬
‫ثغ‪١‬ؾ ث‪ ٓ١‬ؿش‪٠‬مز‪ ٟ‬اٌجشِغخ‪ .‬اٌفشق اٌّالؽظ ٘‪ ٛ‬ف‪ ٟ‬اٌفظً‬
‫ث‪ ٓ١‬لبئّز‪ ٟ‬اٌّذاخً ‪ٚ‬اٌّخبسط‪٘ٚ ،‬زا ‪٠‬زّبش‪ِ ٝ‬غ فٍغفخ‬
‫رذفك اٌج‪١‬بٔبد‪ .‬اٌفظً ث‪ ٓ١‬اٌمبئّز‪ّٕ٠ ٓ١‬غ اٌش‪ٚ‬ر‪ ِٓ ٓ١‬رغ‪١١‬ش‬
‫ث‪١‬بٔبد اٌذخً‪.‬‬
‫‪36‬‬
‫اٌّغزمجً ‪ٚ‬اٌز‪ٛ‬لؼبد‬
‫ِغزمجً رظّ‪ ُ١‬إٌظُ ثبعزؼّبي األع‪ٙ‬ضح االفزشاػ‪١‬خ‬
‫األع‪ٙ‬ضح االفزشاػ‪١‬خ ‪ِ VI‬غزّشح ف‪ ٟ‬ثغؾ لذسار‪ٙ‬ب ‪ٚ‬رغزؼًّ ف‪ ٟ‬ػذد‬
‫ِزضا‪٠‬ذ ِٓ اٌزـج‪١‬مبد‪ .‬الثف‪ّ٠ ٛ١‬ىٓ اعزؼّبٌٗ‪١ٌ ،‬ظ فمؾ ف‪ ٟ‬خٍك ثشاِظ‬
‫االخزجبس ػٍ‪ ٝ‬اٌؾبع‪ٛ‬ة‪ٌٚ ،‬ىٓ ف‪ ٟ‬اٌزظّ‪ ُ١‬ثبعز‪ٙ‬ذاف ِؼبٌغبد‬
‫ِغّ‪ٛ‬سح ‪ ٚ‬شجىبد ِجشِغخ ‪٘ .FPGA‬ذف ٘زٖ اٌزىٕ‪ٌٛٛ‬ع‪١‬ب ٘‪ ٛ‬ر‪ٛ‬ف‪١‬ش‬
‫ِؾ‪١‬ؾ فش‪٠‬ذ‪٠ ،‬غزخذَ ف‪ِ ٟ‬غبالد ػذ‪٠‬ذح ِٓ رظّ‪ٔ ُ١‬ظُ االخزجبس ؽز‪ٝ‬‬
‫رؼش‪٠‬ف ‪ٚ‬ظبئف اٌّ‪ٛ‬اد‪ِٕٙ .‬ذع‪ ٛ‬االخزجبس ‪ّ٠‬ىٕ‪ ُٙ‬اٌؼًّ ػٍ‪ ٝ‬إٌظُ‬
‫ثبعزؼّبي اٌ‪ٛ‬ظبئف إٌّبعجخ ‪ٚ‬رغخ‪١‬ش اٌجشاِظ اٌّشافمخ ٌّؼشفخ ‪ٚ‬ظبئف‬
‫إٌظُ‪ .‬ف‪ّ١‬ىٓ خٍك ثشاِظ ٌم‪١‬بط اٌز‪١‬بس اٌّغزّش ‪ٚ‬صِٓ اٌظؼ‪ٛ‬د‬
‫‪....‬ثبعزؼّبي أع‪ٙ‬ضح افزشاػ‪١‬خ ػٍ‪ ٝ‬شىً رشاو‪١‬ت‪ .‬وّب ‪ّ٠‬ىٓ اعزؼّبي‬
‫الثف‪ٌ ٛ١‬زؾٍ‪ ً١‬اٌج‪١‬بٔبد ف‪ ٟ‬اٌضِٓ اٌؾم‪١‬م‪ ،ٟ‬أ‪ ٚ‬رؼش‪٠‬ف خ‪ٛ‬اسصِ‪١‬خ‬
‫فٍزش(ِششؼ) ثبعزؼّبي ‪...... FPGA‬‬
‫‪.‬‬
‫‪37‬‬
‫إْ إِىبٔ‪١‬خ أداء األع‪ٙ‬ضح االفزشاػ‪١‬خ رضداد ‪ِٛ٠‬ب ثؼذ ‪ٌ .َٛ٠‬مذ رُ‬
‫اػزّبد٘ب وجذ‪ٌ ً٠‬ألع‪ٙ‬ضح اٌزمٍ‪١‬ذ‪٠‬خ ف‪ ٟ‬اٌىض‪١‬ش ِٓ اٌزـج‪١‬مبد‪ِٛ .‬اصاح‬
‫ِغ رـ‪ٛ‬س اٌؾبع‪ٛ‬ة اٌّغزّش ‪ٚ‬شجٗ اٌّ‪ٛ‬طالد‪ ٚ ،‬لذساد اٌجشاِظ‬
‫اٌ‪ٙ‬بئٍخ ‪ٚ‬أغغبِ‪ٙ‬ب ِغ وً اٌؾبالد ‪ٚ‬األ‪ٚ‬ػبع‪ ،‬ع‪١‬ى‪ٌ ْٛ‬ألع‪ٙ‬ضح‬
‫االفزشاػ‪١‬خ ‪ٚ‬ػغ ِش‪ٛ‬ق ف‪ ٟ‬اٌّغزمجً اٌمش‪٠‬ت ٌزظّ‪ٔ ُ١‬ظُ‬
‫االخزجبس ‪ٚ‬اٌم‪١‬بط ‪ٚ‬رض‪٠ٚ‬ذ اٌّ‪ٕٙ‬ذع‪ ٓ١‬ث‪ٛ‬عبئً ِغبػذح ف‪١ِ ٟ‬ذأ‪ٟ‬‬
‫اٌم‪١‬بط ‪ٚ‬اٌزؾىُ‬

‫‪38‬‬
‫ِغزمجً اٌجشِغخ(اٌظ‪ٛ‬س‪٠‬خ) ثبٌشع‪ٚ َٛ‬األشىبي‬
‫ِغزمجً ٘زٖ اٌزمٕ‪١‬خ ‪٠‬زّضً ف‪ ٟ‬اٌغشػخ‪ ،‬اٌغ‪ٌٛٙ‬خ‪ٚ ،‬اٌزىٍفخ اٌّزذٔ‪١‬خ‪.‬‬
‫ِٓ اٌّؾزًّ أْ ‪٠‬زضا‪٠‬ذ اٌز‪ٛ‬عٗ ٔؾ‪٘ ٛ‬زٖ اٌزمٕ‪١‬خ ‪ٚ‬ثزغبسع‪٠ .‬غبػذ ف‪ٟ‬‬
‫٘زا اٌزـ‪ٛ‬س ثشِغخ ‪ FPGA‬اٌّز‪ٛ‬فشح ف‪ ٟ‬الثف‪ٚ ٛ١‬ال رز‪ٛ‬فش ف‪ ٟ‬اٌجشِغخ‬
‫اٌزمٍ‪١‬ذ‪٠‬خ‪ ِٓ .‬اٌّؾزًّ أْ ‪٠‬ز‪ٛ‬عغ ٔـبق الثف‪ِ ٛ١‬غزمجال ف‪ ٟ‬اٌجشِغخ‬
‫اٌّ‪ٛ‬صػخ ‪،‬إٌظُ اٌّـ‪ٛ‬لخ(اٌّغّ‪ٛ‬سح)‪ِٚ ،‬ب ‪٠‬شبث‪ٙٙ‬ب‪ ...‬اٌضِٓ اٌؾم‪١‬م‪ٟ‬‬
‫‪ RT‬رُ إدِبعٗ ف‪ ٟ‬الثف‪ ٛ١‬ثبعزؼّبي و‪ٛ‬د ‪ٔ ٚXilinx‬غؼ ف‪ ٟ‬ثشِغخ‬
‫اٌزشاو‪١‬ت ِضً ‪ِ .PXI‬غ رضا‪٠‬ذ اعزؼّبي ‪ FPGA‬وٕظبَ ِؼ‪١‬بس‪ِ ٞ‬فز‪ٛ‬ػ‪،‬‬
‫ع‪ٛ‬ف رظجؼ ‪ٚ‬ظبئف اٌضِٓ اٌؾم‪١‬م‪ ٟ‬عضءا أعبع‪١‬ب ِٓ الثف‪.ٛ١‬‬
‫اٌؾغبعبد اٌزو‪١‬خ أطجؾذ اٌ‪ٙ‬ذف إٌّش‪ٛ‬د‪ .‬ثبعزؼّبي ‪ّ٠ FPGA‬ىٓ‬
‫أْ ٔز وذ ِٓ أْ اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ ٌّؼبٌغخ اإلشبساد اٌشلّ‪١‬خ ‪DSP‬‬
‫رّضً ؽغبعب رو‪١‬ب‪.‬‬
‫ثبخزظبس‬

‫‪39‬‬
‫الثف‪ِ ٛ١‬ضبي ػٍ‪ ٝ‬اٌشثؾ ث‪ ٓ١‬اٌغ‪ٙ‬بص ‪ٚ‬اٌجشِغخ ٔزظ ػٕٗ‬
‫ِؾ‪١‬ؾ ط‪ٛ‬س‪ ٞ‬رـ‪٠ٛ‬ش‪٠ ٞ‬زّزغ ثبألداء ‪ٚ‬اٌّش‪ٔٚ‬خ ٌٍغخ‬
‫اٌجشِغخ‪ِ ،‬غ ‪ٚ‬ظبئف ػبٌ‪١‬خ اٌّغز‪ ٚ ٜٛ‬أشىبي رشاو‪١‬ت‬
‫طّّذ خظ‪١‬ظب ٌزـج‪١‬مبد اٌم‪١‬بط ‪ٚ‬األرّزخ‪.‬‬

‫اٌشىً‪ِ :‬ضبي ػٍ‪ ٝ‬رـ‪٠ٛ‬ش‬


‫اٌى‪ٛ‬د اٌظ‪ٛ‬س‪ ٞ‬ف‪ ٟ‬الثف‪ٛ١‬‬

‫‪40‬‬
Virtual Instrumentation Applications
‫خ‬١‫ضح االفزشاػ‬ٙ‫مبد األع‬١‫رـج‬
• Design ُ١ّ‫اٌزظ‬
– Signal and Image Processing ‫ِؼبٌغخ اإلشبسح‬
‫س‬ٛ‫اٌظ‬ٚ A single graphical development platform
– Embedded System Programming
)‫لخ‬ٛ‫سح(اٌّـ‬ّٛ‫ثشِغخ إٌظُ اٌّـ‬ Design Prototype Deploy
• (PC, DSP, FPGA, Microcontroller)
– Simulation and Prototyping ...‫ّٔزعخ‬ٚ ‫ِؾبوبح‬
• Control ُ‫رؾى‬
– Automatic Controls and Dynamic Systems ُ‫ٔظ‬
ُ‫رؾى‬ٚ ‫خ‬١‫ى‬١ِ‫ٕب‬٠‫د‬
– Mechatronics and Robotics ‫خ‬١ٔٚ‫اٌىزش‬-‫ىب‬١ٔ‫ىب‬١ِ
...‫د‬ٛ‫سث‬
• Measurements ‫بعبد‬١‫ل‬
– Circuits and Electronics ‫خ‬١ٔٚ‫ائش اٌىزش‬ٚ‫د‬
– Measurements and Instrumentation ‫ضح‬ٙ‫أع‬
‫بعبد‬١‫ل‬ٚ

41
Spectrum of Control Applications
ُ‫مبد اٌزؾى‬١‫ِغبالد رـج‬

Industrial Control ‫ انتحكى انصُاعي‬Embedded Control )‫انتحكى انًطىق(انًطًىس‬

Flight Control
Precision Machine Control ٌ‫انتحكى في انطيشا‬
‫انتحكى في دقت اآلنت‬
Process Control
‫انتحكى في انعًهياث‬

Motion Control Engine Control


‫انتحكى انحشكي‬ ‫انتحكى في انًحشكاث‬
42
‫تطبيقاث انتحكى ‪Control Applications‬‬
‫اآلني‬
‫ػٕذ ِٕبلشخ ٔظُ اٌزؾىُ ا‪٠ ،ٌٟ٢‬زجبدس ٌزٕٕ٘ب‬
‫اٌزـج‪١‬مبد اٌّزؼذدح‪ٔ .‬ظُ اٌزؾىُ ف‪ ٟ‬اٌّؾ‪١‬ؾ اٌظٕبػ‪.ٟ‬‬
‫فّضال‪ ،‬ػٍّ‪١‬خ رىش‪٠‬ش اٌض‪ٛ٠‬د‪ ،‬ؽ‪١‬ش د‪ٚ‬س اٌزؾىُ ِ‪ُٙ‬‬
‫عذا ف‪٘ ٟ‬زٖ اٌظٕبػخ‪ٔ .‬ظُ اٌزؾىُ ا‪ ٌٟ٢‬رغزؼًّ ف‪ٟ‬‬
‫اٌؾبوّبد وض‪١‬ش ِٓ اٌظٕبػبد اٌز‪ ٟ‬رغزؼًّ‬
‫اٌّجشِغخ‪ ،‬اٌز‪ ٟ‬رٕفز اٌؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ٟ‬‬
‫اٌزفبػٍ‪ ،ٟ‬أ‪ٔ ٚ‬ظُ اٌزؾىُ اٌّ‪ٛ‬صػخ ف‪ٔ ٟ‬ظُ أوجش‬
‫ؽغّب‪٠ .‬غزؼًّ ٔظبَ اٌزؾىُ ف‪ِ ٟ‬ظبٔغ اإلٔزبط‬
‫االعز‪ٙ‬الو‪ ٟ‬اٌّزؼذدح‪ .‬وّب ‪٠‬غزخذَ اٌزؾىُ ا‪ ٌٟ٢‬ف‪ٟ‬‬
‫ِظبٔغ اٌغ‪١‬بساد‪ ،‬اٌـبئشاد‪ ،‬اإلٌىزش‪١ٔٚ‬بد‪ ،‬اٌزؾىُ‬
‫ثذلخ ف‪ ٟ‬اٌّؾشوبد‪ٚ ،‬آالد اٌغغ‪ٚ ، ً١‬رمٕ‪١‬بد ِزؼذدح‬
‫‪ِٚ‬زمذِخ‪.‬‬
‫‪43‬‬
Topics Covered ‫عخ‬ٚ‫غ اٌّذس‬١‫اػ‬ٌّٛ‫ا‬
A. Review: LabVIEW Environment ٛ١‫ؾ الثف‬١‫ِشاعؼخ ِؾ‬
• Front Panel / Block Diagram ‫خ\اٌّخـؾ‬١ِ‫ؽخ األ‬ٌٍٛ‫ا‬
ٟ‫ل‬ٚ‫اٌظٕذ‬
• Toolbar /Tools Palette ‫اد‬ٚ‫ؽخ األد‬ٌٛ\‫اد‬ٚ‫ت األد‬١‫لؼ‬
B. The Design Process ‫خ‬١ٍّ‫ُ اٌؼ‬١ّ‫رظ‬
1. Modeling ‫رط‬ّٛٔ
2. Control Design ُ‫ُ اٌزؾى‬١ّ‫رظ‬
3. Simulation ‫ِؾبوبح‬
4. Optimization ً‫اٌجؾش ػٓ اٌؾً األِض‬
5. Deployment ‫االٔزشبس‬
44
Review: Open and Run LabVIEW
ٛ١‫ً الثف‬١‫رشغ‬ٚ ‫ فزؼ‬:‫ِشاعؼخ‬
Start » All Programs » National Instruments LabVIEW 8.2
»

Startup Screen:
‫شبشخ اٌجذء‬
Start from a Blank VI:
New » Blank VI
‫خ‬٠‫اٌجذا‬
orٚ‫أ‬
Start from an Example:
‫خ ِٓ ِضبي‬٠‫اٌجذا‬
Examples » Find
Examples…

45
‫‪LabVIEW‬‬ ‫الثف‪ٛ١‬‬
‫الثف‪ٌٍ ٛ٘ ٛ١‬غخ ثشِغخ ط‪ٛ‬س‪٠‬خ ‪٠‬غزخذَ األ‪٠‬م‪ٔٛ‬بد ثذال ِٓ‬
‫اٌخـ‪ٛ‬ؽ إٌظ‪١‬خ ٌخٍك رـج‪١‬مبد‪.‬‬
‫خالفب ٌٍغبد اٌجشِغخ إٌظ‪١‬خ‪ ،‬ؽ‪١‬ش رؾذد األ‪ٚ‬اِش ػٍّ‪١‬خ‬
‫رٕف‪١‬ز اٌجشٔبِظ‪ ،‬الثف‪٠ ٛ١‬غزؼًّ ثشِغخ رذفك اٌج‪١‬بٔبد‪ ،‬ؽ‪١‬ش‬
‫‪٠‬ؾذد رذفك اٌج‪١‬بٔبد رشر‪١‬ت اٌزٕف‪١‬ز ‪ّ٠ .‬ىٓ اعزؼّبي اٌىض‪١‬ش ِٓ‬
‫اٌزـج‪١‬مبد‪ .‬وً اٌجشاِظ اٌّشافمخ ؽغت وً رخظض ٌزـ‪٠ٛ‬ش‬
‫اٌجشاِظ اٌّشافمخ‪.‬‬
‫الثف‪٠ ٛ١‬شًّ أ‪٠‬ؼب وض‪١‬شا ِٓ األد‪ٚ‬اد اٌؼشافخ ٌٍّغبػذح‪،‬‬
‫ٌزشى‪ ً١‬أع‪ٙ‬ضح رؾظ‪ ً١‬اٌج‪١‬بٔبد ‪ٚ‬األع‪ٙ‬ضح اٌّشرجـخ‬
‫ثبٌؾبعجبد ٌجٕبء اٌزـج‪١‬مبد‪.‬‬

‫‪46‬‬
Review: Creating a Virtual Instrument
ٟ‫بص افزشاػ‬ٙ‫ خٍك ع‬:‫ِشاعؼخ‬
• LabVIEW programs are called Virtual Instruments or
VIs.
Vis ‫خ‬١‫ضح افزشاػ‬ٙ‫أع‬:ٛ١‫ ثشاِظ الثف‬ّٝ‫رغ‬
• Each VI has two windows
ْ‫ ٔبفزرب‬ٟ‫بص افزشاػ‬ٙ‫ٌىً ع‬
– Front Panel  User Interface (UI)
‫خ‬١ٕ١‫طٍخ اٌّغزؼًّ اٌج‬ٚ = ‫خ‬١ِ‫ؽخ األِب‬ٌٍٛ‫ا‬
• Controls = User Inputs =ُ‫ػٕبطش اٌزؾى‬
ًّ‫ِذاخً اٌّغزؼ‬
Front Panel
‫خ‬١ِ‫ؽخ األِب‬ٌٍٛ‫ا‬

Block Diagram ٟ‫ل‬ٚ‫اٌّخـؾ اٌظٕذ‬

47
Indicators = Outputs ‫اٌّؤششاد =اٌّخبسط‬
Block Diagram  Program Code
‫د اٌجشٔبِظ‬ٛ‫= و‬ٟ‫ل‬ٚ‫اٌّخـؾ اٌظٕذ‬
Data travels on wires from controls
ُ‫طالد ِٓ ػٕبطش اٌزؾى‬ِٛ ‫بٔبد رٕزمً ِٓ خالي‬١‫اٌج‬
through functions to indicators ٛ‫ظبئف ٔؾ‬ٌٛ‫سا ثب‬ٚ‫ِش‬
‫اٌّؤششاد‬
Blocks execute by Dataflow ‫بٔبد‬١‫ك رٕفز رذفك اٌج‬٠‫اٌظٕبد‬

48
‫ثشاِظ الثف‪ٛ١‬‬
‫)‪.virtual instruments (VIs‬‬
‫ػٕبطش اٌزؾىُ ٘‪ ٟ‬اٌّذاخً ‪ٚ‬اٌّؤششاد ٘‪ٟ‬‬
‫اٌّخبسط‬
‫رغّ‪ ٝ‬أع‪ٙ‬ضح افزشاػ‪١‬خ‬
‫وً ع‪ٙ‬بص افزشاػ‪٠ ٟ‬ؾز‪ ٞٛ‬ػٍ‪ ٝ‬صالصخ أعضاء‪:‬‬
‫‪ -‬اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ‪ :‬رغزؼًّ ٌزفبػً اٌّغزؼًّ‬
‫ِغ األع‪ٙ‬ضح االفزشاػ‪١‬خ‪.‬‬
‫‪ -‬اٌّخـؾ اٌظٕذ‪ٚ‬ل‪٠ :ٟ‬ؾ‪ ٞٛ‬أو‪ٛ‬اد اٌزؾىُ ف‪ٟ‬‬
‫اٌجشٔبِظ‪-.‬‬
‫‪ -‬األ‪٠‬م‪ٔٛ‬خ\ساثـخ ‪:‬رّضً سثؾ ع‪ٙ‬بص افزشاػ‪ٟ‬‬
‫ثغ‪ٙ‬بص افزشاػ‪ ٟ‬آخش‪.‬‬

‫‪49‬‬
‫ف‪ ٟ‬الثف‪ٔ ٛ١‬جٕ‪ٚ ٟ‬طٍخ ِغزؼًّ ث‪١ٕ١‬خ ثبعزؼّبي أد‪ٚ‬اد‬
‫‪ٚ‬أ٘ذاف‪ٚ .‬طٍخ اٌّغزؼًّ اٌج‪١ٕ١‬خ رغّ‪ ٝ‬ثبٌٍ‪ٛ‬ؽخ‬
‫األِبِ‪١‬خ‪.‬‬
‫‪ّ٠‬ىٓ إػبفخ اٌى‪ٛ‬د ثبعزؼّبي ػش‪ٚ‬ع ط‪ٛ‬س‪٠‬خ ٌٍ‪ٛ‬ظبئف‬
‫ٌٍزؾىُ ف‪ ٟ‬أ٘ذاف اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ‪ .‬اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ٟ‬‬
‫‪٠‬ؾ‪٘ ٞٛ‬زا اٌى‪ٛ‬د‪ .‬ثشىً ػبَ ‪٠‬شجٗ اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ٟ‬‬
‫خش‪٠‬ـخ ع‪١‬ش اٌؼٍّ‪١‬بد‪ .‬اٌّغزؼٍّ‪٠ ْٛ‬زفبػٍ‪ِ ْٛ‬غ‬
‫اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ ػٕذ رٕف‪١‬ز اٌجشاِظ‪.‬‬
‫‪ّ٠‬ىٓ ٌٍّغزؼًّ اٌزؾىُ ف‪ ٟ‬رغ‪١‬ش ِذاخً ‪ ٚ‬سؤ‪٠‬خ رغذ‪٠‬ذ اٌج‪١‬بٔبد ف‪ٟ‬‬
‫رغزؼًّ ٌٍّذاخً ِضً ػجؾ ِغـشح اٌضِٓ اٌؾم‪١‬م‪ .ٟ‬ػٕبطش اٌزؾىُ‬
‫رؾىُ ٌ‪ٛ‬ػغ ل‪ ُ١‬ع‪ٙ‬بص إٔزاس‪ ،‬ػجؾ ل‪ِ ُ١‬فزبػ رشغ‪ ً١‬أ‪ٌ ٚ‬ز‪ٛ‬ل‪١‬ف‬
‫ثشٔبِظ‪ .‬اٌّؤششاد رغزؼًّ وّخبسط‪ .‬رشِ‪ِٛ‬زش‪ ،‬إػبءح‪ٚ،‬غ‪١‬ش٘ب‬
‫ِٓ اٌّؤششاد رٕشش ل‪ ُ١‬اٌّخبسط ِٓ اٌجشٔبِظ‪٘ 0‬زٖ ‪ّ٠‬ىٕ‪ٙ‬ب أْ‬
‫رشًّ اٌج‪١‬بٔبد‪ ،‬ؽبالد اٌجشاِظ‪ٚ ،‬غ‪١‬ش٘ب ِٓ اٌّؼٍ‪ِٛ‬بد‪ .‬وً ٌ‪ٛ‬ؽخ‬
‫ػٕبطش رؾىُ أ‪ِ ٚ‬ؤششاد ٌ‪ٙ‬ب ٔ‪ٙ‬بئ‪ِٕ ٟ‬بعت ف‪ ٟ‬اٌّخـؾ‬
‫ِٓ ػٕبطش اٌظٕذ‪ٚ‬ل‪ 0ٟ‬ػٕذ رٕف‪١‬ز ع‪ٙ‬بص افزشاػ‪ ،ٟ‬رزذفك اٌم‪ُ١‬‬
‫اٌزؾىُ ٔؾ‪ ٛ‬انًخطط اٌظٕذ‪ٚ‬ل‪ ،ٟ‬ؽ‪١‬ش رغزؼًّ ف‪ ٟ‬اٌ‪ٛ‬ظبئف ف‪ٟ‬‬
‫اٌّخـؾ‪ٚ ،‬إٌزبئظ رّشس ف‪ٚ ٟ‬ظبئف أخش‪ ٜ‬أ‪ِ ٚ‬ؤششاد ِٓ خالي‬
‫ٌفبد‪.‬‬

‫‪51‬‬
Review: Front Panel Controls Palette
ُ‫ؽخ ػٕبطش اٌزؾى‬ٌٛ ‫خ‬١ِ‫ؽخ األِب‬ٌٍٛ‫ ا‬:‫ِشاعؼخ‬
(Controls & Indicators ‫اٌّؤششاد‬ٚ ُ‫)ػٕبطش اٌزؾى‬
ٞ‫رؾىُ ػذد‬Control:
Numeric

Front Panel
‫خ‬١ِ‫ؽخ األِب‬ٌٍٛ‫ا‬

Indicator:
Gauge ‫ِؤشش‬
‫بط‬١‫اٌم‬
52
‫‪ّ٠‬ىٓ اعزؼّبي ٌ‪ٛ‬ؽخ اٌزؾىُ ٌ‪ٛ‬ػغ ػٕبطش‬
‫اٌزؾىُ ‪ٚ‬اٌّؤششاد ػٍ‪ ٝ‬اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ‪.‬‬
‫ٌ‪ٛ‬ؽخ ػٕبطش اٌزؾىُ ر‪ٛ‬عذ فمؾ ف‪ ٟ‬اٌٍ‪ٛ‬ؽخ‬
‫األِبِ‪١‬خ‪ٌ .‬شؤ‪٠‬خ اٌٍ‪ٛ‬ؽخ‪ٕٔ ،‬مش ث‪ ّٕٝ١‬اٌف سح‬
‫ػٍ‪ِ ٝ‬غبؽخ ِفز‪ٛ‬ؽخ ف‪ ٟ‬اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ‪ .‬وّب‬
‫‪ّ٠‬ىٓ اخز‪١‬بس‪:‬‬

‫‪Window » Show Controls Palette‬‬


‫صُ رؾش‪٠‬ه ٌ‪ٛ‬ؽخ ػٕبطش اٌزؾىُ ٔؾ‪ ٛ‬األعفً‬
‫ثبٌٕمش ػٍ‪ ٝ‬دث‪ٛ‬ط ؿشف اٌز‪ٛ‬ط‪ ً١‬ف‪ ٟ‬اٌمّخ‬
‫اٌضا‪٠ٚ‬خ اٌ‪١‬غش‪ٌٍٛ ٜ‬ؽخ‪.‬‬

‫‪53‬‬
Review: Block Diagram Functions Palettes
‫ظبئف‬ٌٛ‫ؽخ ا‬ٌٛ ٟ‫ل‬ٚ‫اٌّخـؾ اٌظٕذ‬:‫ِشاعؼخ‬

Structure: ‫ىً اٌؾٍمخ‬١٘


While Loop

54
‫اعزؼًّ ٌ‪ٛ‬ؽخ اٌ‪ٛ‬ظبئف ٌجٕبء اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ٌٛ .ٟ‬ؽخ‬
‫اٌ‪ٛ‬ظبئف ر‪ٛ‬عذ فمؾ ػٍ‪ ٝ‬اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ٌ .ٟ‬شؤ‪٠‬خ‬
‫اٌٍ‪ٛ‬ؽخ‪ ،‬اخزش‪:‬‬
‫‪select Window»Show Functions Palette‬‬
‫وّب ‪ّ٠‬ىٓ ٔشش ٌ‪ٛ‬ؽخ اٌ‪ٛ‬ظبئف ثبٌٕمش ث‪ ّٕٝ١‬اٌف سح ػٍ‪ٝ‬‬
‫ِغبؽخ ِفز‪ٛ‬ؽخ ِٓ اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ ،ٟ‬صُ رؾش‪٠‬ه ٌ‪ٛ‬ؽخ‬
‫اٌ‪ٛ‬ظبئف ٔؾ‪ ٛ‬األعفً ثبٌٕمش ػٍ‪ ٝ‬دث‪ٛ‬ط ؿشف اٌز‪ٛ‬ط‪ً١‬‬
‫ف‪ ٟ‬اٌمّخ اٌضا‪٠ٚ‬خ اٌ‪١‬غش‪ٌٍٛ ٜ‬ؽخ‪.‬‬

‫‪55‬‬
Review: Block Diagram Terminals
ٟ‫ل‬ٚ‫بد اٌّخـؾ اٌظٕذ‬٠‫ب‬ٙٔ :‫ِشاعؼخ‬
Front Panel Window ‫خ‬١ِ‫ؽخ األِب‬ٌٍٛ‫ٔبفزح ا‬ Block Diagram Windowٟ‫ل‬ٚ‫ٔبفزح اٌّخـؾ اٌظٕذ‬

Numeric Numeric
Controls Indicator
ُ‫ػٕبطش رؾى‬ ‫ِؤششاد‬
‫خ‬٠‫ػذد‬ ‫خ‬٠‫ػذد‬

56
‫ػٕذ خٍك ٘ذف ػٍ‪ ٝ‬اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ‪ ،‬ع‪ٛ‬ف ‪٠‬خٍك ٔ‪ٙ‬بئ‪ٟ‬‬
‫ػٍ‪ ٝ‬اٌّخـؾ اٌظٕذ‪ٚ‬ل‪٘ .ٟ‬زٖ إٌ‪ٙ‬بئ‪١‬بد رغّؼ ثبٌ‪ٛ‬ط‪ٛ‬ي‬
‫أل٘ذاف ٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ أـاللب ِٓ و‪ٛ‬د اٌّخـؾ اٌظٕذ‪ٚ‬ل‪.ٟ‬‬
‫وً ٔ‪ٙ‬بئ‪٠ ٟ‬ؾ‪ِ ٞٛ‬ؼٍ‪ِٛ‬بد ِ‪ّٙ‬خ ػٓ اٌ‪ٙ‬ذف اٌّز‪ٛ‬اعذ ف‪ٟ‬‬
‫اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ إٌّبعت ٌٗ‪ِ .‬ضال‪ ،‬اٌٍ‪ ٚ ْٛ‬اٌشِض رؼـ‪ٟ‬‬
‫ِؼٍ‪ِٛ‬بد ػٍ‪ٛٔ ٝ‬ع اٌج‪١‬بٔبد‪ .‬فّضال‪ٛٔ ،‬ع اٌج‪١‬بٔبد اٌذ‪ٕ٠‬بِ‪١‬ى‪١‬خ‬
‫أشىبي ‪ٛٔ ٟ٘polymorphic data‬ع ِٓ اٌج‪١‬بٔبد ِزؼذدح‬
‫اٌزٕف‪١‬ز‪:‬‬

‫‪57‬‬
‫ٌ‪ٙٔ ْٛ‬بئ‪١‬بر‪ٙ‬ب أصسق لبرُ‪ .‬إٌ‪ٙ‬بئ‪١‬بد اٌج‪١ٌٛ‬بٔ‪١‬خ ٌ‪ٙٔٛ‬ب أخؼش ‪.‬‬
‫ثظفخ ػبِخ‪ ,‬إٌ‪ٙ‬بئ‪١‬بد اٌخؼشاء ‪٠‬غت أْ رٍف(ر‪ٛ‬طً) ثبٌٕ‪ٙ‬بئ‪١‬بد‬
‫اٌضسلبء‪ ،‬األخؼش ثبألخؼش‪٘ٚ ،‬ىزا‪٘...‬زٖ ٌ‪١‬غذ لبػذح دائّخ ‪ٚ‬عش‪٠‬ؼخ‪,‬‬
‫الثف‪٠ ٛ١‬غّؼ ٌٍّغزؼًّ ثز‪ٛ‬ط‪ٌ(ً١‬ف) ٔ‪ٙ‬بئ‪ ٟ‬أصسق (ث‪١‬بٔبد‬
‫د‪ٕ٠‬بِ‪١‬ى‪١‬خ) ثٕ‪ٙ‬بئ‪ٚ ٟ‬سد‪(ٞ‬ل‪ ُ١‬وغش‪٠‬خ)‪ ،‬وّضً‪ٌ .‬ىٓ‪ ،‬ف‪ ٟ‬اٌىض‪١‬ش ِٓ‬
‫اٌؾبالد‪٠ ،‬غت ِشالجخ ِ‪ٛ‬اءِخ األٌ‪ٛ‬اْ ػٕذ اٌٍف‪ .‬ػٕظش اٌزؾىُ‬
‫رؾز‪ ٞٛ‬ػٍ‪ ٝ‬ع‪ ُٙ‬ف‪ ٟ‬اٌغ‪ٙ‬خ اٌ‪ٌٙٚ ّٕٝ١‬ب ؽذ‪ٚ‬د عّ‪١‬ىخ‪ .‬اٌّؤششاد‬
‫ٌ‪ٙ‬ب ع‪ ُٙ‬ف‪ ٟ‬اٌغ‪ٙ‬خ اٌ‪١‬غش‪ٚ ٜ‬ؽذ‪ٚ‬د سل‪١‬مخ‪ 0‬اٌم‪ٛ‬اػذ إٌّـم‪١‬خ‬
‫اٌّغزؼٍّخ ف‪ ٟ‬اٌٍف ف‪ ٟ‬الثف‪ ٛ١‬رٕض ػٍ‪ ٝ‬أْ‪ :‬وً ٌفخ ‪٠‬غت أْ رؾ‪ٞٛ‬‬
‫ِظذسا(ػٕظش رؾىُ) ‪ٚ‬اؽذا فمؾ (ال غ‪١‬ش) ‪ٚ‬وً ٌفخ ‪ّ٠‬ىٓ أْ رى‪ٌٙ ْٛ‬ب‬
‫ِمبطذ ِزؼذدح (ِؤششاد)‪.‬‬

‫‪58‬‬
‫إرا رُ رّى‪ ٓ١‬أداح االخز‪١‬بس آٌ‪١‬ب ‪ٚ‬ثبإلِىبْ رؾش‪٠‬ف ِؤشش‬
‫اٌشبشخ(اٌشؼشح) ِٓ ف‪ٛ‬ق األ٘ذاف ف‪ ٟ‬اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ أ‪ ٚ‬اٌّخـؾ‬
‫اٌظٕذ‪ٚ‬ل‪ ،ٟ‬ع‪ٛ‬ف ‪٠‬خزبس الثف‪ ٛ١‬آٌ‪١‬ب األداح إٌّبعجخ ِٓ ٌ‪ٛ‬ؽخ‬
‫األد‪ٚ‬اد‪ .‬رجبدي اخز‪١‬بس األداح آٌ‪١‬ب ثبٌٕمش ػٍ‪ ٝ‬صس اخز‪١‬بس األداح آٌ‪١‬ب ف‪ٟ‬‬
‫ٌ‪ٛ‬ؽخ األد‪ٚ‬اد‪ 0‬اعزؼًّ أداح اٌزشغ‪ٌ ً١‬زغ‪١١‬ش ل‪ ُ١‬ػٕظش رؾىُ أ‪ ٚ‬اخزش‬
‫إٌض داخً ػٕظش اٌزؾىُ‪ .‬اعزؼًّ أداح ‪ٚ‬ػغ ‪ٚ‬إػبدح رؾغ‪ُ١‬‬
‫الخز‪١‬بس ‪ ،‬رؾش‪٠‬ه‪ ،‬أ‪ ٚ‬رغ‪١١‬ش ؽغُ اٌ‪ٙ‬ذف‪ .‬أداح ‪ٚ‬ػغ ‪ٚ‬إػبدح رؾغ‪ُ١‬‬
‫رغ‪١‬ش شىٍ‪ٙ‬ب ػٕذِب رزؾشن ِٓ ػٍ‪ ٝ‬صا‪٠ٚ‬خ ٘ذف إلػبدح رؾغ‪.ّٗ١‬‬
‫اعزؼًّ أداح اٌؼٕ‪ٔٛ‬خ ٌزٕم‪١‬ؼ أ‪ ٚ‬رؼذ‪ٔ ً٠‬ض ‪ٚ‬خٍك ػٕب‪ ٓ٠ٚ‬ؽشح‪ .‬أداح‬
‫اٌؼٕ‪ٔٛ‬خ رزؾ‪ٛ‬ي إٌ‪ِ ٝ‬ؤشش اٌشبشخ(اٌشؼشح) ػٕذ خٍك ػٕب‪ ٓ٠ٚ‬ؽشح‬
‫(خبطخ)‪ .‬اعزؼًّ أداح اٌٍف(اٌز‪ٛ‬ط‪ٌ )ً١‬ىزبثخ األ٘ذاف ِؼب ػٍ‪ٝ‬‬
‫اٌّخـؾ اٌظٕذ‪ٚ‬ل‪.ٟ‬‬

‫‪60‬‬
Review: Status Toolbar ‫اد‬ٚ‫ت األد‬١‫ ؽبٌخ لؼ‬:‫ِشاعؼخ‬

Run Button ‫ز‬١‫صس اٌزٕف‬

Continuous Run Button ‫ز اٌّغزّش‬١‫صس اٌزٕف‬

Abort Execution ‫بع‬ٙ‫ز اإلع‬١‫رٕف‬

Additional Buttons on the Diagram Toolbar


‫اد اٌّخـؾ‬ٚ‫ت أد‬١‫ لؼ‬ٟ‫خ ف‬١‫أصساس إػبف‬

Execution Highlighting Button ‫بس‬ٙ‫ز اإلظ‬١‫صس رٕف‬


Retain Wire Values Button ‫طٍخ‬ٌٛ‫ُ ا‬١‫صس ؽغض ل‬
Step Function Buttons ‫ح‬ٛ‫فخ اٌخـ‬١‫ظ‬ٚ ‫أصساس‬

61
‫‪٠‬أمش ػٍ‪ ٝ‬صس اٌزٕف‪١‬ز ‪:Run button‬‬
‫ٌزٕف‪١‬ز اٌغ‪ٙ‬بص االفزشاػ‪ ،ٟ‬صس اٌزٕف‪١‬ز ‪٠‬ظ‪ٙ‬ش ثغ‪ ُٙ‬أع‪ٛ‬د إرا وبْ اٌغ‪ٙ‬بص‬
‫االفزشاػ‪ ٟ‬ع‪ٙ‬بصا افزشاػ‪١‬ب ِٓ ِغز‪ ٜٛ‬ػٍ‪٠ ،ٝ‬ؼٕ‪١ٌ ٟ‬ظ ٌٗ‬
‫أٌ‪ٛ‬اْ ‪٘ٚ‬زا ‪٠‬ؼٕ‪ ٟ‬أٔٗ ٌ‪١‬ظ ع‪ٙ‬بصا افزشاػ‪١‬ب فشػ‪١‬ب‪.‬‬
‫‪ ٠‬أٔمش ػٍ‪ ٝ‬صس اٌزٕف‪١‬ز اٌّغزّش‪Continuous Run button :‬‬
‫ٌزٕف‪١‬ز اٌغ‪ٙ‬بص االفزشاػ‪ ٟ‬ؽز‪ ٝ‬اإلع‪ٙ‬بع أ‪ ٚ‬اٌز‪ٛ‬لف اٌّؤلذ‪0‬وّب‬
‫‪ّ٠‬ىٓ أ‪٠‬ؼب إٌمش ػٍ‪ ٝ‬اٌضس ِشح صبٔ‪١‬خ ٌزؼـ‪0ً١‬ؽغت) اٌزٕف‪١‬ز‬
‫اٌّغزّش‪ ،‬خالي رٕف‪١‬ز اٌغ‪ٙ‬بص االفزشاػ‪٠ ،ٟ‬غت رفبد‪ ٞ‬صس إع‪ٙ‬بع‬
‫رذفك ث‪١‬بٔبد اٌزٕف‪١‬ز ر‪ٛ‬ل‪١‬ف رٕف‪١‬ز ع‪ٙ‬بص افزشاػ‪ .ٟ‬وّب ‪٠‬غت رشن‬
‫ؽز‪ ٝ‬إٌ‪ٙ‬ب‪٠‬خ أ‪ ٚ‬طُّ ؿش‪٠‬مخ ٌز‪ٛ‬ل‪١‬ف رٕف‪١‬ز اٌغ‪ٙ‬بص االفزشاػ‪ٟ‬‬
‫ثشِغ‪١‬ب‪ 0‬ػٕذ اٌم‪١‬بَ ث‪ٙ‬زٖ اٌؼٍّ‪١‬خ‪٠ ،‬ى‪ ْٛ‬اٌغ‪ٙ‬بص االفزشاػ‪ ٟ‬ف‪ ٟ‬ؽبٌخ‬
‫ِؼش‪ٚ‬لخ‪ 0‬فّضال‪ ،‬ػغ صسا ػٍ‪ ٝ‬اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ ٌز‪ٛ‬ل‪١‬ف اٌغ‪ٙ‬بص‬
‫االفزشاػ‪ ٟ‬ػٕذ إٌمش ػٍ‪.ٗ١‬‬
‫‪:‬‬

‫‪62‬‬
‫‪٠‬أٔمش صس ر‪ٛ‬ل‪١‬ف ِؤلذ ٌز‪ٛ‬ل‪١‬ف رٕف‪١‬ز ِؤلزب‪ ،‬ػٕذ إٌمش ػٍ‪ ٝ‬صس‬
‫اٌز‪ٛ‬ل‪١‬ف اٌّؤلذ‪٠ ،‬م‪ َٛ‬الثف‪ ٛ١‬ثئظ‪ٙ‬بس ِىبْ اٌز‪ٛ‬لف اٌّؤلذ ف‪ٟ‬‬
‫اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ .ٟ‬ثبٌٕمش ػٍ‪ ٝ‬صس اٌز‪ٛ‬لف اٌّؤلذ ِشح أخش‪ٜ‬‬
‫العزّشاس رٕف‪١‬ز اٌغ‪ٙ‬بص االفزشاػ‪.ٟ‬‬
‫ٌزغ‪١١‬ش شىً ؽشف اٌـجبػخ ٌٍغ‪ٙ‬بص االفزشاػ‪ ،ٟ‬اٌؾغُ‪،‬‬
‫اخزش أ‪ٚ‬ػبع إٌض‪ Text Settings :‬إٌغك(اٌـشاص)‪ٚ ،‬اٌٍ‪ْٛ‬‬
‫‪ٌ Align‬ظف (ِؾبراح) األ٘ذاف‪ ،‬ػّ‪ٛ‬د‪ ،ٞ‬أفم‪٠ ،ٓ١ّ٠ ،ٟ‬غبس‪...‬‬
‫‪٠‬اخزش ‪Objects :‬‬
‫‪ٌ Distribute Objects‬خٍك ِغبفبد ث‪ ٓ١‬األ٘ذاف‪ ،‬ػغؾ‪... ،‬‬
‫‪٠‬اخزش ر‪ٛ‬ص‪٠‬غ األ٘ذاف‪:‬‬
‫‪ٌ Resize Objects‬زغ‪١١‬ش ػشع ‪ٚ‬ؿ‪ٛ‬ي أ٘ذاف اٌٍ‪ٛ‬ؽخ األِبِ‪١‬خ‪.‬‬
‫‪٠‬اخزش‬

‫‪63‬‬
Review: Dataflow Programming
‫بٔبد‬١‫ ثشِغخ رذفك اٌج‬:‫ِشاعؼخ‬
• Block diagram execution
ٟ‫ل‬ٚ‫ز اٌّخـؾ اٌظٕذ‬١‫رٕف‬
– Dependent on the flow of data
‫بٔبد‬١‫ؽغت رذفك اٌج‬
– Block diagram does NOT execute left
to right
ٓ١ّ١ٌ‫ ا‬ٍٝ‫غبس ػ‬١ٌ‫ٕفز ِٓ ا‬٠ ‫ ال‬ٟ‫ل‬ٚ‫اٌّخـؾ اٌظٕذ‬
• Node executes when data is available to
ALL input terminals
‫بد‬٠‫ب‬ٙٔ ً‫بٔبد عب٘ضح ٌى‬١‫ْ اٌج‬ٛ‫اٌؼمذح رٕفز ػٕذِب رى‬
ً‫اٌذخ‬
• Nodes supply data to all output
terminals when done
‫بٔبد‬١‫بد اٌّخبسط ثبٌج‬٠‫ب‬ٙٔ ً‫د و‬ٚ‫اٌؼمذح رض‬

64
‫الثف‪٠ ٛ١‬غزؼًّ ّٔ‪ٛ‬رط رذفك اٌج‪١‬بٔبد ٌزٕف‪١‬ز األع‪ٙ‬ضح االفزشاػ‪١‬خ‪ .‬ػمذح‬
‫ِخـؾ طٕذ‪ٚ‬ل‪ ٟ‬رٕفز ػٕذِب رى‪ ْٛ‬وً ث‪١‬بٔبد ِذاخٍ‪ٙ‬ب ِز‪ٛ‬فشح‪ .‬ػٕذِب‬
‫‪ٕ٠‬ز‪ ٟٙ‬رٕف‪١‬ز ػمذح‪٠ ،‬زُ إِذاد (رّ‪ٙٔ )ٓ٠ٛ‬بئ‪١‬بد اٌّخبسط ثبٌج‪١‬بٔبد ‪ٚ‬‬
‫رّشس ث‪١‬بٔبد اٌخشط ٌٍؾٍمخ اٌزبٌ‪١‬خ ف‪ِ ٟ‬غبس رذفك اٌج‪١‬بٔبد‪ .‬ف‪ ٟ‬رذفك‬
‫اٌج‪١‬بٔبد‪ ،‬رشر‪١‬ت اٌززبثغ ٌؼٕبطش اٌجشٔبِظ ‪٠‬ؾذد رشر‪١‬ت اٌزٕف‪١‬ز ٌٍجشٔبِظ‪.‬‬
‫وّب ٔالؽظ ف‪ ٟ‬اٌّخـؾ‪٠ ،‬م‪ َٛ‬ثغّغ ػذد‪ ٓ٠‬صُ ػشة ٔز‪١‬غخ اٌغّغ‬
‫ثبصٕ‪ 0 ٓ١‬ف‪٘ ٟ‬زٖ اٌؾبٌخ‪ٕ٠ ،‬فز اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ ِٓ ٟ‬اٌ‪١‬غبس ػٍ‪ٝ‬‬
‫اٌ‪١ٌ ،ٓ١ّ١‬ظ ألْ األ٘ذاف ِ‪ٛ‬ػ‪ٛ‬ػخ ف‪٘ ٟ‬زا اٌزشر‪١‬ت‪ٌٚ ،‬ىٓ ألْ أؽذ‬
‫ِذاخً اٌؼشة ‪٠‬ى‪ ْٛ‬غ‪١‬ش طبٌؼ(عبس‪ ٞ‬اٌّفؼ‪ٛ‬ي) ؽز‪ ٝ‬رزُ ػٍّ‪١‬خ اٌغّغ‬
‫‪ٚ‬رّشس اٌج‪١‬بٔبد ٌ‪ٛ‬ظ‪١‬فخ اٌؼشة‪ .‬رزوش أْ اٌؼمذح رٕفز فمؾ ػٕذِب رى‪ْٛ‬‬
‫اٌج‪١‬بٔبد ِز‪ٛ‬فشح ف‪ ٟ‬وً ٔ‪ٙ‬بئ‪١‬بد ِذاخٍ‪ٙ‬ب‪ٚ ،‬رم‪ َٛ‬ثئِذاد اٌج‪١‬بٔبد ٌىً‬
‫ٔ‪ٙ‬بئ‪١‬بد اٌخشط فمؾ ثؼذ ٔ‪ٙ‬ب‪٠‬خ اٌزٕف‪١‬ز‪ .‬ف‪ ٟ‬اٌمـؼخ اٌضبٔ‪١‬خ ٌٍى‪ٛ‬د‪ِ ،‬ؾبوبح‬
‫اٌغ‪ٙ‬بص االفزشاػ‪ ٟ‬اٌغش‪٠‬غ ٌإلشبسح‬
‫‪Simulate Signal Express VI‬‬

‫‪65‬‬
‫‪٠‬زٍم‪ ٝ‬اٌّذاخً ِٓ ػٕبطش اٌزؾىُ ‪ّ٠ٚ‬شس ٔزبئغ‪ٙ‬ب‬
‫ٌشاعُ اإلشبسح‪ .‬ث‪ٙ‬زا ‪ّ٠‬ىٓ اػزجبس ػٍّ‪١‬خ اٌغّغ‪-‬‬
‫ػشة ‪ِٚ‬ؾبوبح و‪ٛ‬د اإلشبسح ِز‪ٛ‬اعذاْ ػٍ‪ٔ ٝ‬فظ‬
‫اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ٚ ٟ‬ػٍ‪ ٝ‬اٌز‪ٛ‬اص‪٘ .ٞ‬زا ‪٠‬ؼٕ‪ ٟ‬أٔ‪ّٙ‬ب‬
‫ع‪ٛ‬ف ‪٠‬جذآْ ف‪ ٟ‬اٌزٕف‪١‬ز ف‪ٔ ٟ‬فظ اٌٍؾظخ ‪ٌ ٚ‬ىٓ‬
‫‪ٕ٠‬فزاْ ثبعزمالٌ‪١‬خ وً ػٓ ا‪٢‬خش‪ .‬إرا وبْ اٌؾبع‪ٛ‬ة‬
‫اٌز‪ٕ٠ ٞ‬فز ٘زا اٌى‪ٛ‬د وض‪١‬شا ِٓ اٌّؼبٌغبد‪٘ ،‬بربْ‬
‫اٌمـؼزبْ ِٓ اٌى‪ٛ‬د رٕفزا ثبعزمالٌ‪١‬خ اٌ‪ٛ‬اؽذح ػٓ‬
‫األخش‪ٌ(ٜ‬ىً ‪ٚ‬اؽذح ِؼبٌغ‪ٙ‬ب اٌخبص) ثذ‪ ْٚ‬إػبفخ‬
‫أ‪ ٞ‬رى‪٠ٛ‬ذ‪.‬‬

‫‪66‬‬
Review: Context Help Window
‫بق اٌّغبػذ‬١‫ ٔبفزح ع‬:‫ِشاعؼخ‬
‫< نهًساعذة‬Ctrl+H> ‫ ِفزبػ‬ٍٝ‫اػغؾ ػ‬
• Help»Show Context Help, press the <Ctrl+H> keys ‫بق اٌّغبػذ‬١‫ٔبفزح ع‬
• Hover cursor over object to update window

‫بص‬ٙ‫ٔخ اٌغ‬ٛ‫م‬٠‫ق أ‬ٛ‫ؽشن ِؤشش اٌف سح ف‬


ٟ‫االفزشاػ‬
– Right-Click on the VI icon
and choose Help, or
‫ٔخ‬ٛ‫م‬٠‫ األ‬ٍٝ‫ اٌف سح ػ‬ّٕٝ١‫أٔمش ث‬ٚ
Detailed Help‫اخزش‬ٚ
– Choose “Detailed Help.” on the
context help window
67
‫بق اٌّغبػذ‬١‫ٔبفزح ع‬
Context Help window
‫بق اٌّغبػذ‬١‫ِبد أ٘ذاف ع‬ٍٛ‫ ِؼ‬.‫ق وً ٘ذف‬ٛ‫اٌشبشخ(اٌشؼشح) ِٓ ف‬
،‫ؽبد‬ٌٍٛ‫ ا‬،ٟٕ‫ اٌج‬،‫اثذ‬ٛ‫ اٌض‬،‫ظبئف‬ٌٛ‫ ا‬،‫خ‬١‫ضح االفزشاػ‬ٙ‫رشًّ األع‬
.‫اس‬ٛ‫ك اٌؾ‬٠‫ٔبد طٕبد‬ٛ‫ِى‬ٚ ،‫ األؽذاس‬،‫ اٌـشق‬،)‫اطفبد‬ٌّٛ‫اص(ا‬ٛ‫اٌخ‬
:‫بق اٌّغبػذ ٔخزبس‬١‫ٌٕشش ٔبفزح ع‬
Help»Show Context Help
: ٍٝ‫ٔؼغؾ ػ‬ٚ
<Ctrl+H> keys, or press the Show Context Help Window
button in the toolbar

To display the Context Help window, select Help»Show


Context Help, press the <Ctrl+H> keys, or press the Show
Context Help Window button in the toolbar
Connections displayed in Context Help:

68
:‫بق اٌّغبػذ‬١‫ رٕشش ِٓ خالي ع‬ٟ‫اثؾ اٌز‬ٚ‫اٌش‬
Required – bold ‫غ‬٠‫د ػش‬ٛ‫أع‬-‫ِزـٍت‬
Recommended – normal ٞ‫ ػبد‬-)ٟ‫ ثٗ (ِضو‬ٝ‫ط‬ِٛ
Optional – dimmed )‫ ِؼزُ(ثب٘ذ‬-ٞ‫بس‬١‫اخز‬
Additional Help ‫إػبفبد‬
• VI, Function, & How-To Help is also available. ‫ضح‬ٙ‫أع‬
‫فش‬ٛ‫ف رغبػذ ِز‬١‫ظبئف& و‬ٚ ،‫خ‬١‫افزشاػ‬
– Help» VI, Function, & How-To Help
– Right-click the VI icon and choose Help, Help ّٕٝ١‫أٔمش ث‬
‫اخزش‬ٚ ٟ‫بص االفزشاػ‬ٙ‫ٔخ اٌغ‬ٛ‫م‬٠‫اٌف سح أ‬
– Choose “Detailed Help.” on the context help window.
Detailed Help :‫ اخزش‬ٚ‫أ‬
• LabVIEW Help – reference style help ‫ ِشعغ‬-ٛ١‫ِغبػذ الثف‬
‫ؿشاص اٌّغبػذ‬
– Help»Search the LabVIEW Help… ٛ١‫اٌجؾش ػٓ ِغبػذ الثف‬
69
Review: Textual Math in LabVIEW
ٛ١‫ الثف‬ٟ‫ ف‬ٟ‫بر‬١‫بػ‬٠‫ إٌض أٌش‬:‫ِشاعؼخ‬
• Integrate existing scripts with LabVIEW for faster development ‫ش‬٠ٛ‫ ٌزـ‬ٛ١‫ك الثف‬١ٍ‫سثؾ اٌزؼ‬
‫أعشع‬
• Interactive, easy-to-use, hands-on learning environment
ٍُ‫ؾ اٌزؼ‬١‫ ِؾ‬ٟ‫ ف‬ٍّٟ‫ ػ‬،‫ً االعزؼّبي‬ٙ‫ ع‬،ٍٟ‫رفبػ‬
• Develop algorithms, explore mathematical concepts, and analyze results using
a single environment
‫ؾ‬١‫ ٔفظ اٌّؾ‬ٟ‫ً إٌزبئظ ف‬١ٍ‫رؾ‬ٚ ،‫بد‬١‫بػ‬٠‫بد اٌش‬١‫ اعزىشبف أعبع‬،‫خ‬١ِ‫اسص‬ٛ‫ش اٌخ‬٠ٛ‫رـ‬
• Freedom to choose the most effective syntax, whether graphical or textual
within one VI ‫خ‬٠‫ؽش‬
ٟ‫بص افزشاػ‬ٙ‫خ ثبعزؼّبي ع‬١‫ إٌظ‬ٚ‫خ أ‬٠‫س‬ٛ‫ت اٌغًّ اٌظ‬١‫بس رشو‬١‫اخز‬

MATLAB ® is a registered trademark of The MathWorks, Inc.


Supported Math Tools: ‫خ اٌّغبٔذح‬١‫بر‬١‫بػ‬٠‫اد أٌش‬ٚ‫األد‬
MathScript script node ‫ؽ‬ٛ‫ػمذح اٌّخـ‬
ٟ‫بر‬١‫بػ‬٠‫أٌش‬ MathSoft software ‫اٌجشٔبِظ‬
ٟ‫بر‬١‫بػ‬٠‫أٌش‬
Mathematica software ‫ىب‬١‫ّبر‬١‫ثشٔبِظ ِبر‬
MATLAB® software ‫ِبرالة‬
Maple software ً‫ ثشٔبِظ ِبث‬Xmath
software ‫إوظ ِبس‬

71
‫ِشاعؼخ ‪Overview‬‬
‫ثئؿالق ٔغخخ الثف‪ ٛ١‬اٌضبِٕخ‪ ،‬أطجؾذ ٌٕب ؽش‪٠‬خ اخز‪١‬بس‬
‫أُ٘ رشو‪١‬ت اٌغًّ اٌفؼبٌخ ٌٍؾغبة اٌزمٕ‪ِّٙ ،ٟ‬ب وبْ ِٓ‬
‫ٔبؽ‪١‬خ رـ‪٠ٛ‬ش اٌخ‪ٛ‬اسصِ‪١‬بد‪ ،‬اوزشبف ِؼبٌغخ ِجبدا‬
‫اإلشبساد‪ ،‬أ‪ ٚ‬رؾٍ‪ ً١‬إٌزبئظ‪ّ٠ .‬ىٓ رؾ‪ ً٠ٛ‬اٌّخـ‪ٛ‬ؽ إٌ‪ٝ‬‬
‫أداح ‪ٚ‬رـ‪٠ٛ‬ش اٌخ‪ٛ‬اسصِ‪١‬بد ف‪ ٟ‬اٌّخـؾ اٌظٕذ‪ٚ‬ل‪ ٟ‬ثبٌم‪١‬بَ‬
‫ثؼٍّ‪١‬خ رفبػٍ‪١‬خ ِغ أد‪ٚ‬اد س‪٠‬بػ‪١‬بر‪١‬خ ِضً‪:‬‬
‫‪The MathWorks Inc. MATLAB software,‬‬
‫‪Mathematica, Maple, Mathcad, IDL and Xmath‬‬
‫اعزؼّبي ٘زٖ األد‪ٚ‬اد أٌش‪٠‬بػ‪١‬بر‪١‬خ ِغ الثف‪ ٛ١‬رزُ ثـشق‬
‫ِزؼذدح ؽغت اٌؾبعخ‪.‬‬
‫‪Communication with vendor software‬‬
‫االرظبي ِغ ِش‪ٚ‬ع‪through LabVIEW node: ٟ‬‬
‫اٌجشاِظ ِٓ خالي ػمذح الثف‪:ٛ١‬‬

‫‪72‬‬
Xmath node, MATLAB script node, Maple* node,
IDL* node

Communication with vendor software through VI


Server: ‫ اٌجشاِظ ِٓ خالي‬ٟ‫ع‬ٚ‫االرظبي ِغ ِش‬
:‫ؽذح خذِخ‬ٚ
Mathematica* VIs, and Mathcad* VIs
‫ّىٓ اٌغّغ‬٠، ‫ِب رال٘ب‬ٚ ٛ١‫خ ِٓ ثشٔبِظ الثف‬١ٔ‫ ٔغخخ صّب‬ٟ‫ف‬
: ‫بٔبد ثبعزؼّبي‬١‫خ ٌزذفك اٌج‬٠‫س‬ٛ‫خ ط‬١‫ٓ ثشِغخ ؽذع‬١‫ث‬
MathScript:ٟ‫بر‬١‫بػ‬٠‫ أٌش‬-‫ؽ‬ٛ‫اٌّخـ‬
‫افك ِغ ٌغخ‬ٛ‫ رز‬،‫خ‬ٙ‫ع‬ِٛ ‫خ‬١‫بر‬١‫بػ‬٠‫خ س‬١‫ ٌغخ ثشِغخ ٔظ‬ٟ٘ٚ
:‫خ‬١‫اٌجشِغخ اٌشؼج‬
popular m-file script language.

73
Review: Math with the MathScript Node
ٟ‫بر‬١‫بػ‬٠‫ؽ أٌش‬ٛ‫ػمذح اٌّخـ‬ٚ ‫بد‬١‫بػ‬٠‫ اٌش‬:‫ِشاعؼخ‬
• Implement equations and algorithms textually
‫ب‬١‫بد ٔظ‬١ِ‫اسص‬ٛ‫اٌخ‬ٚ ‫ك اٌّؼبدالد‬١‫رـج‬
• Input and Output variables created at the border
‫اٌّخبسط ػٕذ اٌؾذ‬ٚ ً‫شاد اٌّذاخ‬١‫ٌذ ِزغ‬ٛ‫ر‬
• Generally compatible with popular m-file script language
‫خ‬١‫ؿبد اٌٍغبد اٌشؼج‬ٛ‫افك(ِزغك) ػبِخ ِغ ِخـ‬ٛ‫ِز‬
• Terminate statements with a semicolon to disable immediate output

(Functions»Programming»
Structures»MathScript)

Prototype your equations in the interactive MathScript Window.


‫خ‬١ٍ‫ اٌزفبػ‬ٟ‫بر‬١‫بػ‬٠‫ؽ أٌش‬ٛ‫ ٔبفزح اٌّخـ‬ٟ‫رط اٌّؼبدالد ف‬ّٛٔ
‫رؾغٓ الثف‪ ٛ١‬ثئػبفخ ٔض أعبع‪ٌ ٟ‬غ‪ ٞٛ‬ؿج‪١‬ؼ‪ٌ ٟ‬زـج‪١‬ك‬
‫ػمذح اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪The MathScript Node ٟ‬خ‪ٛ‬اسصِ‪١‬بد‬
‫س‪٠‬بػ‪١‬بر‪١‬خ ف‪ ٟ‬اٌّؾ‪١‬ؾ اٌجشِغ‪ ٟ‬اٌظ‪ٛ‬س‪ٍِ .ٞ‬فبد اٌّخـ‪ٛ‬ؿبد‪-‬‬
‫اٌش‪٠‬بػ‪١‬بر‪١‬خ اٌز‪ ٟ‬وزجذ ‪ٚ‬ؽفظذ أـاللب ِٓ ٔبفزح اٌّخـ‪ٛ‬ؽ‬
‫أٌش‪٠‬بػ‪١‬بر‪ّ٠ ٟ‬ىٓ فزؾ‪ٙ‬ب ‪ٚ‬اعزؼّبٌ‪ٙ‬ب ف‪ ٟ‬ػمذح اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪:ٟ‬‬
‫‪M-file scripts you’ve written and saved from the‬‬
‫‪MathScript window can be opened and used in the‬‬
‫‪MathScript node.‬‬
‫ٍِفبد اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ ٟ‬اٌز‪ ٟ‬و‪ٔٛ‬ذ ف‪ ٟ‬ثشاِظ س‪٠‬بػ‪١‬بر‪١‬خ أخش‪ٜ‬‬
‫‪ّ٠‬ىٓ رٕف‪١‬ز٘ب أ‪٠‬ؼب‪ .‬اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪٠ ٟ‬غّؼ ث خز اٌغًّ اٌّىجخ‬
‫اٌز‪ ٟ‬رشربػ ٌ‪ٙ‬ب ٌؾً اٌّشبوً‪ّ٠ .‬ىٓ رؾ‪ ً٠ٛ‬اٌّؼبدالد إٌ‪ ٝ‬أد‪ٚ‬اد‬
‫ٌٍزؼبًِ ِغ ػمذ اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ٌٍ ٟ‬ىشف ػٓ اٌجشاِزشاد‪،‬‬
‫اٌّؾبوبح‪ ،‬أ‪ ٚ‬رٕف‪١‬ز٘ب ف‪ِ ٟ‬شش‪ٚ‬ع ٔ‪ٙ‬بئ‪.ٟ‬‬
‫‪75‬‬
The MathScript Node: ٟ‫بر‬١‫بػ‬٠‫ؽ أٌش‬ٛ‫ػمذح اٌّخـ‬
• Located in the Programming»Structures
sub-palette. ‫خ‬١‫ؽخ اٌفشػ‬ٌٍٛ‫ ا‬ٟ‫عذ ف‬ٛ‫ر‬
• Resizable box for entering textual
computations directly into block diagrams.
‫خ‬١‫ص اٌؾغبث‬ٛ‫ق إلدخبي إٌظ‬ٚ‫ُ اٌظٕذ‬١‫إػبدح رؾغ‬
ٟ‫ل‬ٚ‫ اٌّخـؾ اٌظٕذ‬ٟ‫ِجبششح ف‬
• To add variables, right-click and choose
Add Input or Add Output : ‫ ٕٔمش‬،‫شاد‬١‫إلػبفخ ِزغ‬
‫ٔخزبس‬ٚ ‫ اٌف سح‬ّٕٝ١‫ث‬
• .‫ اٌؼمذح‬ٍٝ‫ػ‬

76
• Name variables as they are used in formula.
(Names are case sensitive.) ٟ٘ ‫شاد وّب‬١‫خ اٌّزغ‬١ّ‫رغ‬
.ْٛٔ‫ اٌمب‬ٟ‫ِغزؼٍّخ ف‬
• The data type of the output can be changed by
right-clicking the input or output node. ‫بٔبد‬١‫ع ث‬ٛٔ
ٚ‫ ػمذ اٌذخً أ‬ٍٝ‫ اٌف سح ػ‬ّٕٝ١‫ب ثبٌٕمش ث‬ٌٙ‫ّىٓ اعزجذا‬٠ ‫اٌخشط‬
.‫اٌخشط‬
• Statements should be terminated with a semicolon
to suppress output. ‫ ثفبطٍخ‬ٟٙ‫غت أْ رٕز‬٠ ‫اٌؼجبساد‬
‫ٔمـخ ٌىزُ(ؿّظ) اٌخشط‬
• Ability to import & export m-files by right-clicking
on the node. ‫خ‬١‫بر‬١‫بػ‬٠‫ش اٌٍّفبد أٌش‬٠‫رظذ‬ٚ ‫شاد‬١‫خ اعز‬١ٔ‫إِىب‬
‫ اٌف سح‬ّٕٝ١‫ثبٌٕمش ث‬
77
Review: The Interactive MathScript Window
‫خ‬١ٍ‫ اٌزفبػ‬ٟ‫بر‬١‫بػ‬٠‫ؽ أٌش‬ٛ‫ ٔبفزح اٌّخـ‬:‫ِشاعؼخ‬
• Rapidly develop and test algorithms ‫بد‬١ِ‫اسص‬ٛ‫اخزجبس اٌخ‬ٚ ‫ش‬٠ٛ‫رـ‬
• Share Scripts and Variables with the
Node
‫شاد ِغ اٌؼمذ‬١‫اٌّزغ‬ٚ ‫ؿبد‬ٛ‫ِشبسوخ اٌّخـ‬
• View /Modify Variable content in 1D, 2D,
and 3D Variable ًّ‫ِغبؽخ ػ‬
Output ‫َافزة‬ ‫شاد‬١‫اٌّزغ‬
‫شاد‬١‫ش اٌّزغ‬١١‫خ\رغ‬٠‫سؤ‬ ‫انخشج‬
Window
Workspace

View/Modify ‫ش‬١١‫ِشب٘ذح\رغ‬
‫شاد‬١‫ اٌّزغ‬ٜٛ‫ِؾز‬
Variable Contents

m-file Script User Commands ‫أوايش‬


‫انًستعًم‬
‫خ‬١‫بر‬١‫بػ‬٠‫ؽ اٌٍّفبد أٌش‬ٛ‫ِخـ‬

(LabVIEW»Tools»MathScript Window)
‫ٔبفزح اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ ٟ‬ر‪ٛ‬فش ِؾ‪١‬ـب رفبػٍ‪١‬ب ؽ‪١‬ش ‪ّ٠‬ىٓ رظٕ‪١‬ف‪ٙ‬ب ػٍ‪ ٝ‬شىً ّٔ‪ٛ‬رط‬
‫‪ٚ‬اٌم‪١‬بَ ثبٌؾغبثبد‪ٔ.‬بفزح اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ ٚ ٟ‬اٌؼمذح رشزشوبْ ف‪ ٟ‬رشو‪١‬ت اٌغًّ‬
‫‪ٚ‬اٌّزغ‪١‬شاد اٌشبٍِخ ‪ٚ‬اٌؼّ‪١ِٛ‬خ رغؼً اٌزؾشن ِٓ اٌزظٕ‪١‬ف إٌ‪ ٝ‬اٌزٕف‪١‬ز ع‪ٍٙ‬خ ‪ٚ‬ث لً‬
‫األخـبء‪ِ .‬شاعؼخ اٌج‪١‬بٔبد ر‪ٛ‬فش ؿش‪٠‬مخ ِٕبعجخ ٌّشب٘ذح اٌج‪١‬بٔبد اٌّزغ‪١‬شح و ػذاد‪،‬‬
‫ط‪ٛ‬س ‪ِٚ‬خــبد‪ ٚ ،‬عّؼ‪١‬خ(ف‪ ٟ‬ؽبٌخ ر‪ٛ‬فش وشد ط‪ٛ‬ر‪.)ٟ‬‬
‫ِغبػذ اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪Help for MathScript ٟ‬‬
‫‪ّ٠‬ىٓ اٌ‪ٛ‬ط‪ٛ‬ي إٌ‪ ٝ‬اٌّغبػذ ثبعزؼزّبي ٔبفزح ِؾ‪١‬ؾ رفبػً اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪.ٟ‬‬
‫‪Type Help in the command window for an introduction to MathScript‬‬
‫أوزت ‪ٌٍٛ Help‬ط‪ٛ‬ي ػٍ‪ٔ ٝ‬بفزح اٌّغبػذ ‪help‬‬
‫‪Help followed by a function will display help specific to that function‬‬
‫إرا أػفٕب ‪Help +function‬رٕشش اٌّغبػذ اٌخبص ثزٍه اٌ‪ٛ‬ظ‪١‬فخ‪.‬‬
‫ِّ‪١‬ضاد ٔبفزح اٌّخـ‪ٛ‬ؽ ‪Features of the interactive MathScript Window‬‬
‫أٌش‪٠‬بػ‪١‬بر‪ ٟ‬اٌزفبػٍ‪١‬خ‬

‫‪79‬‬
• Prototype equations and formulas through the command
Window ‫اِش‬ٚ‫ٓ ِٓ خالي ٔبفزح األ‬١ٔ‫ا‬ٛ‫اٌم‬ٚ ‫ف اٌّؼبدالد‬١ٕ‫رظ‬
• Easily access function help by typing Help <function> in the
Command Window ‫ اٌّغبػذ‬ٌٝ‫ي إ‬ٛ‫ط‬ٌٛ‫ٌخ ا‬ٛٙ‫ع‬
• Select a variable to display its data in the Preview Pane and
even listen to the result ‫ب‬ٙ‫ِشب٘ذر‬ٚ ‫شح‬١‫بٔبد اٌّزغ‬١‫ٔشش ث‬
• Write, Save, Load, and Run m-files using the Script tab ،‫وزبثخ‬
‫ؽ‬ٛ‫ز اٌٍّفبد ثبعزؼّبي اٌّخـ‬١‫رٕف‬ٚ ،ً١ّ‫ رؾ‬،‫ؽفظ‬
• Share data between the MathScript Node in LabVIEW and the
MathScript Window using Global Variables
ٟ‫بر‬١‫بػ‬٠‫ؽ أٌش‬ٛ‫ ٔبفزح اٌّخـ‬ٚ ٟ‫بر‬١‫بػ‬٠‫ؽ أٌش‬ٛ‫ٓ ػمذح اٌّخـ‬١‫بٔبد ث‬١‫إششان اٌج‬
‫شاد اٌشبٍِخ‬١‫ثبعزؼّبي اٌّزغ‬
• Advanced plotting features and image export features ‫ب‬٠‫ ِضا‬ٚ
‫س‬ٛ‫ش اٌظ‬٠‫َ اٌّزمذِخ رظذ‬ٛ‫ضاد اٌّشع‬١ِّ

80
Review Exercise: Introduction to LabVIEW
:‫ٓ ِشاعؼخ‬٠‫رّش‬

Force  Mass  Acceleration


‫ح = اٌىزٍخ ×اٌزغبسع‬ٛ‫ْ اٌم‬
Objectives: ‫األ٘ذاف‬
• Calculate the Acceleration given Force and Mass ‫اٌىزٍخ‬ٚ ‫ح‬ٛ‫ؽغبة اٌزغبسع ثّؼشفخ اٌم‬
• Become familiar with the LabVIEW Environment ٛ١‫ؾ الثف‬١‫اٌزؼبًِ ِؼً ِؾ‬

81
‫ذًش‪ ٍٚ‬يشاخؼح‪ :‬يذخم إنٗ التف‪ٕٛ‬‬
‫نهثذء ف‪ ٙ‬كراتح انًُٕرج‪َ ،‬قٕو ترثغ‪ٛ‬ظ زغاب انًُٕرج نقإٌَ َ‪ٕٛ‬ذٍ انرقه‪ٛ‬ذ٘‪:‬‬
‫‪ F=m*a‬عٕف َسغة انرغاسع يٍ انقإٌَ ‪a=F/m :‬‬
‫تاػرثاس انكرهح ٔانقٕج كًذخم‪.‬‬

‫‪ -‬أَقش ت‪ ًُٗٛ‬انفأسج ػهٗ انهٕذ األياي‪ ٙ‬نهسظٕل ػهٗ نٕزح ػُاطش انرسكى‪ :‬ػذد٘‬
‫ٔػًٕد٘ ٔ ػًٕد٘ اَضالق‪.ٙ‬‬
‫‪ -‬ارْة إنٗ‪:‬‬
‫‪Navigate to the Modern » Numeric sub-palette by left-‬‬
‫‪clicking‬‬
‫تانُقش ت‪ٛ‬غشٖ انفأسج‪. .‬‬
‫أَقش ت‪ٛ‬غشٖ انفأسج ػهٗ ػُظش ‪a)Left click the Numeric control.‬‬
‫انرسكى‪.‬‬
‫أَقش ‪b)Left click on the Front Panel to place the control.‬‬
‫ت‪ٛ‬غشٖ انفاسج ػهٗ انهٕذ األياي‪ ٙ‬نٕضغ ػُظش٘ انرسكى‪.‬‬
‫‪c) The name of the control will be highlighted. Start typing to‬‬
‫”(‪rename this control to “Mass )kg‬‬
‫اعى ػُظش انرسكى عٕف ‪ٚ‬ظٓش ‪ .‬اتذأ ترغ‪ٛٛ‬ش االعى إنٗ كرهح (ك‪ٛ‬هٕغشاو)‪.‬‬
‫‪a)Repeat steps a-d with a Vertical Pointer Slide. Name this‬‬
‫أػ‪ٛ‬ذ ”(‪control “Force )N‬‬
‫‪82‬‬
a).ٙ‫َفظ انًشازم تانُغثح نؼُظش انرسكى انؼًٕد٘ أالَضالق‬
1.Create a front panel gauge indicator ‫ٍ يؤشش‬ٕٚ‫ذك‬
ٙ‫ انهٕذ األياي‬ٙ‫شج) ف‬ٚ‫اط(انًؼا‬ٛ‫انق‬
a)In the Controls Palette, navigate to the Modern »
Numeric sub-palette :ٙ‫ ٔ ف‬،‫ح‬ٛ‫ انهٕزح األياي‬ٙ‫ف‬
b)Select the Gauge indicator ٙ‫شج) ف‬ٚ‫اط(انًؼا‬ٛ‫اخرش يؤشش انق‬
ٙ‫انهٕذ األياي‬
c)Place and name this indicator “Acceleration )m/s2(” ‫ضغ‬
‫ ْزا انًؤشش انرغاسع‬ًٙ‫ٔ ع‬
2.Notice how corresponding terminals appeared on the white
block diagram. )‫ض‬ٛ‫(األت‬ٙ‫ انًخغظ انظُذٔق‬ٙ‫اخ ف‬ٛ‫ف ذظٓش انُٓائ‬ٛ‫الزظ ك‬
3.Place a divide function on the block diagram ‫ضغ ػاليح قغًح‬
ٙ‫ انًخغظ انظُذٔق‬ٙ‫ف‬
a)In the Functions Palette, navigate to the Programming »
Numeric sub-palette ،‫ نٕزح انٕظائف‬ٙ‫ف‬
b)Select and place the Divide function. ‫اخرش ثى ضغ ػاليح قغًح‬

83
The Design Process َ‫ُ إٌظب‬١ّ‫رظ‬

1. Modeling – Identify a mathematical representation of the plant


َ‫ ٌٍٕظب‬ٟ‫بر‬١‫بػ‬٠‫ف ػشع س‬٠‫ك رؼش‬١‫ رؾم‬-‫رط‬ّٛٔ
2. Control Design – Choose a control method and design a
controller ُ‫ُ اٌؾبو‬١ّ‫رظ‬ٚ ُ‫مخ رؾى‬٠‫بس ؿش‬١‫ اخز‬-ُ‫ُ اٌزؾى‬١ّ‫رظ‬
3. Simulation – Employ a point-by-point approach to simulate
the system timing with a solver - ‫مخ ٔمـخ‬٠‫ ٔغزؼًّ ؿش‬-‫ِؾبوبح‬
ً‫ذ إٌظبَ ثبعزؼّبي أداح ؽ‬١‫ل‬ٛ‫ٔمـخ ٌّؾبوبح ر‬
4. Tuning and Verification – Introduce real-world nonlinearities,
tune, and verify the control algorithm ‫ إدِبط اٌؼجؾ‬-‫ك‬١‫رؾم‬ٚ ‫ػجؾ‬
ُ‫خ اٌزؾى‬١ِ‫اسص‬ٛ‫اٌز وذ ِٓ خ‬ٚ ،ٟ‫اٌالخـ‬
5. Deployment – Implement the finalized control system
6. ٟ‫بئ‬ٌٕٙ‫ك ٔظبَ اٌزؾىُ ا‬١‫ رؾم‬-‫ٔشش‬

84
‫‪ّ٠‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬ل‪ّ١‬خ ِضٍ‪ٌٍ ٝ‬ؾبوُ ثف‪ُٙ‬‬
‫اٌؼٍّ‪١‬خ(إٌظبَ)‪٘ .‬زا اٌف‪ ٠ ُٙ‬ر‪ ِٓ ٟ‬اٌزؾٍ‪ ً١‬اٌّز‪ٛ‬فش ف‪ٟ‬‬
‫‪ٚ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ‪ٚ‬اٌّؾبوبح‪ِ .‬خــبد رخظظ‪١‬خ ِضً‬
‫ِخـؾ ث‪ٛ‬د‪ِٛ ،ٞ‬لغ اٌغز‪ٚ‬س‪ِٚ ،‬خـؾ ٔ‪١‬ى‪٠ٛ‬غذ‪ ،‬رؼـ‪ٟ‬‬
‫فىشح ػٓ رظشف اٌؼٍّ‪١‬خ(إٌظبَ)‪ .‬رؾبٌ‪ ً١‬إػبف‪١‬خ‬
‫ثبعزؼّبي ٘زٖ اٌّخــبد ف‪ ٟ‬ؽبٌخ ٔظبَ ر‪ ٞ‬ؽٍمخ ِفز‪ٛ‬ؽخ‬
‫ث‪ٛ‬ع‪ٛ‬د اٌؾبوُ رغّؼ ثذساعخ االعزمشاس ‪ِٛٚ‬اطفبد أخش‪ٜ‬‬
‫‪ّ٠‬ىٓ ؽغبث‪ٙ‬ب‪ٌٙ .‬زا اٌ‪ٙ‬ذف‪ٔ ،‬غزؼًّ رظّ‪ ُ١‬رؾىُ ٌؾغبة‬
‫اٌم‪ّ١‬خ اٌّضٍ‪ٌٍ ٝ‬جشاِزشاد‪ .‬ف‪ ٟ‬اٌؾبٌخ اٌخبطخ اٌز‪ٔ ٟ‬ؾٓ‬
‫ثظذد دساعز‪ٙ‬ب رخض ل‪ ُ١‬اٌؾبوُ اٌزٕبعج‪ -ٟ‬اٌزىبٍِ‪-ٟ‬‬
‫اٌزفبػٍ‪ِ ٚ ،ٟ‬خــبد االعزغبثخ اٌضِٕ‪١‬خ ف‪ ٟ‬ؽبٌخ إشبسح‬
‫خـ‪ٛ‬ح ف‪ ٟ‬اٌذخً‪ٌ ،‬زؼـ‪ ٟ‬فىشح ػٓ اٌزظشف اٌّضبٌ‪ٟ‬‬
‫ٌٍٕظبَ‪ ،‬وضِٓ اٌظؼ‪ٛ‬د‪ ،‬اٌزؼذ‪(ٞ‬اٌزغب‪ٚ‬ص)‪ ،‬صِٓ االعزمشاس‪،‬‬
‫‪ ٚ‬اٌخـ ف‪ ٟ‬ؽبٌخ االعزمشاس‪.‬‬
‫‪85‬‬
‫‪ّ٠‬ىٕٕب ؽ‪ٕ١‬ئز ِؾبوبح اٌ‪ٛ‬ؽذح ٌٍز وذ ِٓ طؾخ ٘زٖ اٌجشاِزشاد ف‪ٟ‬‬
‫ؽبٌخ ػ‪ٛ‬ائك ل‪١‬ذ أ‪ ٚ‬رؾفظ‪ .‬أ‪ٚ‬ي ٘زٖ األِضٍخ رزّضً ف‪ ٟ‬اٌم‪ّ١‬خ‬
‫اٌؼظّ‪ٚ ٝ‬اٌم‪ّ١‬خ اٌظغش‪ٌٍ ٜ‬غ‪ٙ‬ذ ‪ٚ‬اٌز‪١‬بس اٌّز‪ٛ‬فشاْ ٌزغز‪٠‬خ اٌّؾشن‪.‬‬
‫ؽذ‪ٚ‬د اٌغ‪ٙ‬ذ ٌٍّؾشن رؾذد اٌّذ‪ ٜ‬اٌخـ‪ٌٍ ٟ‬ؼٍّ‪١‬خ‪ .‬خبسط ٘زا‬
‫اٌّذ‪ ،ٜ‬اٌز‪ ٞ‬ال ‪ّ٠‬ىٓ ؽغبة ّٔ‪ٛ‬رط خبص ثٗ‪ّ٠ٚ ،‬ىٓ أْ ‪٠‬ؤصش‬
‫ػٍ‪ ٝ‬ػًّ اٌّؾشن ‪ ٚ‬ػذَ اٌزٕجؤ ثؼٍّٗ‪٘ .‬زا ِضبي ػٍ‪ ٝ‬اٌّؾ‪١‬ؾ‬
‫اٌالخـ‪ ،ٟ‬اٌز‪ ٞ‬ال ‪ّ٠‬ىٓ ؽغبة ّٔ‪ٛ‬رط خبص ثٗ ثبعزؼّبي اٌم‪ٛ‬أ‪ٓ١‬‬
‫اٌخبطخ ثبٌٕظُ اٌخـ‪١‬خ اٌّز‪ٛ‬فشح ف‪ٚ ٟ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ‪ .‬أِب‬
‫‪ٚ‬ؽذح اٌّؾبوبح فزغّؼ ثّؾبوبح اٌالخـ‪١‬بد ثبعزؼّبي رغّ‪١‬غ‬
‫اٌزشجغ‪ِ ،‬ضال‪ .‬رظشف اٌالخـ‪١‬بد أخش‪ّ٠ ٜ‬ىٓ وزبثزٗ ف‪ٟ‬‬
‫الثف‪،ٛ١‬اٌّؾـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ ،ٟ‬اٌظ‪١‬غخ أٌش‪٠‬بػ‪١‬بر‪١‬خ ٌٍؼمذح ف‪ٟ‬‬
‫الثف‪ّ٠ ٚ،ٛ١‬ىٓ دِغ‪ٙ‬ب ف‪ ٟ‬اٌ‪ٛ‬ؽذح وغ‪ٙ‬بص افزشاػ‪ ٟ‬فشػ‪.ٟ‬‬

‫‪86‬‬
Step 1: ٌٝٚ‫ح األ‬ٛ‫اٌخـ‬
Modeling ‫إٌّزعخ‬

Identify a mathematical representation of the plant


َ‫ ٌٍٕظب‬ٟ‫بر‬١‫بػ‬٠‫ف ػشع س‬٠‫ك رؼش‬١‫رؾم‬
The Design Process َ‫ُ إٌظب‬١ّ‫رظ‬

1. Modeling – Identify a mathematical representation of the plant


َ‫ ٌٍٕظب‬ٟ‫بر‬١‫بػ‬٠‫ف ػشع س‬٠‫ك رؼش‬١‫ رؾم‬- ‫ّٔزعخ‬
Create a model that describes the motor speed given an input
voltage.ً‫ذ دخ‬ٙ‫ّضً عشػخ ِؾشن ثبعزؼّبي ع‬٠ ‫رط‬ّٛٔ ‫خٍك‬
2- Control Design – Choose a control method and design a
controller
3-Simulation – Employ a point-by-point approach to
simulate the system timing with a solver
4-Tuning and Verification – Introduce real-world
nonlinearities, tune, and verify the control algorithm
5- Deployment – Implement the finalized control system

88
‫‪ّ٠‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬ل‪ّ١‬خ ِضٍ‪ٌٍ ٝ‬ؾبوُ ثف‪ ُٙ‬اٌؼٍّ‪١‬خ(إٌظبَ)‪.‬‬
‫٘زا اٌف‪ ٠ ُٙ‬ر‪ ِٓ ٟ‬اٌزؾٍ‪ ً١‬اٌّز‪ٛ‬فش ف‪ٚ ٟ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ‬
‫‪ٚ‬اٌّؾبوبح‪ِ .‬خــبد رخظظ‪١‬خ ِضً ِخـؾ ث‪ٛ‬د‪ِٛ ،ٞ‬لغ‬
‫اٌغز‪ٚ‬س‪ِٚ ،‬خـؾ ٔ‪١‬ى‪٠ٛ‬غذ‪ ،‬رؼـ‪ ٟ‬فىشح ػٓ رظشف‬
‫اٌؼٍّ‪١‬خ(إٌظبَ)‪ .‬رؾبٌ‪ ً١‬إػبف‪١‬خ ثبعزؼّبي ٘زٖ اٌّخــبد ف‪ٟ‬‬
‫ؽبٌخ ٔظبَ ر‪ ٞ‬ؽٍمخ ِفز‪ٛ‬ؽخ ث‪ٛ‬ع‪ٛ‬د اٌؾبوُ رغّؼ ثذساعخ‬
‫االعزمشاس ‪ِٛٚ‬اطفبد أخش‪ّ٠ ٜ‬ىٓ ؽغبث‪ٙ‬ب‪ٌٙ .‬زا اٌ‪ٙ‬ذف‪،‬‬
‫ٔغزؼًّ رظّ‪ ُ١‬رؾىُ ٌؾغبة اٌم‪ّ١‬خ اٌّضٍ‪ٌٍ ٝ‬جشاِزشاد‪ .‬ف‪ٟ‬‬
‫اٌؾبٌخ اٌخبطخ اٌز‪ٔ ٟ‬ؾٓ ثظذد دساعز‪ٙ‬ب رخض ل‪ ُ١‬اٌؾبوُ‬
‫اٌزٕبعج‪ -ٟ‬اٌزىبٍِ‪ -ٟ‬اٌزفبػٍ‪ِ ٚ ،ٟ‬خــبد االعزغبثخ اٌضِٕ‪١‬خ‬
‫ف‪ ٟ‬ؽبٌخ إشبسح خـ‪ٛ‬ح ف‪ ٟ‬اٌذخً‪ٌ ،‬زؼـ‪ ٟ‬فىشح ػٓ اٌزظشف‬
‫اٌّضبٌ‪ٌٍٕ ٟ‬ظبَ‪ ،‬وضِٓ اٌظؼ‪ٛ‬د‪ ،‬اٌزؼذ‪(ٞ‬اٌزغب‪ٚ‬ص)‪ ،‬صِٓ‬
‫االعزمشاس‪ ٚ ،‬اٌخـ ف‪ ٟ‬ؽبٌخ االعزمشاس‪.‬‬

‫‪89‬‬
‫‪ّ٠‬ىٕٕب ؽ‪ٕ١‬ئز ِؾبوبح اٌ‪ٛ‬ؽذح ٌٍز وذ ِٓ طؾخ ٘زٖ اٌجشاِزشاد ف‪ ٟ‬ؽبٌخ‬
‫ػ‪ٛ‬ائك ل‪١‬ذ أ‪ ٚ‬رؾفظ‪ .‬أ‪ٚ‬ي ٘زٖ األِضٍخ رزّضً ف‪ ٟ‬اٌم‪ّ١‬خ اٌؼظّ‪ٚ ٝ‬اٌم‪ّ١‬خ‬
‫اٌظغش‪ٌٍ ٜ‬غ‪ٙ‬ذ ‪ٚ‬اٌز‪١‬بس اٌّز‪ٛ‬فشاْ ٌزغز‪٠‬خ اٌّؾشن‪ .‬ؽذ‪ٚ‬د اٌغ‪ٙ‬ذ ٌٍّؾشن‬
‫رؾذد اٌّذ‪ ٜ‬اٌخـ‪ٌٍ ٟ‬ؼٍّ‪١‬خ‪ .‬خبسط ٘زا اٌّذ‪ ،ٜ‬اٌز‪ ٞ‬ال ‪ّ٠‬ىٓ ؽغبة‬
‫ّٔ‪ٛ‬رط خبص ثٗ‪ّ٠ٚ ،‬ىٓ أْ ‪٠‬ؤصش ػٍ‪ ٝ‬ػًّ اٌّؾشن ‪ ٚ‬ػذَ اٌزٕجؤ‬
‫ثؼٍّٗ‪٘ .‬زا ِضبي ػٍ‪ ٝ‬اٌّؾ‪١‬ؾ اٌالخـ‪ ،ٟ‬اٌز‪ ٞ‬ال ‪ّ٠‬ىٓ ؽغبة ّٔ‪ٛ‬رط‬
‫خبص ثٗ ثبعزؼّبي اٌم‪ٛ‬أ‪ ٓ١‬اٌخبطخ ثبٌٕظُ اٌخـ‪١‬خ اٌّز‪ٛ‬فشح ف‪ٚ ٟ‬ؽذح‬
‫‪ٚ‬ؽذح اٌّؾبوبح فزغّؼ ثّؾبوبح اٌالخـ‪١‬بد رظّ‪ ُ١‬اٌزؾىُ ‪ .‬أِب‬
‫ثبعزؼّبي رغّ‪١‬غ اٌزشجغ‪ِ ،‬ضال‪ .‬رظشف اٌالخـ‪١‬بد أخش‪ّ٠ ٜ‬ىٓ وزبثزٗ‬
‫ف‪ ٟ‬الثف‪،ٛ١‬اٌّؾـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ ،ٟ‬اٌظ‪١‬غخ أٌش‪٠‬بػ‪١‬بر‪١‬خ ٌٍؼمذح ف‪ٟ‬‬
‫الثف‪ّ٠ ٚ،ٛ١‬ىٓ دِغ‪ٙ‬ب ف‪ ٟ‬اٌ‪ٛ‬ؽذح وغ‪ٙ‬بص افزشاػ‪ ٟ‬فشػ‪.ٟ‬‬

‫‪90‬‬
Why Model? ‫رط‬ٌّٕٛ‫ٌّبرا ا‬
A model represents a physical system ‫ب‬١‫بئ‬٠‫ض‬١‫ّضً ٔظبِب ف‬٠ ‫رط‬ٌّٕٛ‫ا‬
• Inputs and outputs have real-world units ‫خ‬١‫م‬١‫ؽذاد ؽم‬ٚ ‫ب‬ٌٙ ‫اٌّخبسط‬ٚ ً‫اٌّذاخ‬
• It is often a simplification of the system’s behavior ‫ؾ‬١‫رّضً اخزظبسا ٌّؾ‬
َ‫إٌظب‬
Many types of systems can be modeled ‫ّٕىٓ أْ رّٕزط‬٠ ُ‫اع إٌظ‬ٛٔ‫ش ِٓ أ‬١‫وض‬
• Mechanical systems ‫خ‬١‫ى‬١ٔ‫ىب‬١ٌّ‫إٌظُ ا‬
• Electronic circuits ‫خ‬١ٔٚ‫ائش اإلٌىزش‬ٚ‫اٌذ‬
• Analog and digital filters ‫خ‬١ّ‫اٌشل‬ٚ ‫خ‬١ٍ‫اٌّششؾبد اٌزّبص‬
• Thermal and fluid systems ً‫ائ‬ٛ‫ٔظُ اٌغ‬ٚ ‫خ‬٠‫إٌظُ اٌؾشاس‬

Models can be represented in many ways ‫ّىٓ أْ رؼشع ثـشق ِزؼذدح‬٠ ‫إٌّبرط‬
• Transfer function ً٠ٛ‫اي اٌزؾ‬ٚ‫د‬
• State space ‫فؼبء اٌؾبٌخ‬
• Others ...‫ش٘ب‬١‫غ‬ٚ
91
Modeling with the Transfer Function
ً٠ٛ‫إٌّزعخ ثبعزؼّبي داٌخ اٌزؾ‬

A transfer function provides a mathematical description or model for how


the Inputs and Outputs of a system are related. ‫طف‬ٌٛ‫فش ا‬ٛ‫ً ر‬٠ٛ‫داٌخ اٌزؾ‬
َ‫خشط ٔظب‬ٚ ً‫ٓ دخ‬١‫ش اٌؼاللخ ث‬١‫رعب ٌزفغ‬ّٛٔ ٚ‫ أ‬ٟ‫بر‬١‫بػ‬٠‫أٌش‬
:‫إرا وبْ إٌظبَ ِؾشوب‬  m (s) Km

In this case, the system is a motor. Vm ( s ) J eq Rm s  K m 2
• Motor input is voltage ‫دخم انًحشك هى انجهذ‬
• Motor output is angular velocity ‫خ اٌغشػخ‬٠ٚ‫ صا‬ٟ٘ ‫خشط اٌّؾشن‬
ْ‫ّىٓ أ‬٠ ‫ٍخ‬٠‫مخ اٌجذ‬٠‫ اٌـش‬.ٟ‫بئ‬٠‫ض‬١‫رط اٌف‬ٌّٕٛ‫رط إٌظبَ ِشزك ِٓ ا‬ّٛٔ ،‫ ٘زٖ اٌؾبٌخ‬ٟ‫ف‬
.ٛ١‫رط ثبعزؼّبي الثف‬ّٛٔ ‫اشزمبق‬ٚ ‫بط اعزغبثخ إٌظبَ ٌذخً ِؾذد‬١‫رزُ ثم‬

92
‫داٌخ اٌزؾ‪Transfer function ً٠ٛ‬‬
‫رّضً اٌؼاللخ اٌش‪٠‬بػ‪١‬بر‪١‬خ ث‪ ٓ١‬خشط ٔظبَ اٌزؾىُ (اٌؼٍّ‪١‬خ) ‪ٚ‬دخٍٗ‪.‬‬
‫ثظفخ ػبِخ‪ ،‬رّضً ثزؾ‪ ً٠ٛ‬الثالط ٌخشط إٌظبَ(اٌؼٍّ‪١‬خ) ِمغّخ‬
‫ػٍ‪ ٝ‬رؾ‪ ً٠ٛ‬الثالط ٌذخً إٌظبَ ثبػزجبس اٌم‪ ُ١‬اٌجذائ‪١‬خ ِغب‪٠ٚ‬خ‬
‫ٌٍظفش‪ .‬وّب ‪ّ٠‬ىٓ رّض‪ ً١‬داٌخ اٌزؾ‪ ً٠ٛ‬ثزؾ‪ ً٠ٛ‬صاد‪:‬‬
‫‪Z-Transform.‬‬
‫دخً ‪ٚ‬خشط داٌخ اٌزؾ‪ّ٠ ً٠ٛ‬ىٓ أْ رى‪ ْٛ‬ػجبسح ِ‪١‬ىبٔ‪١‬ى‪١‬خ‪،‬‬
‫و‪ٙ‬شثبئ‪١‬خ‪ِٛ١ٔ ،‬بر‪١‬خ‪...‬ف‪٘ ٟ‬زٖ اٌؾبالد ‪٠‬ى‪ ْٛ‬إٌظبَ ِؾشوب ِضال‬
‫‪٠ٚ‬ى‪ ْٛ‬دخً إٌظبَ ع‪ٙ‬ذا ‪ٚ‬خشعٗ عشػخ‪ّ٠ .‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬داٌخ‬
‫اٌزؾ‪ٌٍّٕٛ ً٠ٛ‬رط اٌف‪١‬ض‪٠‬بئ‪ ٟ‬ثبعزؼّبي اٌّؼبدالد اٌف‪١‬ض‪٠‬بئ‪١‬خ‬
‫ثبعزؼّبي أد‪ٚ‬اد ِضً ‪ٚ‬ؽذح ٔظبَ اٌزؼش‪٠‬ف ف‪ ٟ‬اٌؾشو‪١‬خ‪...‬أ‪ ٚ‬ثزمذ‪٠‬ش‬
‫الثف‪.ٛ١‬‬

‫‪93‬‬
QNET DC Motor Control Trainer
‫بس ِغزّش‬١‫ ِؾشن ر‬ٟ‫رط رؾىُ ف‬ّٛٔ
The model in this course is based on the ًّ‫ٔغزؼ‬
‫بس ِغزّش‬١‫رط ِؾشن ر‬ّٛٔ
Quanser QNET DC Motor.
‫ٌذ‬ٛ‫ ف‬24 ‫خ‬٠‫ذ رغز‬ٙ‫ثغ‬
• The motor is a 24 volt DC motor
The motor is highly linear in terms of its speed
given a voltage ‫ذ عشػخ‬ٙ‫ٕزظ ػٓ اٌغ‬٠ٚ ٟ‫اٌّؾشن خـ‬
• We will use the Control Design Toolkit
functions to create the mathematical model in
LabVIEW
ُ‫خ اٌزؾى‬١ٍّ‫ُ ػ‬١ّ‫ظبئف ٌزظ‬ٚ ‫ؽذح‬ٚ ًّ‫ف ٔغزؼ‬ٛ‫ع‬
.ٛ١‫ الثف‬ٟ‫ ف‬ٟ‫بر‬١‫بػ‬٠‫رط س‬ّٛٔ ٍٝ‫ي ػ‬ٛ‫اٌؾظ‬ٚ

94
Deriving the Motor Model
‫رط اٌّؾشن‬ّٛٔ ‫ثٕبء‬
Electrical ‫خ‬١‫شثبئ‬ٙ‫اٌّؼبدالد اٌى‬
1. Motor Diagram
2.
where : L  R
m m

3.
Mechanical ‫خ‬١‫ى‬١ٔ‫ىب‬١ٌّ‫اٌّؼبدالد ا‬
4.
Ωm Fixed Magnets
Motor Coil

5. where : Td  0
Brushes
Drive Shaft
6. (substitut e in Electrical eqn)
Encoder
7 
Ω
Vm
m

Inertial Mass
‫خ‬١‫شثبئ‬ٙ‫ اٌّؼبدالد اٌى‬ٟ‫ش ف‬١١‫ثؼذ اٌزغ‬

Motor model derivation from Quanser QNET Interactive Learning Guide.


Copyright ©2005, by Quanser Inc. All rights reserved. 95
‫ّٔ‪ٛ‬رط ِؾشن ر‪١‬بس ِغزّش ‪٠‬ؾظً ػٍ‪ ٗ١‬آِ ِ‪ٛ‬اطفبد إٌظبَ اٌّ‪١‬ىبٔ‪١‬ى‪١‬خ‬
‫‪ٚ‬اٌى‪ٙ‬شثبئ‪١‬خ‪.‬‬
‫‪ .‬داٌخ اٌزؾ‪ ً٠ٛ‬اٌز‪ ٟ‬رّضً اٌؼاللخ ث‪ ٓ١‬دخً إٌظبَ ‪ٚ‬خشعٗ ٘‪ ٟ‬لغّخ اٌغشػخ‬
‫خشط إٌظبَ ٘‪ ٛ‬اٌغشػخ اٌضا‪٠ٚ‬خ‪(ωm) :‬اٌضا‪٠ٚ‬خ ػٍ‪ٝ‬‬
‫ع‪ٙ‬ذ دخً إٌظبَ‪.‬‬
‫)‪(Ωm/Vm)=km/(Rm*Jeq*s+km2‬‬
‫ؽ‪١‬ش‪:‬‬
‫))‪km = Motor back-EMF constant (V/(rad/s‬‬ ‫صبثزخ اٌم‪ٛ‬ح اٌى‪ٙ‬ش‪ِٚ‬غٕبؿ‪١‬غ‪١‬خ‬
‫اٌّؼبوغخ‬
‫اٌزساع اٌؾشو‪ ٟ‬اٌّمب‪Rm = Motor armature resistance (Ohms) َٚ‬‬
‫‪Jeq = Equivalent moment of inertia (kg*m2) (Assume that‬‬
‫ِىبفئ‪ ٟ‬ػضَ اٌمظ‪ٛ‬س اٌزار‪Jeq=Jm(Motor armature moment of inertia)) ٟ‬‬
‫داٌخ اٌزؾ‪٘ ً٠ٛ‬زٖ رّضً ّٔ‪ٛ‬رط اٌؼٍّ‪١‬خ اٌز‪ ٟ‬ع‪ٛ‬ف رغزؼًّ ف‪ ٟ‬اٌزّبس‪ ٓ٠‬اٌالؽمخ‪.‬‬
‫ّٔ‪ٛ‬رط إٌظبَ ‪٠‬غزؼًّ ٌزظّ‪ّٛٔ ُ١‬رط اٌؾبوُ‪ ،‬اٌز‪ ٞ‬ع‪ٛ‬ف ‪٠‬خزجش ِغ اٌّؾشن اٌؾبٌ‪.ٟ‬‬

‫‪96‬‬
Motor Specifications Sheet ‫اطفبد اٌّؾشن‬ِٛ
Symbol Description Value ‫ّخ‬١‫اٌم‬ Unit ‫ؽذح‬ٌٛ‫ا‬
Motor: ‫اٌّؾشن‬
Rm Motor armature resistance. ‫ِخ وزٍخ اٌّؾشن‬ٚ‫ِمب‬ 3.30 ohms
Kt Motor torque constant .‫صبثذ ػضَ اٌّؾشن‬ 0.0280 N.m
Km Motor back-emf constant ‫خ‬١‫ح اٌّؾشوخ اٌؼىغ‬ٛ‫صبثزخ اٌم‬ 0.0280 V/(rad/s)
Moment of inertia of motor rotor ٟ‫س اٌزار‬ٛ‫ػضَ اٌمظ‬
Jm 9.64e-6 kg.m2
‫اس اٌّؾشن‬ٚ‫ٌذ‬
Ml Inertial load disc mass ‫خ‬١‫ؽًّ وزٍخ اٌمشص اٌجذائ‬ 0.033 kg
rl Inertial load disc radius ٟ‫ؽًّ عزس اٌمشص اٌجذائ‬ 0.0242 m
Pulse-Width Modulated Amplifier: ‫ػشع ٔجؼخ اٌّىجش اٌّؼذٌخ‬
PWM amplifier maximum output voltage ‫ػشع ٔجؼخ‬
Vmax 24 V
‫ذ خشط أوجش‬ٙ‫اٌّىجش اٌّؼذٌخ ٌغ‬
PWM amplifier maximum output current ‫ػشع ٔجؼخ‬
5 A
‫بس خشط أوجش‬١‫اٌّىجش اٌّؼذٌخ ٌز‬
Plant (Motor ) Vm  Input Voltage
PWM amplifier gain‫وغت اٌّىجش‬ 2.3 V/V
Vm Km m  m  Angular Velocity
J eq Rm s  K m
2
LabVIEW Control Design Toolkit
ُ‫اٌزؾى‬ٚ ُ١ّ‫ ٌٍزظ‬ٛ١‫ؽذح الثف‬ٚ
• Construct and analyze system
models ُ‫ً ّٔبرط اٌزؾى‬١ٍ‫رؾ‬ٚ ‫ثٕبء‬
• Design basic and advanced
control algorithms ُ١ّ‫رظ‬
‫ ِزمذِخ‬ٚ ‫خ‬١‫بد رؾىُ أعبع‬١ِ‫اسص‬ٛ‫خ‬
• Simulate response of controller
designs ُ١ِ‫ِؾبوبح اعزغبثخ رظب‬
‫اٌؾبوّبد‬
• Analyze control efficiency and
stability interactively ‫ً وفبءح‬١ٍ‫رؾ‬
‫ب‬١ٍ‫االعزمشاس رفبػ‬ٚ ُ‫اٌؾبو‬

98
Constructing Models Graphically
‫ب‬٠‫س‬ٛ‫ثٕبء إٌّبرط ط‬
• Create continuous and discrete time models
‫ب‬١ِٕ‫ِزمـؼخ ص‬ٚ ‫خٍك ّٔبرط ِغزّشح‬
• Models can be created symbolically
‫ب‬٠‫ّىٓ ثٕبء إٌّبرط سِض‬٠

99
‫اعزؼًّ ّٔ‪ٛ‬رط ثٕبء اٌغ‪ٙ‬بص االفزشاػ‪ٌ ٟ‬خٍك ّٔبرط ٔظُ خـ‪١‬خ ط‪ٛ‬س‪٠‬خ‬
‫‪ٚ‬رغ‪١١‬ش ِ‪ٛ‬اطفبد ّٔ‪ٛ‬رط ٔظبَ‪ .‬وّب ‪ّ٠‬ىٓ اعزؼّبي ّٔ‪ٛ‬رط ثٕبء ع‪ٙ‬بص‬
‫افزشاػ‪ٌ ٟ‬ؾفظ ّٔ‪ٛ‬رط ٔظبَ ف‪ٍِ ٟ‬ف‪ ،‬لشاءح شىً ّٔ‪ٛ‬رط ٔظبَ ِٓ‬
‫ٍِف‪ ،‬أ‪ ٚ‬اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬رّض‪ِ ً١‬شئ‪ٌّٕٛ ٟ‬رط‪.‬‬
‫اٌخـ‪ٛ‬ح األ‪ ٌٝٚ‬ف‪ ٟ‬اعزؼّبي ‪ٚ‬ؽذ رظّ‪ ُ١‬رؾىُ رزّضً ف‪ ٟ‬اٌؾظ‪ٛ‬ي ػٍ‪ٝ‬‬
‫ّٔ‪ٛ‬رط ‪ٕ٠‬فز ِٓ خالٌٗ‪ٚ .‬ؽذ رظّ‪ ُ١‬رؾىُ ‪ّ٠‬ىٓ أْ ‪٠‬زؼبًِ ِغ داٌخ‬
‫اٌزؾ‪ ،ً٠ٛ‬فؼبء اٌؾبٌخ‪ّٔ ،‬برط وغت األلـبة ‪ ٚ‬األطفبس‪:‬‬
‫‪The Control Design Toolkit can work with Transfer‬‬
‫)‪Function (TF), State Space (SS), and Zero Pole Gain (ZPK‬‬
‫‪٠‬خضْ إٌّ‪ٛ‬رط وّغّ‪ٛ‬ػبد ِزغبٔغخ ‪ّ٠‬ىٓ رّش‪٠‬ش٘ب ِٓ ‪models.‬‬
‫ع‪ٙ‬بص افزشاػ‪ ٟ‬إٌ‪ ٝ‬آخش ألداء ػٍّ‪١‬بد ِزؼذدح ػٍ‪ّٛٔ ٝ‬رط ‪ٚ‬اؽذ‪.‬‬

‫‪100‬‬
Constructing Models Textually
‫ب‬١‫ثٕبء إٌّبرط ٔظ‬
MathScript allows models to be created using m-file syntax.
‫يخطىط سياضياتي يسًح بتكىيٍ انًُارج باستعًال انجًم‬

101
‫إٌّبرط ‪ّ٠‬ىٓ ثٕبؤ٘ب ثبعزؼّبي ٌغخ اٌجشِغخ إٌظ‪١‬خ ِغ‬
‫‪ٚ‬ظبئف اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ ٟ‬ف‪ِ ٟ‬ظُّ اٌزؾىُ‪ٔ .‬غزؼًّ‬
‫ػمذح اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ٌ ٟ‬زؼش‪٠‬ف ِٕـمخ ف‪ ٟ‬اٌّخـؾ‬
‫اٌظٕذ‪ٚ‬ل‪ٌٍ ٟ‬جشِغخ إٌظ‪١‬خ‪ .‬اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ّ٠ ٟ‬ىٓ‬
‫اٌؾبٌخ‪ّٔ ٚ ،‬برط أْ ‪٠‬غزؼًّ ِغ داٌخ اٌزؾ‪ ،ً٠ٛ‬فؼبء‬
‫وغت األطفبس ‪ٚ‬األلـبة‪ .‬اٌّغّ‪ٛ‬ػخ اٌّزغبٔغخ اٌز‪ٟ‬‬
‫رؾ‪ ٞٛ‬اٌّؼٍ‪ِٛ‬بد ػٓ إٌّ‪ٛ‬رط إٌبرظ ػٓ ػمذح اٌّخـ‪ٛ‬ؽ‬
‫أٌش‪٠‬بػ‪١‬بر‪ٔ ٌٗ ٟ‬فظ شىً اٌّغّ‪ٛ‬ػخ اٌّزغبٔغخ إٌبرغخ‬
‫ػٓ ثٕبء ٔظبَ اٌغ‪ٙ‬بص االفزشاػ‪٠ ٚ ،ٟ‬غّؼ ثبالعزؼّبي‬
‫اٌّزجبدي ث‪ ٓ١‬اٌجشِغخ إٌظ‪١‬خ ‪ٚ‬اٌجشِغخ اٌظ‪ٛ‬س‪٠‬خ‪.‬‬

‫‪102‬‬
Exercise 1a: ‫ي‬ٚ‫ك األ‬١‫اٌزـج‬
Create and Display a Transfer Function
ً٠ٛ‫ٔشش داٌخ رؾ‬ٚ ‫خٍك‬
Plant (Motor )
Vm  Input Voltage
Vm Km m
J eq Rm s  K m
2  m  Angular Velocity

• Use physical specifications to create a plant model.


ً٠ٛ‫خ ٌخٍك داٌخ رؾ‬١‫بئ‬٠‫ض‬١‫اطفبد ف‬ِٛ ًّ‫اعزؼ‬
• Build a transfer function with Control Design Toolkit.
• ُ‫ُ رؾى‬١ّ‫ً ثبعزؼّبي ثشٔبِظ رظ‬٠ٛ‫ثٕبء داٌخ رؾ‬ٚ

103
1. Build the VI block diagram ٙ‫غ يخغظ خٓاص افرشاض‬ًٛ‫تُاء ذد‬
Open a blank VIand save it as i from the Getting Started screen. ‫َثذأ تفرر‬
:‫ َٔسفظّ تاعى‬ٙ‫يخغظ طُذٔق‬ Exercise_1a.v
Switch to the block diagram (<Ctrl+E>) ٙ‫َُرقم إنٗ انًخغظ انظُذٔق‬
Place the CD Construct Transfer Function Model.vi on the block diagram.
:‫َضغ‬
ٙ‫ انًخغظ انظُذٔق‬ٙ‫ف‬
From the functions palette, select : ‫يٍ نٕزح انٕظائف َخراس َٔضغ‬
Place the CD Construct Transfer Function Model.vi ‫َٔضغ تانغسة يٍ خالل‬
Addons»Control Design»Model Construction»CD Construct Transfer
Function Model.vi
.ٙ‫ انًخغظ انظُذٔق‬ٙ‫َٔضؼٓا تانغسة ف‬
and place it on the block diagram. From the drop-down menu select ‫يٍ خالل‬
‫انٓثٕط َسٕ األعفم‬
Single-Input Single-Output (Symbolic). ‫َسراس‬
Right-click the Symbolic Numerator input terminal of the CD Construct
Transfer Function Model.vi ‫ًُٗ انفأسج‬ٛ‫َُقش ت‬
and select Create»Control from the shortcut menu. ‫َٔخراس انقائًح انًخرظشج‬
Right-click the Symbolic Denominator input terminal of the CD Construct
Transfer Function Model.vi
:ٗ‫ًُٗ انفاسج ػه‬ٛ‫َُقش ت‬
and select Create»Control from the shortcut menu. ‫َٔخراس يٍ انقائًح انًخرظشج‬
Right-click the Variables input terminal of the CD Construct Transfer
Function Model.vi : ٗ‫ًُٗ انفأسج ػه‬ٛ‫َُقش ت‬

104
and select Create»Control from the shortcut menu. ‫َخراس يٍ انقائًح‬
‫انًخرظشج‬
Place the CD Draw Transfer Function Equation.vi on the block
diagram. From the functions palette, select
:‫ َٔخراس‬ٙ‫ انًخغظ انظُذٔق‬ٙ‫تانغسة َضغ ف‬
Addons»Control Design»Model Construction» CD Draw Transfer
Function Equation.vi and
:‫ ٔتانٓثٕط َسٕ األعفم َخراس‬.ٙ‫ انًخغظ انظُذٔق‬ٙ‫َٔضؼٓا ف‬
place it on the block diagram. From the drop-down menu select
Transfer Function.
 ‫م ًَٕرج‬ٕٚ‫ دخم دانح انرس‬ٙ‫م تُٓائ‬ٕٚ‫ خشج دانح انرس‬ٙ‫ٔطم َٓائ‬
Wire the Transfer Function Model output terminal of the CD
Construct Transfer Function Model.vi to the Transfer Function
Model input terminal of the CD Draw Transfer Function
Equation.vi.
: ‫ يؼادنح‬ٙ‫ًُٗ انفأسج خشج َٓائ‬ٛ‫أَقش ت‬
Right-click the Equation output terminal of the CD Draw Transfer
Function Equation.vi and select
Create»Indicator from the shortcut menu. ‫َكٌٕ يؤششا يٍ انقائًح‬
‫انًخرظشج‬
Double-click the label of the picture indicator,. ‫ٍ ػهٗ ػَُٕح‬ٛ‫َُقش يشذ‬
‫ح‬ًٛ‫ذ انرغ‬ٛ‫انًؤشش ٔ َؼ‬
and rename it Plant Equation
Save the VI. ٙ‫َسفظ اندٓاص االفرشاض‬
105
Exercise 1b: ٓ٠‫اٌزّش‬
Create and Display a Transfer Function
ً٠ٛ‫ٔشش داٌخ رؾ‬ٚ ‫خٍك‬
Plant (Motor )
Vm  Input Voltage
Vm Km m
J eq Rm s  K m
2  m  Angular Velocity

106
Exercise 1b: ٍٚ‫ذًش‬
1. Build the VI block diagram. ٙ‫ نهدٓاص االفرشاض‬ٙ‫تُاء يخغظ طُذٔق‬
Open a blank VI and save it from the Getting Started screen. ٍ‫ي‬
‫شاشح انثذء‬
as Exercise_1b.vi :‫ضا َٔسفظٓا تاعى‬ٛ‫ا أت‬ٛ‫َفرر خٓاصا افرشاض‬
Switch to the block diagram (<Ctrl+E>) ٙ‫َُرقم إنٗ انًخغظ انظُذٔق‬
Place a MathScript Node on the block diagram. Right-click to
open the functions palette and select
‫ًُٗ انفاسج نفرر نٕزح‬ٛ‫ َُٔقش ت‬.ٙ‫ انًخغظ انظُذٔق‬ٙ‫ ف‬ٙ‫اذ‬ٛ‫اض‬ٚ‫َضغ ػقذج انًخغٕط أنش‬
:‫انٕظائف َٔخراس‬
Programming»Structures»MathScript Node.
Enter the following code inside the MathScript Node: ‫أدخم انكٕد‬
ٙ‫اذ‬ٛ‫اض‬ٚ‫ ػقذج انًخغٕط أنش‬ٙ‫ ف‬ٙ‫انران‬
%Motor Model ‫عنونة‬
num = [K]; ‫البسط‬
den = [J*Rm K^2]; ‫املقام‬
sys = tf(num,den); ‫تكوين دالة حتويل النظام‬

107
Right-click on the left border of the MathScript
Node and select Add Input. Enter K as input.
Right-click
‫ ٔاخرثش‬ٙ‫اذ‬ٛ‫اض‬ٚ‫غش نؼقذج انًخغٕط أنش‬ٚ‫ًُٗ انفأسج ػهٗ انسذ األ‬ٛ‫أَقش ت‬
ًُٗٛ‫ًح انكغة ثى أَقش ت‬ٛ‫ إضافح دخم ٔادخم ق‬K ‫انفأسج ػهٗ دخم‬
‫ انكغة‬ٙ‫َٓائ‬
the input terminal of the K variable and select
Create»Control from the shortcut menu. ٌٕ‫َٔك‬
‫ػُظش ذسكى‬
Right-click on the left border of the MathScript
Node and select Add Input. Enter Rm as input.
Right-click
:‫ َٔخراس‬ٙ‫اذ‬ٛ‫اض‬ٚ‫غش ػقذج انًخغٕط أنش‬ٚ‫ًُٗ انفاسج ػهٗ انسذ األ‬ٛ‫َُقش ت‬
Rm :‫ًح انذخم‬ٛ‫ َٔذخم ق‬Add Input
Rm ‫شج‬ٛ‫ انذخم نهًرغ‬ٙ‫ًُٗ انفأسج َٓائ‬ٛ‫ثى َُقش ت‬
the input terminal of the Rm variable and select
Create»Control from the shortcut menu.
Create»Control: ‫َٔخراس‬
.‫ٍ ػُظش انرسكى‬ٕٚ‫نرك‬

108
Right-click on the left border of the MathScript Node
and select Add Input. Enter J as input. Right-click
.ٙ‫ًح ػضو انقظٕس انزاذ‬ٛ‫ َٔذخم ق‬Add Input ‫ًُٗ انفأسج ػهٗ انسذ‬ٛ‫َُقش ت‬
:‫غش َٔخراس‬ٚ‫األ‬
the input terminal of the J variable and select
Create»Control from the shortcut menu.
.‫َٔكٌٕ ػُظش ذسكى كًا عثق‬
Right-click on the right border of the MathScript
Node and select Add Output. Enter plant as output.
Add Output ‫ًٍ نؼقذج انًخغٕط‬ٚ‫ًُٗ انفأسج ػهٗ انسذ األ‬ٛ‫َُقش ت‬
:‫ َٔخراس‬ٙ‫اذ‬ٛ‫اض‬ٚ‫أنش‬
.‫ كدخل‬plan ‫َٔذخم‬
......‫ وخنتار نوع البيانات‬plan ‫ح َُقش‬ٚ‫ انُٓا‬ٙ‫ف‬
:ٗ‫ًُٗ انفأسج ػه‬ٛ‫ت‬
Right-click on plant and select Choose Data
Type»Add-ons»TF objeCT

109
Step 2: ‫ح‬ٛ‫اٌخـ‬
Control Design ُ‫ُ رؾى‬١ّ‫رظ‬

Choose a control type and design a controller


ُ‫طُّ اٌؾبو‬ٚ ُ‫ع اٌزؾى‬ٛٔ ‫اخزش‬
The Design Process

Use feedback to control the speed of the motor in the presence of


disturbances.
‫ش‬٠ٛ‫د اٌزش‬ٛ‫ع‬ٛ‫ عشػخ اٌّؾشن ث‬ٟ‫خ ٌٍزؾىُ ف‬١‫خ اٌخٍف‬٠‫اعزؼًّ اٌزغز‬

111
‫‪ّ٠‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬اٌم‪ّ١‬خ اٌّضٍ‪ٌٍ ٝ‬ؾبوُ ثف‪ ُٙ‬اٌؼٍّ‪١‬خ (إٌظبَ)ع‪١‬ذا‪0‬‬
‫اٌف‪ ٠ ُٙ‬ر‪ ِٓ ٟ‬اٌزؾٍ‪ ً١‬اٌز‪٠ ٞ‬زُ ف‪ٚ ٟ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ف‪ ٟ‬الثف‪.ٛ١‬‬
‫اٌشع‪ِٛ‬بد ‪ٚ‬اٌّخــبد اٌج‪١‬بٔ‪١‬خ اٌّزخظظخ ‪ ،‬وّخـؾ ث‪ٛ‬د‪ِٛ ،ٞ‬ػغ‬
‫اٌغز‪ٚ‬س‪ِٚ ،‬خـؾ ٔ‪١‬ى‪٠ٛ‬غذ‪ ،‬رؼـ‪ ٟ‬فىشح ػٓ رظشف إٌظبَ(اٌؼٍّ‪١‬خ)‪.‬‬
‫رؾٍ‪ ً١‬أدق ‪،‬ف‪ ٟ‬ؽبٌخ ٔظبَ ر‪ ٞ‬ؽٍمخ ِفز‪ٛ‬ؽخ‪ ،‬ث‪ٛ‬ع‪ٛ‬د ؽبوُ رغّؼ‬
‫‪ّ٠‬ىٓ ؽغبث‪ٙ‬ب‪ 0‬ف‪٘ ٟ‬زا ثذساعخ االعزمشاس‪ِٛٚ ،‬اطفبد أخش‪ٜ‬‬
‫اٌّ‪ٛ‬ػ‪ٛ‬ع‪ّ٠ ،‬ىٓ اعزؼّبي رظّ‪ ُ١‬اٌزؾىُ ٌٍؾظ‪ٛ‬ي ػٍ‪ ٝ‬ل‪ِ ُ١‬ضٍ‪،ٝ‬‬
‫اٌزفبػٍ‪ .ٟ‬االعزغبثخ اٌضِٕ‪١‬خ ر‪ٛ‬فش فىشح وبٌىغت اٌزّبصٍ‪ ،ٟ‬اٌزىبٍِ‪،ٟ‬‬
‫عش‪٠‬ؼخ ػٍ‪ ٝ‬اٌزظشف اٌّضبٌ‪ٌٍٕ ٟ‬ظبَ‪.‬‬
‫ِضً صِٓ اٌظؼ‪ٛ‬د‪ ،‬صِٓ اٌ‪ٛ‬ط‪ٛ‬ي ػٍ‪ ٝ‬اٌمّخ‪ ،‬اٌزؼذ‪ ،ٞ‬صِٓ االعزمشاس‪...‬‬

‫‪112‬‬
Control Systems ُ‫ٔظُ اٌزؾى‬
• A control system consists of a Controller model and a Plant
model. ‫ب‬ٙ١‫خ ِزؾىُ ف‬١ٍّ‫رط ػ‬ّٛٔٚ ُ‫رط ؽبو‬ّٛٔ ِٓ ُ‫ْ ٔظبَ اٌزؾى‬ٛ‫زى‬٠
• Control systems can be open or closed loop. ٓ‫ّى‬٠ ُ‫ٔظُ اٌزؾى‬
‫ ِغٍمخ‬ٚ‫ؽخ أ‬ٛ‫ْ ِفز‬ٛ‫أْ رى‬

• Controller
‫حاكى‬ ‫فيها‬ ‫يتحكى‬
Plant ‫عًهيت‬
(Motor )

error Vm Km m 1
Setpoint  +_ PID Output 
J eq Rm s  K m
2
s

113
‫ٔظبَ اٌزؾىُ ‪٠‬زى‪ ْٛ‬ػبدح ِٓ ّٔ‪ٛ‬رط ؽبوُ‪ّٛٔٚ ،‬رط ػٍّ‪١‬خ(ٔظبَ) ِزؾىُ ف‪ٙ١‬ب‪0‬خشط‬
‫اٌؾبوُ ‪٠‬شعً إٌ‪ ٝ‬اٌؼٍّ‪١‬خ‪ 0‬ف‪ٔ ٟ‬ظبَ ر‪ٞ‬‬
‫ؽٍمخ ِغٍمخ ‪ ،‬خشط اٌؼٍّ‪١‬خ ‪٠‬ـشػ ِٓ دخً إٌظبَ‪ٕ٠ .‬زظ ػٓ ػٍّ‪١‬خ اٌـشػ فشق ‪٠‬غّ‪ٝ‬‬
‫اٌخـ ‪٘ ،‬زا اٌخـ ‪ّ٠‬ضً دخً اٌؾبوُ‪ .‬رغّ‪٘ ٝ‬زٖ اٌؼٍّ‪١‬خ ثبٌزغز‪٠‬خ اٌخٍف‪١‬خ‪.‬‬

‫ٔظبَ (اٌؼٍّ‪١‬خ) ٌّٕ‪ٛ‬رط اٌّؾشن ‪1. Plant (Motor) Model‬‬


‫‪0‬اٌؼٍّ‪١‬خ ٘‪ ٟ‬رّض‪ ً١‬س‪٠‬بػ‪١‬بر‪ٌٍٕ ٟ‬ظبَ ‪ .‬ف‪٘ ٟ‬زٖ اٌؾبٌخ‪ ،‬اٌؼٍّ‪١‬خ ٘‪ ٟ‬اٌّؾشن‪.‬‬
‫‪ٚ‬اٌخشط ٘‪ ٛ‬اٌغشػخ اٌضا‪٠ٚ‬خ ساد‪٠‬بْ صبٔ‪١‬خ‪radians per second (ωm). :‬‬
‫‪ 0‬دخً اٌّؾشن ٘‪ ٛ‬اٌغ‪ٙ‬ذ ‪(Vm),‬‬

‫ّٔ‪ٛ‬رط اٌؾبوُ ‪2. Controller Model: PID‬‬


‫‪ّٛٔ0‬رط اٌؾبوُ ‪ّ٠‬ضً ثخ‪ٛ‬اسصِ‪١‬خ س‪٠‬بػ‪١‬بر‪١‬خ ‪ٌٛ٠ٚ‬ذ دخال ٌّٕ‪ٛ‬رط اٌؼٍّ‪١‬خ ِجٕ‪١‬خ‬
‫ػٍ‪ ٝ‬ل‪ّ١‬خ اٌّخـ ‪.‬‬
‫‪ 0‬اٌؾبوُ اٌزٕبعج‪• PID (Proportional, Integral, Derivative) ،ٟ‬‬
‫اٌزىبٍِ‪،ٟ‬ح اٌزفبػٍ‪ٟ‬‬
‫‪ ٛ٘ٚ‬خ‪ٛ‬اسصِ‪١‬خ س‪٠‬بػ‪١‬بر‪١‬خ رغزؼًّ ػبدح ف‪ ٟ‬اٌزؾىُ ‪.‬‬
‫‪ 0‬دخً اٌؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪ ٛ٘ ٟ‬اٌخـ ‪٠ٚ‬ؾغت ثـش ل‪ّ١‬خ خشط‬
‫إٌظبَ ِٓ ل‪ّ١‬خ دخً إٌظبَ‪.‬‬
‫اٌؼٕظش اٌزىبٍِ‪3. Integrator: 1/s ٟ‬‬
‫اٌّؾشن) أ‪ ٞ‬اٌغشػخ اٌضا‪٠ٚ‬خ ٌ‪ٛ‬ؽذح رٕبعت ‪ٚ‬ؽذح اٌذخً( صا‪٠ٚ‬خ ‪ٚ‬ػغ)‪.‬‬
‫‪٠‬غزؼًّ ٌزؾ‪ ً٠ٛ‬خشط اٌؼٍّ‪١‬خ‬

‫‪114‬‬
PID Control Algorithm -ٍِٟ‫رىب‬-ٟ‫خ ؽبوُ رٕبعج‬١ِ‫اسص‬ٛ‫خ‬
ٍٟ‫رفبػ‬
ٍٟ‫رفبػ‬-ٍِٟ‫رىب‬-ٟ‫ رٕبعج‬:ٟٕ‫ رؼ‬PID
:‫خ‬١ِ‫اسص‬ٛ‫رّضً خ‬ٚ
-Linear, Single Input Single Output (SISO) :‫ذح اٌخشط‬١‫ؽ‬ٚٚ ً‫ذح اٌذخ‬١‫ؽ‬ٚ ،‫خ‬١‫خـ‬

Uses error from feedback as control input ُ‫خ وذخً ٌٍزؾى‬١‫خ اٌخٍف‬٠‫رغزؼًّ اٌخـ ِٓ اٌزغز‬
– Proportional: Proportional linear reaction to error ‫ ِغ اٌخـ‬ٟ‫رزٕبعت خـ‬
– Differential: React more when signal is changing quickly ‫زفبػً أوضش‬٠ ٍٟ‫اٌزفبػ‬
‫ش اإلشبسح ثغشػخ‬١‫ػٕذ رغ‬
– Integral: React when error is present over a long period of time ً‫زفبػ‬٠ ٍِٟ‫اٌزىب‬
‫ٍخ‬٠ٛ‫خ ؿ‬١ِٕ‫سح ص‬ٚ‫د اٌخـ ٌذ‬ٛ‫ع‬ٚ ‫ػٕذ‬

Setpoint θ +_ PID Output θ

115
‫اٌؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪PID controller ٟ‬‬
‫‪٠‬ؼًّ ػٍ‪ ٝ‬اعزضبسح اٌؼٍّ‪١‬خ‪ِ ،‬ؼبِالد اٌؾبوُ‪:‬‬
‫‪Kp, ,Kd and Ki PID controller.‬‬
‫رغزؼًّ ٌؼجؾ ػًّ اٌؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪ٟ‬‬
‫خـ اٌززجغ ‪“e” represents the tracking error,‬‬
‫‪ّ٠ٚ‬ضً اٌفشق ث‪ ٓ١‬اٌخشط اٌّشغ‪ٛ‬ة ‪ٚ‬اٌخشط اٌؾبٌ‪٘ .ٟ‬زا‬
‫اٌخـ ‪٠‬شعً ٌٍؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪٠ .ٟ‬م‪ َٛ‬اٌؾبوُ‬
‫اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪ ٟ‬ثؾغبة ِؼبِالد اٌزٕبعت اٌزٕبعج‪ٟ‬‬
‫‪ٚ‬اٌزىبًِ ‪ٚ‬اٌزفبػً ٌٍخـ ‪ 0‬ثؼذ٘ب ‪٠‬شعً خشط اٌؾبوُ‬
‫اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪ ٟ‬إٌ‪ ٝ‬دخً اٌؼٍّ‪١‬خ ‪ٚ ،‬ث‪ٙ‬زا ر‪ٌٛ‬ذ‬
‫اٌؼٍّ‪١‬خ خشعب آخش ‪ّ٠‬ضً خـ اٌزغّ‪١‬غ‪٠ .‬غز‪٘ ٜ‬زا اٌخـ خٍف‪١‬ب‬
‫ٌٍؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪٘ٚ .ٟ‬ىزا رؼبد اٌؼٍّ‪١‬خ‪.‬‬

‫‪116‬‬
‫)‪A proportional controller (Kp‬‬ ‫‪ 0‬اٌؾبوُ اٌزٕبعج‪ٟ‬‬
‫‪٠‬ؼًّ ػٍ‪ ٝ‬رمٍ‪١‬ض صِٓ اٌظؼ‪ٛ‬د ‪ ٚ‬خـ ؽبٌخ االعزمشاس‪.‬‬
‫‪ 0‬اٌؾبوُ اٌزفبػٍ‪A derivative control (Kd) ٟ‬‬
‫‪٠‬ؼًّ ػٍ‪ ٝ‬ص‪٠‬بدح اعزمشاس إٌظبَ‪ ،‬رمٍ‪١‬ض اٌزغب‪ٚ‬ص‪ٚ ،‬‬
‫رؾغ‪ ٓ١‬االعزغبثخ اٌؼبثشح‪.‬‬
‫‪ 0‬اٌؾبوُ اٌزىبٍِ‪an integral control (Ki) ٟ‬‬
‫‪٠‬ؼًّ ػٍ‪ ٝ‬اٌمؼبء ػٍ‪ ٝ‬خـ ؽبٌخ االعزمشاس‪ ،‬رخف‪١‬غ‬
‫صِٓ اٌظؼ‪ٛ‬د‪ٌٚ ،‬ىٓ ‪٠‬ض‪٠‬ذ ِٓ ل‪ّ١‬خ صِٓ االعزمشاس‪.‬‬

‫‪117‬‬
Constructing a PID Controller with Control Design
Toolkit ‫ؽذح‬ٚ ‫ ثبعزؼّبي‬ٍٟ‫رفبػ‬-ٍِٟ‫رىب‬-ٟ‫ثٕبء ؽبوُ رٕبعج‬
ُ‫ُ رؾى‬١ّ‫رظ‬
• Create a PID model in the
form of a transfer function
-ٍِٟ‫رىب‬-ٟ‫رط رٕبعج‬ّٛٔ ‫خٍك‬
ً٠ٛ‫ ٌذاٌخ رؾ‬ٍٟ‫رفبػ‬
• Model can then be
interconnected with plant
model ْٛ‫ى‬٠ ْ‫ّىٓ أ‬٠ ‫رط‬ٌّٕٛ‫ا‬
‫خ‬١ٍّ‫رط ػ‬ّٕٛ‫ب ث‬١ٕ١‫ِزظال ث‬
‫ب‬ٙ١‫ِزؾىُ ف‬
Controller

PID

118
‫ثٕبء ّٔ‪ٛ‬رط ٌٍؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪ ٟ‬ثبعزؼّبي ِظُّ اٌزؾىُ‬
‫‪٠‬خٍك ّٔ‪ٛ‬رط ؽبوُ رٕبعج‪ ٟ‬رىبٍِ‪ ٟ‬رفبػٍ‪ ٟ‬ػٍ‪ ٝ‬شىً داٌخ رؾ‪.ً٠ٛ‬‬
‫‪٘ٚ‬زا ع‪ٙ‬بص افزشاػ‪ِ ٟ‬زؼذد أشىبي اٌزٕف‪١‬ز‪ِ ،‬غ اخز‪١‬بساد ّٔ‪ٛ‬رط ؽبوُ‬
‫رٕبعج‪ ٟ‬رىبٍِ‪ ٟ‬رفبػٍ‪ ٟ‬ػٍ‪ ٝ‬اٌز‪ٛ‬اص‪ّٛٔ ،ٞ‬رط ؽبوُ رٕبعج‪ ٟ‬رىبٍِ‪ٟ‬‬
‫رفبػٍ‪ ٟ‬أوبد‪ ،ّٟ٠‬أ‪ّٛٔ ٚ‬رط ؽبوُ رٕبعج‪ ٟ‬رىبٍِ‪ ٟ‬رفبػٍ‪ ٟ‬ػٍ‪ٝ‬‬
‫اٌز‪ٛ‬اٌ‪ .ٟ‬ف‪٘ ٟ‬زٖ اٌذس‪ٚ‬ط ع‪ٛ‬ف ٔغزؼًّ ّٔ‪ٛ‬رط اٌؾبوُ اٌزٕبعج‪ٟ‬‬
‫‪.‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪ ٟ‬ػٍ‪ ٝ‬اٌز‪ٛ‬اص‪.ٞ‬‬
‫ٌّؼبدٌخ اٌزبٌ‪١‬خ رغزؼًّ ف‪ ٟ‬ؽبٌخ ّٔ‪ٛ‬رط ‪the PID Parallel Model:‬‬
‫اٌز‪ٛ‬اص‪:ٞ‬‬
‫)‪U(s)/E(s) = Kc + Ki/s + Kds/(Tfs+1‬‬

‫‪119‬‬
Control Design Model Interconnection
‫ب‬١ٕ١‫ُ رؾىُ ِزظً ث‬١ّ‫رط رظ‬ّٛٔ
Graphical ‫ صىسي‬MathScript ‫يخطىط‬
‫سياضياتي‬
Series: A B
‫تىاني‬
A +
Parallel:
+
‫تىاصي‬ B
+
A
Feedback: -

B
‫تغزيت خهفيت‬

120
‫ّٔبرط إٌظُ ‪ّ٠‬ىٓ أْ ر‪ٛ‬طً ث‪١ٕ١‬ب ثبعزؼّبي ‪ٚ‬ؽذح الثف‪ٌ ٛ١‬زظّ‪ ُ١‬اٌزؾىُ‬
‫‪the Model‬إِب ط‪ٛ‬س‪٠‬ب أ‪ٔ ٚ‬ظ‪١‬ب‪ 0‬اٌز‪ٛ‬ط‪١‬الد اٌج‪١ٕ١‬خ اٌظ‪ٛ‬س‪٠‬خ ‪ّ٠‬ىٓ أْ‬
‫رى‪ ْٛ‬ثبعزؼّبي األع‪ٙ‬ضح االفزشاػ‪١‬خ ف‪Interconnection palette ٟ‬‬
‫الثف‪ ٛ١‬أـاللب ِٓ‪:‬‬
‫‪ٚ‬رؼٕ‪ٌٛ ٟ‬ؽخ ّٔ‪ٛ‬رط اٌز‪ٛ‬ط‪١‬الد اٌج‪١ٕ١‬خ‪ٔ 0‬فظ اٌز‪ٛ‬ط‪١‬الد اٌج‪١ٕ١‬خ ‪ّ٠‬ىٓ‬
‫أْ رى‪ٔ ْٛ‬ظ‪١‬ب ثبعزؼّبي ػمذح اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪.ٟ‬‬
‫األٔ‪ٛ‬اع اٌّخزٍفخ ِٓ ّٔبرط اٌز‪ٛ‬ط‪ ً١‬اٌج‪ ٟٕ١‬رشًّ‪ :‬اٌز‪ٛ‬اٌ‪ ،ٟ‬اٌز‪ٛ‬اص‪ٚ ،ٞ‬‬
‫ِٓ خالي ‪ٚ‬ظبئف رظّ‪ ُ١‬اٌزؾىُ‪ .‬ر‪ٛ‬ط‪ ً١‬اٌزغز‪٠‬خ اٌخٍف‪١‬خ‪.‬‬
‫ٌىً ‪ٚ‬ظ‪١‬فخ ّٔ‪ٛ‬رعبْ اصٕبْ ٌٍذخً ‪ّٛٔٚ‬رط ‪ٚ‬اؽذ ٌٍخشط‪.‬‬

‫‪121‬‬
•Create a Series model graphically with the CD Series VI, or
textually with the Series() function.
‫ضح‬ٙ‫خ ثبعزؼّبي ِظُّ رؾىُ ٌألع‬٠‫س‬ٛ‫ ط‬ٌٟ‫ا‬ٛ‫ٓ ّٔبرط ر‬٠ٛ‫ّىٓ رى‬٠
.ٌٟ‫ا‬ٛ‫ظبئف اٌز‬ٚ ‫ب ثبعزؼّبي‬١‫ ٔظ‬ٚ‫ أ‬،ٌٟ‫ا‬ٛ‫ اٌز‬ٍٝ‫خ ػ‬١‫االفزشاػ‬
•Create a Parallel model graphically with the CD Parallel VI,
or textually with the Parallel() function.
‫ضح‬ٙ‫خ ثبعزؼّبي ِظُّ رؾىُ ٌألع‬٠‫س‬ٛ‫ ط‬ٞ‫اص‬ٛ‫ٓ ّٔبرط ر‬٠ٛ‫ِىٓ رى‬
.ٞ‫اص‬ٛ‫ظبئف اٌز‬ٚ ‫ب ثبعزؼّبي‬١‫ ٔظ‬ٚ‫ أ‬،ٞ‫اص‬ٛ‫ اٌز‬ٍٝ‫خ ػ‬١‫االفزشاػ‬
•Create a Feedback model graphically with the CD
Feedback VI, or textually with the Feedback() function.
‫ضح‬ٙ‫ب ثبعزؼّبي ِظُّ اٌزؾىُ ٌألع‬٠‫س‬ٛ‫خ ط‬١‫خ خٍف‬٠‫رط رغز‬ّٛٔ ٓ٠ٛ‫ّىٓ رى‬٠
.‫خ‬١‫خ اٌخٍف‬٠‫خ ثبٌزغز‬١‫االفزشاػ‬
. ُ‫ٓ ٔظ‬٠ٛ‫خ رغزؼًّ غبٌجب ِؼب ٌزى‬١ٕ١‫الد اٌج‬١‫ط‬ٛ‫اع اٌّخزٍفخ ِٓ اٌز‬ٛٔ‫األ‬
.‫ب‬ٙ١‫ إٌظُ اٌّزؾىُ ف‬ٚ ‫ػخ ِؤرٍفخ ِٓ اٌؾبوّبد‬ّٛ‫ٓ ِغ‬٠ٛ‫رؾىُ ِىزٍّخ ثزى‬

122
Control Design Model Interconnection (Math Script)
)ٟ‫بر‬١‫بػ‬٠‫ؽ س‬ٛ‫ب(ِخـ‬١ٕ١‫ُ رؾىُ ِزظً ث‬١ّ‫رط رظ‬ّٛٔ
Plant (Motor )

• Use MathScript commands to Vm Km m 1 Output 


J eq Rm s  K m
2
interconnect models s

‫ ٌشثؾ إٌّبرط‬ٟ‫بر‬١‫بػ‬٠‫ؽ س‬ٛ‫اعزؼًّ ِخـ‬


‫ب‬١ٕ١‫ث‬
• Types of interconnection:
:‫خ‬١ٕ١‫الد اٌج‬١‫ط‬ٛ‫اع اٌز‬ٛٔ‫أ‬
– Series ٌٟ‫ا‬ٛ‫ر‬
– Parallel ٞ‫اص‬ٛ‫ر‬
– Feedback ‫خ‬١‫خ خٍف‬٠‫رغز‬
– Append ‫ٍِؾك‬

123
‫‪ٚ‬ظبئف اٌّخـ‪ٛ‬ؽ أٌش‪٠‬بػ‪١‬بر‪ ٟ‬ف‪ِ ٟ‬ظُّ‬
‫اٌزؾىُ رشًّ ‪ٚ‬ظبئف ّٔبرط اٌز‪ٛ‬ط‪ ً١‬اٌج‪.ٟٕ١‬‬
‫‪ٚ‬ظ‪١‬فخ اٌز‪ٛ‬ط‪ ً١‬ع‪ٛ‬ف رى‪ّٛٔ ْٛ‬رط خشط‬
‫ِىبفئب ٌّٕبرط اٌذخً اٌّ‪ٛ‬طٍخ ث‪١ٕ١‬ب‪.‬‬

‫‪124‬‬
Control Design Model Interconnection (Graphical)
)ٞ‫س‬ٛ‫ب(ط‬١ٕ١‫ُ رؾىُ ِزظً ث‬١ّ‫رط رظ‬ّٛٔ
• Connect models in series and parallel
ٞ‫اص‬ٛ‫اٌز‬ٚ ٌٟ‫ا‬ٛ‫ اٌز‬ٍٝ‫ً إٌّبرط ػ‬١‫ط‬ٛ‫ر‬
• Create feedback loops ‫خٍك ؽٍمخ ِغٍمخ‬

Controller Plant (Motor )


error Vm Km m 1
Setpoint  +_ PID Output 
J eq Rm s  K m
2
s

125
‫ّٔبرط رظّ‪ ُ١‬اٌزؾىُ ‪ّ٠‬ىٓ أْ ر‪ٛ‬طً ث‪١ٕ١‬ب إِب‬
‫ط‪ٛ‬س‪٠‬ب أ‪ٔ ٚ‬ظ‪١‬ب‪ .‬ر‪ٛ‬ط‪ ً١‬األع‪ٙ‬ضح االفزشاػ‪١‬خ‬
‫ث‪١ٕ١‬ب ع‪ٛ‬ف ‪٠‬ى‪ّٛٔ ْٛ‬رط خشط ِىبفئب ٌّٕبرط‬
‫اٌذخً اٌّ‪ٛ‬طٍخ ث‪١ٕ١‬ب‪.‬‬

‫‪126‬‬
Time Response Analysis ‫خ‬١ِٕ‫ً االعزغبثخ اٌض‬١ٍ‫رؾ‬

• Parametric Time Response


‫خ‬٠‫خ اٌجبساِزش‬١ِٕ‫االعزغبثخ اٌض‬
• Overshoot )‫ص‬ٚ‫(اٌزغب‬ٞ‫اٌزؼذ‬
• Rise Time ‫د‬ٛ‫صِٓ اٌظؼ‬
• Steady State Error ‫خـ ؽبٌخ االعزمشاس‬

127
‫اٌغ‪ٙ‬بص االفزشاػ‪ٌ ٟ‬العزغبثخ اٌضِٕ‪١‬خ ‪ّ٠‬ىٓ أْ ‪٠‬غزؼًّ‬
‫ٌزى‪ِ ٓ٠ٛ‬ؾبوبح خـ‪١‬خ ػبِخ ف‪ِ ٟ‬غبي اٌشعُ اٌج‪١‬بٔ‪ٟ‬‬
‫اٌضِٕ‪ ٟ‬ػٕذِب رى‪ ْٛ‬إشبسح اٌذخً إشبسح خـ‪ٛ‬ح‪ٔ ،‬جؼخ‪ٚ ،‬‬
‫االعزغبثخ ٌم‪ ُ١‬ثذائ‪١‬خ‪ّ٠ .‬ىٓ سعُ إٌزبئظ ث‪١‬بٔ‪١‬ب‪ٔ ٚ ،‬شش‬
‫اٌج‪١‬بٔبد اٌجبساِزش‪٠‬خ رخض اٌّؾبوبح اٌخـ‪١‬خ‬

‫‪128‬‬
Displaying Frequency Response and Dynamic
Characteristics Data
‫خ اٌخبطخ‬١‫ى‬١ِ‫ٕب‬٠‫بٔبد اٌذ‬١‫ث‬ٚ ‫خ‬٠‫ٔشش االعزغبثخ اٌزشدد‬

129
‫إ‪٠‬فب ٔظ ‪Evans plot‬‬
‫‪٠‬غزؼًّ ٌشعُ ِخـؾ أ‪single-input single-output (SISO) system ٚ‬‬
‫ِغبس ألـبة اٌؾٍمخ اٌّغٍمخ ٌٕظبَ ر‪ ٞ‬دخً ِٕفشد‪-‬خشط ِٕفشد‬
‫ػٕذِب ‪٠‬زغ‪١‬ش وغت اٌزغز‪٠‬خ اٌخٍف‪١‬خ ‪٠‬زغ‪١‬ش ِٓ اٌظفش إٌ‪ِ ٝ‬ب الٔ‪ٙ‬ب‪٠‬خ‪.‬‬

‫ِظُّ رؾىُ ث‪ٛ‬د‪CD Bode: ٞ‬‬


‫‪XY graph‬‬ ‫‪٠‬شعُ اٌغؼخ ‪ٚ‬اٌـ‪ٛ‬س ٌّٕ‪ٛ‬رط إٌظبَ ف‪ ٟ‬ساعُ ِخـؾ‬

‫ِظُّ رؾىُ ٔ‪١‬ى‪٠ٛ‬غذ ‪CD Nyquist:‬‬


‫‪٠‬شعُ ِخـؾ ٔ‪١‬ى‪٠ٛ‬غذ ٌٍٕظبَ‪ .‬اٌغ‪ٙ‬بص االفزشاػ‪٠ ٟ‬شعُ اٌغضء اٌزخ‪ٍٟ١‬‬
‫ٌالعزغبثخ اٌزشدد‪٠‬خ ِمبثً ل‪ّ١‬ز‪ٙ‬ب اٌؾم‪١‬م‪١‬خ‪.‬‬

‫ِظُّ رؾىُ ٌشعُ خش‪٠‬ـخ األطفبس ‪ٚ‬األلـبة ‪CD Pole-Zero Map:‬‬


‫‪٠‬شعُ األلـبة ‪ٚ‬األطفبس ٌّٕ‪ٛ‬رط ٔظبَ ‪ XY graph‬أ‪ ٞ‬ف‪ ٟ‬اٌّغز‪ ٜٛ‬اٌزخ‪.ٍٟ١‬‬
‫ف‪ ٟ‬ساعُ‬
‫‪130‬‬
Control Design Analysis and Display
ٖ‫ٔشش‬ٚ ُ‫ُ رؾى‬١ّ‫ً رظ‬١ٍ‫رؾ‬
Perform general linear simulations in the time
domain ‫ب‬١ِٕ‫خ ػبِخ ص‬١‫ك ِؾبوبح خـ‬١‫رؾم‬
Analyze models in the frequency domain ً١ٍ‫رؾ‬
‫ب‬٠‫إٌّبرط رشدد‬
Calculate dynamic properties of a model ‫ؽغبة‬
ٓ١‫رط ِؼ‬ٌّٕٛ ‫خ‬١‫ى‬١ِ‫ٕب‬٠‫اص اٌذ‬ٛ‫اٌخ‬

131
Review: While Loops ‫ ؽٍمبد اٌفزشح‬:‫ِشاعؼخ‬

• terminal counts each


iteration ‫ ؽغبة وً رىشاس‬ٟ‫بئ‬ٙٔ
• Always runs at least once ‫ػبدح‬
ً‫ األل‬ٍٝ‫ٕفز ِشح ػ‬٠
• Runs until stop condition is
met
‫لف‬ٛ‫ؽ اٌز‬ٚ‫ شش‬ٟ‫الل‬٠ ٝ‫ٕفز ؽز‬٠

132
‫ؽٍمخ اٌفزشح ‪While Loop‬‬
‫ِضً ِب ‪٠‬ؾذس ف‪ ٟ‬ؽٍمخ اٌزىشاس ف‪ ٟ‬اٌجشِغخ إٌظ‪١‬خ‪ ،‬ؽٍمخ‬
‫اٌفزشح رٕفز ِخـؾ فشػ‪١‬ب ؽز‪ ٝ‬رالل‪ ٟ‬ششؿب‪.‬‬
‫ؽٍمخ اٌفزشح رٕفز اٌّخـؾ اٌفشػ‪ ٟ‬ؽز‪ٙٔ ٝ‬بئ‪ ٟ‬ششؿ‪ ٟ‬أ‪ٚ‬‬
‫ٔ‪ٙ‬بئ‪ ٟ‬دخً ‪٠‬زٍم‪ ٝ‬ل‪ّ١‬خ ث‪١ٌٚٛ‬خ ِؼ‪ٕ١‬خ‪.‬‬
‫اٌجذ‪ ً٠‬االفزشاػ‪:ٛ٘ ٟ‬‬
‫‪Stop If True‬‬
‫أ‪ ٞ‬ر‪ٛ‬لف إْ وبْ طؾ‪١‬ؾب‪ .‬رٕفز اٌؾٍمخ ؽز‪ ٝ‬رزٍم‪ ٝ‬ل‪ّ١‬خ‬
‫طؾ‪١‬ؾخ‪:‬‬
‫‪TRUE value‬‬
‫ٔ‪ٙ‬بئ‪ ٟ‬اٌزىشاس ِج‪ ٓ١‬ف‪ ٟ‬اٌ‪١‬غبس(ٔ‪ٙ‬بئ‪ ٟ‬خشط) ‪٠‬ؾ‪ ٞٛ‬ػذد‬
‫اٌزىشاس اٌز‪٠ ٟ‬غت إرّبِ‪ٙ‬ب‪.‬‬
‫ؽغبة اٌزىشاس ‪٠‬جذأ ػبدح ِٓ اٌظفش‪.‬‬
‫‪133‬‬
Exercise 2: ٟٔ‫ٓ اٌضب‬٠‫اٌزّش‬
Construct a PID Controller ٍٟ‫رفبػ‬-ٍِٟ‫رىب‬-ٟ‫ثٕبء ؽبوُ رٕبعج‬

134
Exercise 2: َٙ‫ٍ انثا‬ٚ‫انرًش‬
1. Open a blank VI from the Getting Started screen. Save the
VI as Exercise 2.vi. ّ‫ضا َٔسفظ‬ٛ‫ا أت‬ٛ‫َفرر خٓاصا افرشاض‬
:‫تاعى‬
2. Go to the block diagram (<Ctrl+E>) ٙ‫َزْة إنٗ انخغظ انظُذٔق‬
3. and place a while loop down. ‫َٔضغ زهقح فرشج‬
4. Right-click to open the functions palette and select ‫َُقش‬
‫ًُٗ انفأسج نفرر نٕزح انٕظائف‬ٛ‫ت‬
5. Programming»Structures»While Loop. :‫َٔخراس‬
6. Click and drag on the block diagram to make the while loop
the correct size. ‫ زهقح انفرشج يغ ضثظ‬ٙ‫ انًخغظ انظُذٔق‬ٙ‫َُقش َٔغسة ف‬
.‫انسدى‬
7. Place the CD Construct PID Model.vi on the block diagram.
ٙ‫ انرفاضه‬ٙ‫ انركايه‬ٙ‫ نثُاء انساكى انرُاعث‬ٙ‫َضغ اندٓاص االفرشاض‬

135
1. From the functions palette, select :‫يٍ نٕزح انٕظائف َخراس‬
2. Addons»Control Design»Model Construction»CD Construct PID
Model.vi
3. and place it on the block diagram. ٙ‫ انًخغظ انظُذٔق‬ٙ‫َٔضؼٓا ف‬
4. From the drop-down menu select PID Parallel. :‫تانٓثٕط إنٗ أعفم َخراس‬
5. Right-click the Kc input terminal of the CD Construct PID
Model.vi : Kc‫ًُٗ انفأسج انًؼايم‬ٛ‫َُقش ت‬
6. and select Create»Control from the shortcut menu. ‫ٍ ػُظش‬ٕٚ‫َٔخراس ذك‬
‫ذسكى‬
7. Right-click the Ki input terminal of the CD Construct PID Model.vi
Ki‫ًُٗ انفأسج انًؼايم‬ٛ‫َُقش ت‬
8. and select Create»Control from the shortcut menu. ‫ٍ ػُظش‬ٕٚ‫َٔخراس ذك‬
‫ذسكى‬

136
Exercise 2: َٙ‫ٍ انثا‬ٚ‫ذاتغ انرًش‬
Right-click the Kd input terminal of the CD Construct PID Model.vi Kd
‫ًُٗ انفأسج ػهٗ انًؼايم‬ٛ‫َُقش ت‬
16. and select Create»Control from the shortcut menu. ‫ٍ ػُظش‬ٕٚ‫َٔخراس ذك‬
‫ذسكى‬
17. Right-click the High Frequency Time Constant [s] (Tf) ‫ًُٗ انفأسج‬ٛ‫َُقش ت‬
ٗ‫ػه‬
18. input terminal of the CD Construct PID Model.vi ٙ‫ ذًثم دخم َٓائ‬ْٙٔ
ٙ‫ انرفاضه‬ٙ‫ انركايه‬ٙ‫ نثُاء انساكى انرُاعث‬ٙ‫اندٓاص االفرشاض‬
19. and select Create»Constant from the shortcut menu. ‫ٍ ثاتد‬ٕٚ‫ثى َخراس ذك‬
20. Place the CD Series.vi on the block diagram. ٗ‫ ػه‬ٙ‫َضغ يظًى خٓاص انرٕان‬
ٙ‫انًخغظ انظُذٔق‬

137
21. From the functions palette, select :‫يٍ نٕزح انٕظائف َخراس‬
22. Addons»Control Design»Model Construction»CD Series.vi
23. and place it on the block diagram.ٙ‫َٔضؼٓا ػهٗ انًخغظ انظُذٔق‬
24.F rom the drop-down menu select Transfer Function and
Transfer Function. :‫تانٓثٕط َسٕ األعفم َخراس‬
25. Wire the Transfer Function Model output terminal of the CD
Construct PID Model.vi to the Model 1 input terminal of the CD
Series.vi. ٙ‫م انساكى تذخم خٓاص انرٕان‬ٕٚ‫َٕطم (َهف) خشج دانح ذس‬
27. Place the CD Feedback.vi on the block diagram. From the
functions palette, ‫ اَغالقا يٍ نٕزح‬ٙ‫َضغ يظًى انرسكى ػهٗ انًخغظ انظُذٔق‬
.‫انٕظائف‬
28. select Addons»Control Design»Model Construction»CD
Feedback.vi :‫َٔخراس‬
29. and place it on the block diagram. ٙ‫ انًخغظ انظُذٔق‬ٙ‫َٔضؼٓا ف‬
30. From the drop-down menu select :‫يٍ قائًح انٓثٕط َسٕ األعفم َخراس‬
31. Transfer Function and Transfer Function. ‫م‬ٕٚ‫م ٔدانح ذس‬ٕٚ‫دانح ذس‬

138
Step 3: Simulation ‫ح اٌضبٌضخ‬ٛ‫اٌخـ‬

Test the controller and incorporate real-world


nonlinearities
‫خ‬١‫اي اٌالخـ‬ٚ‫ادِظ اٌذ‬ٚ ُ‫عشة اٌؾبو‬
The Design Process

Test the motor and controller with real-world timing and a continuous time solver.
‫ صِٓ ِغزّش‬ٟ‫أداح ؽً ف‬ٚ ٟ‫م‬١‫ذ ؽم‬١‫ل‬ٛ‫اٌؾبوُ ثز‬ٚ ‫عشة اٌّؾشن‬

140
‫‪ّ٠‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬اٌم‪ّ١‬خ اٌّضٍ‪ٌٍ ٝ‬ؾبوُ ثف‪ ُٙ‬اٌؼٍّ‪١‬خ (إٌظبَ)ع‪١‬ذا‪ 0‬اٌف‪ُٙ‬‬
‫‪ ٠‬ر‪ ِٓ ٟ‬اٌزؾٍ‪ ً١‬اٌز‪٠ ٞ‬زُ ف‪ٚ ٟ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ف‪ ٟ‬الثف‪ .ٛ١‬اٌشع‪ِٛ‬بد‬
‫‪ٚ‬اٌّخــبد اٌج‪١‬بٔ‪١‬خ اٌّزخظظخ ‪ ،‬وّخـؾ ث‪ٛ‬د‪ِٛ ،ٞ‬ػغ اٌغز‪ٚ‬س‪ِٚ ،‬خـؾ‬
‫ٔ‪١‬ى‪٠ٛ‬غذ‪ ،‬رؼـ‪ ٟ‬فىشح ػٓ رظشف إٌظبَ(اٌؼٍّ‪١‬خ)‪ .‬رؾٍ‪ ً١‬أدق ‪،‬ف‪ ٟ‬ؽبٌخ ٔظبَ‬
‫ر‪ ٞ‬ؽٍمخ ِفز‪ٛ‬ؽخ‪ ،‬ث‪ٛ‬ع‪ٛ‬د ؽبوُ رغّؼ ثذساعخ االعزمشاس‪ِٛٚ ،‬اطفبد أخش‪ٜ‬‬
‫‪ّ٠‬ىٓ ؽغبث‪ٙ‬ب‪ 0‬ف‪٘ ٟ‬زا اٌّ‪ٛ‬ػ‪ٛ‬ع‪ّ٠ ،‬ىٓ اعزؼّبي رظّ‪ ُ١‬اٌزؾىُ ٌٍؾظ‪ٛ‬ي‬
‫اٌزفبػٍ‪ .ٟ‬االعزغبثخ اٌضِٕ‪١‬خ ػٍ‪ ٝ‬ل‪ِ ُ١‬ضٍ‪ ،ٝ‬وبٌىغت اٌزّبصٍ‪ ،ٟ‬اٌزىبٍِ‪،ٟ‬‬
‫ر‪ٛ‬فش فىشح عش‪٠‬ؼخ ػٍ‪ ٝ‬اٌزظشف اٌّضبٌ‪ٌٍٕ ٟ‬ظبَ‪.‬‬
‫ِضً صِٓ اٌظؼ‪ٛ‬د‪ ،‬صِٓ اٌ‪ٛ‬ط‪ٛ‬ي ػٍ‪ ٝ‬اٌمّخ‪ ،‬اٌزؼذ‪ ... ،ٞ‬ػٕذ اعزؼّبي ‪ٚ‬ؽذح‬
‫اٌّؾبوبح ٌٍز وذ ِٓ طؾخ ٘زٖ اٌجبساِزشاد رؾذ ػ‪ٛ‬ائك ؽم‪١‬م‪١‬خ‪.‬‬
‫أؽذ ٘زٖ األِضٍخ ٘‪ ٟ‬اٌم‪ّ١‬خ اٌىجش‪ٚ ٜ‬اٌم‪ّ١‬خ اٌظغش‪ٌٍ ٜ‬غ‪ٙ‬ذ ‪ٚ‬اٌز‪١‬بس اٌّز‪ٛ‬فشاْ‬
‫ٌزغز‪٠‬خ اٌّؾشن‪.‬‬
‫ؽذ‪ٚ‬د ع‪ٙ‬ذ اٌّؾشن رؾذد اٌّذ‪ ٜ‬اٌخـ‪ٌٍ ٟ‬ؼٍّ‪١‬خ‪ .‬خبسط اٌّذ‪ّ٠ ،ٜ‬ىٓ أْ ‪٠‬ز صش‬
‫اٌالخـ‪١‬بد اٌز‪ّ٠ ٟ‬ىٓ رّض‪ٍٙ١‬ب ف‪ ٟ‬اٌّؾشن ‪٠ٚ‬ظجؼ غ‪١‬ش دل‪١‬ك‪٘ .‬زٖ اٌؾبٌخ رّضً‬
‫‪ٚ‬ؽذح اٌّؾبوبح‪.‬‬

‫‪141‬‬
LabVIEW Simulation Module ‫خ ٌٍّؾبوبح‬١‫ إٌّـ‬ٛ١‫ؽذح الثف‬ٚ

• Develop dynamic systems such as motor controllers and hydraulic simulators


with LabVIEW ‫خ ثبعزؼّبي‬١‫ى‬١ٌٚ‫ذس‬١ٌٙ‫اٌّؾبوبح ا‬ٚ ‫خ ِضً ؽبوّبد اٌّؾشن‬١‫ى‬١ِ‫ٕب‬٠‫ش إٌظُ اٌذ‬٠ٛ‫رـ‬
ٛ١‫الثف‬
• Implement your dynamic systems with real-time I/O using built-in LabVIEW data
acquisition functions ‫ظبئف‬ٚ ‫ دخً\خشط ثبعزؼّبي‬ٟ‫م‬١‫ اٌضِٓ اٌؾم‬ٟ‫خ ف‬١‫ى‬١ِ‫ٕب‬٠‫ز إٌظُ اٌذ‬١‫رٕف‬
ٛ١‫ الثف‬ٟ‫بٔبد ف‬١‫ً اٌج‬١‫رؾظ‬
• Simulate linear, nonlinear, and discrete systems with a wide array of solvers
.ً‫اد اٌؾ‬ٚ‫ػخ ِٓ أد‬ّٛ‫ إٌظُ اٌّزمـؼخ ثبعزؼّبي ِغ‬ٚ ،‫خ‬١‫ الخـ‬،‫خ‬١‫ِؾبوبح إٌظُ اٌخـ‬
• Deploy dynamic systems to real-time hardware with the NI LabVIEW Real-Time
Module ِٓ‫ؽذح اٌض‬ٚ ‫خ ثبعزؼّبي‬٠‫ٔبد اٌّبد‬ٛ‫اعـخ اٌّى‬ٛ‫ ث‬ٟ‫م‬١‫ اٌضِٓ اٌؾم‬ٟ‫خ ف‬١‫ى‬١ِ‫ٕب‬٠‫ز إٌظُ اٌذ‬١‫رٕف‬
.ٛ١‫ الثف‬ٟ‫ ف‬ٟ‫م‬١‫اٌؾم‬
• Translate models from The MathWorks, Inc. Simulink® into LabVIEW with built-
in utility
:ِٓ ‫بَ ثزشعّخ إٌّبرط‬١‫اٌم‬
MathWorks, Inc. Simulink® into LabVIEW
.‫خ‬١ٕ‫خ اٌّج‬١‫ؽذاد إٌّفؼخ اٌخذِبر‬ٚ ‫ثبعزؼّبي‬
142
‫‪ٚ‬ؽذح اٌّؾبوبح ف‪ ٟ‬الثف‪ ٛ١‬رذِظ ِؾبوبح إٌظُ اٌذ‪ٕ٠‬بِ‪١‬ى‪١‬خ ف‪ِ ٟ‬ؾ‪١‬ؾ‬
‫الثف‪ .ٛ١‬و‪ٛ‬ؽذح‪ ،‬رؼ‪١‬ف ‪ٚ‬ؽذح اٌّؾبوبح ‪ٚ‬ظبئف عذ‪٠‬ذح ف‪ ٟ‬الثف‪ .ٛ١‬ؽٍمخ‬
‫اٌّؾبوبح ‪ّ٠‬ىٕ‪ٙ‬ب ّٔزعخ اٌؼٍّ‪١‬بد اٌخـ‪١‬خ ‪ ،‬الخـ‪١‬خ‪ِ ،‬زمـؼخ‪ِ ٚ ،‬غزّشح‬
‫أ‪ ٚ‬رؾىُ ف‪ ٟ‬إٌظُ ػٍ‪ ٝ‬شىً ِخــبد طٕذ‪ٚ‬ل‪١‬خ‪ِ ،‬ضً ػٕظش رىبًِ‪،‬‬
‫ػٕظش رفبػً‪ِ ٚ ،‬غّؼبد داٌخ اٌزؾ‪ٚ ،ً٠ٛ‬ث‪ٙ‬زا رؼ‪١‬ف ِخــبد ث‪١‬بٔ‪١‬خ‬
‫‪ٚ‬ػٕبطش رؾىُ الخزجبس إٌّبرط‪ٚ .‬ثبٌّمبثً‪ّ٠ ،‬ىٓ اعز‪١‬شاد ّٔبرط ِـ‪ٛ‬سح‬
‫ف‪ٚ ٟ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ف‪ ٟ‬الثف‪ ٛ١‬أ‪ٚ ٚ‬ؽذح ٔظبَ رؼش‪٠‬ف إٌظُ‪.‬‬
‫ؿج‪١‬ؼخ أد‪ٚ‬اد الثف‪ ٛ١‬اٌزفبػٍ‪١‬خ رغّؼ ثزغ‪١١‬ش اٌجشاِزشاد خالي ػٍّ‪١‬خ‬
‫رغغ‪ٔ ً١‬زبئظ ػٍّ‪١‬خ اٌّؾبوبح‪ .‬إٌّبرط اٌز‪٠ ٟ‬زُ ثٕبؤ٘ب ث‪ٛ‬اعـخ ػمذح‬
‫اٌّؾبوبح ‪ّ٠‬ىٓ أْ رؾًّ ٌ‪ٙ‬ذف ف‪ ٟ‬اٌضِٓ اٌؾم‪١‬م‪ ٟ‬ثبعزؼّبي ‪ٚ‬ؽذح الثف‪ٛ١‬‬
‫ٌٍضِٓ اٌؾم‪١‬م‪ٌ ٟ‬زظٕ‪١‬ف اٌزؾىُ ‪ٚ‬اٌّؾبوبح ثبعزؼّبي اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ ف‪ٟ‬‬
‫اٌؾٍمخ‪.‬‬
‫‪LabVIEW Real-Time Module for control prototyping and‬‬
‫‪hardware-in-the-loop (HIL) simulation.‬‬

‫‪143‬‬
The Simulation Loop ‫ؽٍمخ اٌّؾبوبح‬

Input Node Main Loop Output Node


‫دخً اٌؼمذح‬ ‫خ‬١‫غ‬١‫اٌؾٍمخ اٌشئ‬ ‫خشط اٌؼمذح‬
• Built in Differential Equation Solver allows continuous-time system
‫ب‬١ِٕ‫خ العزؼّبي ٔظُ ِغزّشح ص‬١ٍ‫ثٕبء أداح ؽً اٌّؼبدالد اٌزفبػ‬
• Similar to a While Loop with a predefined time period
‫ب‬١ِٕ‫ف ص‬٠‫سح عبثمخ اٌزؼش‬ٚ‫ب د‬ٌٙ ‫ِضً ؽٍمخ اٌفزشح‬
• Installed with Simulation Module ‫ؽذح ِؾبوبح‬ٚ ‫ِشوجخ ِغ‬
• Double-click Input Node to configure simulation parameters
• ‫ً ثبسِزشاد اٌّؾبوبح‬١‫اح اٌذخً ٌزشى‬ٛٔ ٍٝ‫ط ػ‬ٚ‫ٔمش ِضد‬
• Create an indicator on the Output Node to display Simulation errors ‫خٍك ِؤشش ػٕذ خشط‬
‫اٌؼمذح ٌٕشش أخـبء اٌّؾبوبح‬

144
‫ؽٍمخ اٌّؾبوبح رّضً ػٕظش ‪ٚ‬ؽذح اٌّؾبوبح اٌشئ‪١‬غ‪ ٟ٘ٚ .ٟ‬ػجبسح ػٓ ٔغخخ‬
‫ِـ‪ٛ‬سح ٌؾٍمخ اٌفزشح اٌز‪ ٟ‬رذِظ ػٕظش ؽً اٌّؼبدالد اٌزفبػٍ‪١‬خ اٌؼبد‪٠‬خ‪،‬‬
‫ِ‪ٛ‬اطفبد اٌز‪ٛ‬ل‪١‬ذ اٌذاخٍ‪١‬خ ‪ٚ‬اٌخبسع‪١‬خ‪ِٕ ٚ ،‬ظخ رمبؿغ ثشِغ‪١‬خ راد‬
‫لذساد‪.‬‬
‫ِغ ‪ٚ‬ؽذح اٌّؾبوبح ‪ّ٠‬ىٓ رٕف‪١‬ز ٔظُ اٌضِٓ اٌّغزّش ف‪ ٟ‬اٌّغبي اٌشلّ‪ٟ‬‬
‫اٌّزمـغ‪ .‬رزى‪ ْٛ‬اٌؾٍمخ ِٓ صالصخ أعضاء‪:‬‬
‫دخً اٌؼمذح (‪٠‬غبسا) ‪Input node (Left)-‬‬
‫‪٠‬غّؼ ثزؼش‪٠‬ف ثبساِزشاد اٌّؾبوبح ثشِغ‪١‬ب‪ .‬افزشاػ‪١‬ب‪٘ ،‬زٖ اٌجشاِزشاد‬
‫رى‪ ْٛ‬اعزبر‪١‬ى‪١‬خ(عبوٕخ) ‪ّ٠ٚ‬ىٓ أْ ‪٠‬زُ رشى‪ٍٙ١‬ب ثبٌٕمش اٌّضد‪ٚ‬ط دخً اٌؼمذح‪.‬‬
‫‪ّ٠ٚ‬ىٓ أْ ر‪ٛ‬عغ ثبٌٕمش ػٍ‪ ٝ‬اٌ‪ٙ‬بِش اٌغفٍ‪ٌٍ ٟ‬ؼمذح الٔزضاع اٌّؼبٌغخ ‪ٚ‬‬
‫اٌغؾت ألعفً ٌؼشع ثشاِزشاد إػبف‪١‬خ‪.‬‬
‫اٌؾٍمخ اٌشئ‪١‬غ‪١‬خ – ‪Main loop‬‬
‫ؽ‪١‬ش ‪ٛ٠‬ػغ إٌظبَ اٌّشاد رّض‪.ٍٗ١‬‬
‫خشط اٌؼمذح(‪Output node (Right) – )ٓ١ّ٠‬‬
‫‪٠‬شعغ األخـبء اٌز‪ٚ ٟ‬لؼذ ف‪ ٟ‬اٌّؾٍمخ‪ِ ،‬ضً داٌخ اٌزؾ‪ ً٠ٛ‬اٌغ‪١‬ش عٍ‪ّ١‬خ‪.‬‬

‫‪145‬‬
Simulation Loop Parameters ‫ثبساِزشاد ؽٍمخ اٌّؾبوبح‬
• Drag left node to show current parameters and
provide inputs for run-time simulation
configuration ‫ِزشاد‬ٚ‫بس اٌجبس‬ٙ‫ إلظ‬ٜ‫غش‬١ٌ‫إعغت اٌؼمذح ا‬
‫ب‬١ِٕ‫ً اٌّؾبوبح ص‬١‫ز رشى‬١‫ش ِذاخً ٌزٕف‬١‫ف‬ٛ‫ر‬ٚ ‫خ‬١ٌ‫اٌؾب‬

• Double-click Input Node to configure simulation


parameters ‫ً ثبسِزشاد‬١‫ دخً اٌؼمذح ٌزشى‬ٍٝ‫ط ػ‬ٚ‫ٔمش ِضد‬
‫اٌّؾبوبح‬

146
‫رشى‪ِ ً١‬ؾبوبح‬
‫‪Configuring a Simulation‬‬
‫‪ٛ٠‬عذ اٌىض‪١‬ش ِٓ اٌجشاِزشاد اٌز‪ّ٠ ٟ‬ىٓ رشى‪ٍٙ١‬ب ٌؾٍمخ ِؾبوبح‪.‬‬
‫ثبساِزشاد اٌّؾبوبح ‪Simulation Parameters Tab‬‬
‫صِٓ اٌّؾبوبح– ‪Simulation Time‬‬
‫‪٠‬ؾذد ِذ‪ ٜ‬د‪ٚ‬اَ د‪ٚ‬سح ”صِٓ اٌّؾبوبح“ ‪ِ ٚ‬ذح رٕف‪١‬ز اٌّؾبوبح‪٘ .‬زا اٌضِٓ اٌّؾبوبح‪.‬‬
‫ال ‪ ٍّٟ٠‬صِٓ ؽ‪ٛ‬عجخ(ِؼبٌغخ)‬
‫أداح ؽً اٌّؼبدالد – ‪Solver Method‬‬
‫‪٠‬ؼ‪ِ ٓ١‬ب ٔ‪ٛ‬ع أداح ؽً اٌّؼبدٌخ اٌزفبػٍ‪١‬خ اٌؼبد‪٠‬خ اٌز‪ ٟ‬رغزؼًّ ٌؾً رغّ‪١‬غ أٔ‪ٛ‬اع‬
‫اٌزىبًِ ‪ٚ‬اٌزفبػً ف‪ ٟ‬اٌّؾبوبح‪ .‬ر‪ٛ‬عذ أٔ‪ٛ‬اع ِزؼذدح ِٓ أد‪ٚ‬اد اٌؾً‪.‬‬
‫صِٓ اٌخـ‪ٛ‬ح ‪ ٚ‬ؽذ اٌزفب‪ٚ‬د اٌّغّ‪ٛ‬ػ ثٗ‪Time Step and Tolerance – -‬‬
‫ػ‪ٛ‬اًِ اٌؼجؾ ٘زٖ رزؾىُ ف‪ٔ ٟ‬بفزح صِٓ اٌخـ‪ٛ‬اد اٌز‪ ٟ‬رغزؼًّ ف‪ ٟ‬الثف‪ .ٛ١‬ػبدح‪،‬‬
‫ػ‪ٛ‬اَ اٌؼجؾ االفزشاػ‪١‬خ اٌّز‪ٛ‬فشح رىف‪، ٟ‬‬

‫‪147‬‬
‫‪ٌٚ‬ىٓ ‪٠‬غت إػبدح ػجـ‪ٙ‬ب إرا ٌضَ‪.‬‬
‫صِٓ اٌزمـ‪١‬غ – ‪Discrete Time‬‬
‫ثّب أْ اخز‪١‬بساد صِٓ اٌزمـ‪١‬غ اٌزار‪ ٟ‬ع‪ٛ‬ف رؼًّ ف‪ ٟ‬اٌىض‪١‬ش ِٓ اٌّؾبوبح‪ّ٠ ،‬ىٓ إعجبس‬
‫الثف‪ ٛ١‬فغش‪٠‬ب ثبعزؼّبي ؽغُ ِؼ‪ٌٍ ٓ١‬خـ‪ٛ‬ح ‪.‬‬
‫ثبساِزشاد اٌز‪ٛ‬ل‪١‬ذ ‪Timing Parameters Tab‬‬
‫اخز‪١‬بساد ر‪ٛ‬ل‪١‬ذ اٌجشٔبِظ رغزؼًّ ػبدح ػٕذ رٕف‪١‬ز اٌّؾبوبح‪٘ .‬زا ع‪ٛ‬ف ‪٠‬ؾً اٌّؼبدٌخ‬
‫ؽغت عشػخ ‪ٚ‬ؽذح اٌّؼبٌغخ‪ّ٠ .‬ىٓ ِالؽظخ ِؾبوبح ف‪ ٟ‬اٌضِٓ اٌؾم‪١‬م‪ٔ ،ٟ‬م‪َٛ‬‬
‫ثزؼـ‪(ً١‬ؽغت) اخز‪١‬بساد اٌز‪ٛ‬ل‪١‬ذ ف‪ ٟ‬اٌجشٔبِظ ‪ٚٚ‬ػغ ثشاِزشاد اٌّؾبوبح اٌّج‪ٕ١‬خ‪.‬‬
‫ِظذس ر‪ٛ‬ل‪١‬ذ اٌؾٍمخ – ‪Loop Timing Source‬‬
‫ػٕذ رٕف‪١‬ز ِؾبوبح ف‪ِ ٟ‬ى‪ٔٛ‬بد ِبد‪٠‬خ‪ ،‬رغ‪١‬ش ِظذس ر‪ٛ‬ل‪١‬ذ اٌؾٍمخ ثز‪ٛ‬ل‪١‬ذ اٌّى‪ٔٛ‬بد‬
‫رغزؼًّ ٌزؾم‪١‬ك رضآِ رٕف‪١‬ز اٌّؾبوبح ِغ اٌّبد‪٠‬خ اٌّز‪ٛ‬فشح‪٘ .‬زا االخز‪١‬بس ‪ّ٠‬ىٓ أْ‬
‫ِظذس صِٓ خبسع‪ِ ،ٟ‬ضً عبػخ ٔظبَ اٌزشغ‪ ،ً١‬أ‪ ٚ‬عبػخ ٌ‪ٛ‬ؽخ رؾظ‪ ً١‬اٌج‪١‬بٔبد‪.‬‬
‫ثبساِزشاد ر‪ٛ‬ل‪١‬ذ اٌؾٍمخ– ‪Loop Timing Parameters‬‬
‫٘زٖ اٌخ‪١‬بساد رزؾىُ ف‪ ٟ‬و‪١‬ف‪١‬خ رٕف‪١‬ز اٌؾٍمخ ثبػزجبس ِظذس اٌز‪ٛ‬ل‪١‬ذ اٌز‪ ٞ‬رُ اخز‪١‬بسٖ‪.‬‬
‫‪ّ٠‬ىٓ االعزؼبٔخ ثبٌّغبػذ‬

‫‪148‬‬
Generating Simulation Input ‫ذ دخً اٌّؾبوبح‬١ٌٛ‫ر‬
Simulations can utilize a wide variety of signal sources: ٓ‫ّى‬٠
‫اعؼخ ِٓ إشبساد اٌّظبدس‬ٚ ‫ػخ‬ّٛ‫ٌٍّؾبوبح اعزؼّبي ِغ‬

• Simulated Signals ‫إشبساد اٌّؾبوبح‬


– Step Input ً‫ح دخ‬ٛ‫إشبسح خـ‬
– Impulse ‫ٔجؼخ‬
– Front Panel User Input ‫ؽخ‬ٌٛ ً‫دخ‬
ًّ‫خ اٌّغزؼ‬١ِ‫األِب‬
• Real World signals ‫خ‬١‫م‬١‫إشبساد ؽم‬
– Data Acquisition Hardware ‫ٔبد‬ٛ‫ِى‬
‫بٔبد‬١‫ً اٌج‬١‫خ ٌزؾظ‬٠‫ِبد‬

150
‫اٌّؾبوبح ‪ّ٠‬ىٓ أْ رغزؼًّ اٌىض‪١‬ش ِٓ اإلشبساد‪.‬‬
‫إشبسح اٌّؾبوبح رف‪١‬ذ ف‪ ٟ‬رظٕ‪١‬ف اعزغبثبد إٌظُ‬
‫‪ٚ‬اخزجبس اٌؾبالد اٌّخزٍفخ‪ 0‬إشبسح اٌخـ‪ٛ‬ح رؼـ‪ٟ‬‬
‫اعزغبثخ ع‪١‬ذح‪ ،‬إشبسح إٌجؼخ عش‪٠‬ؼخ‪... ،‬‬
‫ثؼذ ر و‪١‬ذ اٌّؾبوبح‪ّ٠ ،‬ىٓ اعزؼّبي إشبسح ؽم‪١‬م‪١‬خ‬
‫ٌزؾً ِؾً إشبسح اٌّؾبوبح‪ .‬ثزٌه ٔم‪ َٛ‬ثؾغبثبد‬
‫ِجٕ‪١‬خ ػٍ‪ ٝ‬ث‪١‬بٔبد آٔ‪١‬خ‪.‬‬
‫‪.‬‬

‫‪151‬‬
Capturing Simulation Output ‫اٌزمبؽ خشط اٌّؾبوبح‬

• Use the Graph Utilities functions to


plot one or more signals ًّ‫اعزؼ‬
‫خ ٌشعُ اإلشبساد‬١ٔ‫ب‬١‫ظبئف اٌج‬ٌٛ‫ا‬

• Plots are updated as the Simulation


Loop executes ‫ِبد‬ٛ‫ش اٌشع‬٠‫زُ رؾذ‬٠
ٟ‫ف‬ ‫ٗ اٌؾٍمخ‬١‫ رٕفز ف‬ٞ‫لذ اٌز‬ٌٛ‫ا‬

152
‫اٌّؾبو‪ٌّ ٟ‬خـؾ شىً اٌّ‪ٛ‬عخ صِٕ‪١‬ب ٘‪ِ ٛ‬ؤشش ػذد‪ ٞ‬خبص‬
‫ٌٕشش سعُ أ‪ ٚ‬أوضش ِٓ سعُ ػٍ‪ٔ ٝ‬فظ اٌشبشخ‪ِ .‬خـؾ شىً‬
‫اٌّ‪ٛ‬عخ ‪ٛ٠‬عذ ف‪ٌٛ ٟ‬ؽخ‪:‬‬
‫» ‪Functions » Control Design & Simulation‬‬
‫‪Simulation » Graph Utilities » SimTime Waveform‬‬
‫‪palette‬‬
‫‪ّ٠‬ىٓ رغ‪١١‬ش اٌم‪ّ١‬ز‪ ٓ١‬اٌؼظّ‪ٚ ٝ‬اٌظغش‪ٌ ٜ‬ىً ِٓ اٌّؾ‪ٛ‬س‪ٓ٠‬‬
‫ثبٌٕمش ِشر‪ ٓ١‬ػٍ‪ ٝ‬اٌم‪ّ١‬خ اٌّؼٕ‪ٔٛ‬خ ‪ٚ‬وزبثخ ل‪ّ١‬خ عذ‪٠‬ذح‪ .‬وّب‬
‫‪ّ٠‬ىٓ رغ‪١١‬ش ػٕ‪ٔٛ‬خ أ‪ ِٓ ٞ‬اٌّؾ‪ٛ‬س‪ .ٓ٠‬وّب ‪ّ٠‬ىٓ رغ‪١١‬ش أعٍ‪ٛ‬ة‬
‫أ‪ ٚ‬ؿشاص أ‪ ٚ‬شىً ‪ ٌْٛ ٚ‬اٌشعُ‪....‬ثبٌٕمش ث‪ ّٕٝ١‬اٌف سح ػٍ‪ٝ‬‬
‫شؼبس اٌشعُ‪.‬‬

‫‪153‬‬
Exercise 3: ٓ٠‫اٌزّش‬
Simulate the Motor Control System ٟ‫ِؾبوبح ٔظبَ اٌزؾىُ ف‬
‫اٌّؾشن‬

Km 1
+_ PID J eq Rm s  K m
2
s

• Build a PID controller with Simulation Module. -ٍِٟ‫رىب‬-ٟ‫ثٕبء ؽبوُ رٕبعج‬


‫ؽذح اٌّؾبوبح‬ٚ ‫ ثبعزؼّبي‬ٍٟ‫رفبػ‬
• Create a state model that combines PID controller with existing transfer
function. ً٠ٛ‫ ِغ داٌخ اٌزؾ‬ٍٟ‫اٌزفبػ‬-ٍِٟ‫اٌزىب‬-ٟ‫رط رغّغ اٌؾبوُ اٌزٕبعج‬ّٛٔ ‫خٍك ؽبٌخ‬
‫فشح‬ٛ‫اٌّز‬
• Use different solver methods in the Simulation loop to optimize
performance. ً‫ي ٌؾً أِض‬ٛ‫ط‬ٌٍٛ ‫ ؽٍمخ اٌّؾبوبح‬ٟ‫اد ؽً ِخزٍفخ ف‬ٚ‫اعزؼًّ ؿشق أد‬
‫ األداء‬ٟ‫ف‬
154
‫انرًش‪Exercise 3: ٍٚ‬‬
‫افتح التمرين باسم‪1.Open Exercise 2.vi. :‬‬
‫أزفظ اندٓاص االفرشاض‪ ٙ‬تاعى‪2.Save the VI as Exercise 3.vi. :‬‬
‫إصانح زهقح انفرشج ‪3.Remove While Loop‬‬
‫ارْة إنٗ انًخغظ انظُذٔق‪ٔ ٙ‬قى تئصانح زهقح انفرشج‪ .‬أَقش ت‪ ًُٗٛ‬انفاسج ػهٗ زافح انسهقح‬
‫ٔاخرش إصانح انسهقح تس‪ٛ‬ث ال ‪ًٚ‬غر يا ْٕ يٕخٕد داخم انسهقح‪.‬‬
‫اعرثذل ػُاطش انرسكى انًٕطهح تانًخغٕط أنش‪ٚ‬اض‪ٛ‬اذ‪ ٙ‬تثٕاتد‬
‫‪K control‬‬ ‫أَقش ت‪ ًُٗٛ‬انفأسج ػهٗ ثاتد انرسكى ٔاخرش‪:‬‬
‫‪Right-click the l and choose Change to Constant. Set the‬‬
‫‪constant to 0.028.‬‬
‫ثى ضغ ق‪ًٛ‬ح انثاتد‪.‬‬

‫‪155‬‬
Right-click the Rm control and choose Change to Constant.
Set the constant to 3.3.
Rm:ٗ‫ًُٗ انفأسج ػه‬ٛ‫أَقش ت‬
.‫ًح انثاتد‬ٛ‫ ثى ضغ ق‬،‫م إنٗ ثاتد‬ٕٚ‫ٔاخرش انرس‬
Right-click the J control and choose Change to Constant. Set
the constant to 9.64E-6.
J:ٗ‫ًُٗ انفأسج ػه‬ٛ‫أَقش ت‬
.‫ًح انثاتد‬ٛ‫ ثى ضغ ق‬،‫م إنٗ ثاتد‬ٕٚ‫ٔاخرش انرس‬
‫ ٔ انثٕاب‬ٙ‫اذ‬ٛ‫اض‬ٚ‫ ياػذا ػقذج انًخغٕط أنش‬ٙ‫ء يٍ انًخغظ انظُذٔق‬ٙ‫قى تًغر كم ش‬
.ٙ‫اذ‬ٛ‫اض‬ٚ‫انًٕطهح تانًخغٕط أنش‬
MathScript Node, Kc, Ki, and Kd.

156
Step 4: Tuning and Verification
‫ك‬١‫ػغ رؾم‬ٚ ٚ ‫ ػجؾ‬:4 ‫ح‬ٛ‫اٌخـ‬

Tune the controller behavior to meet design


specifications in a realistic environment ‫ؾ‬١‫اػجؾ ِؾ‬
ٟ‫م‬١‫ؾ ؽم‬١‫ ِؾ‬ٟ‫ُ ف‬١ّ‫اطفبد اٌزظ‬ِٛ ٍٝ‫ي ػ‬ٛ‫اٌؾبوُ ٌٍؾظ‬
The Design Process ُ١ّ‫خ اٌزظ‬١ٍّ‫ػ‬
1. Modeling – Identify a mathematical representation of
the plant
2. Control Design – Choose a control method and
design a controller
3. Simulation – Employ a point-by-point approach to
simulate the system timing with a solver
4. Tuning and Verification – Introduce real-world
nonlinearities, tune, and verify the control algorithm ٚ ‫ػجؾ‬
ٟ‫ك ف‬١‫ رؾم‬ٚ ،‫ ػجؾ‬،‫بد‬١‫ الخـ‬:ٟ‫م‬١‫ اٌؼبٌُ اٌؾم‬ٟ‫ إدِبط ف‬-‫ك‬١‫ػغ رؾم‬ٚ
ُ‫ػجؾ ثبسِزشاد أداء اٌؾبو‬ٚ – ٟ‫م‬١‫ ػبٌُ ؽم‬ٟ‫ذ ف‬ٙ‫د اٌغ‬ٚ‫إدِبط ؽذ‬: ُ‫خ اٌزؾى‬١ِ‫اسص‬ٛ‫خ‬

5. . Deployment – Implement the finalized control system

158
‫إدِبط اٌالخـ‪١‬بد ‪Introducing Nonlinearities‬‬

‫•‬ ‫ِظبدس اٌالخـ‪١‬بد ‪Sources of Nonlinearities‬‬


‫رشجغ ‪– Saturation‬‬
‫رش‪٠ٛ‬ش ‪– Noise‬‬
‫اؽزىبن ‪– Friction‬‬

‫اٌالخـ‪١‬بد رغجت ٌٍّٕبرط اٌّضبٌ‪١‬خ ‪ٚ‬اٌؾبوّبد أْ ر خز ِغبٌه‬


‫رخزٍف ػٓ رٍه اٌّشرمجخ ف‪ ٟ‬اٌؼبٌُ اٌؾم‪١‬م‪.ٟ‬‬

‫‪159‬‬
‫اٌالخـ‪١‬بد رغجت رظشفب غ‪١‬ش ِشرمت ٌٍّٕبرط‬
‫اٌّضبٌ‪١‬خ ‪ٚ‬اٌؾبوّبد‪ِ .‬ظبدس اٌالخـ‪١‬بد رشًّ‬
‫اٌزشجغ‪ ،‬اٌزش‪٠ٛ‬ش‪ ،‬االؽزىبن‪ ،‬اٌز‪ ٟ‬ال ‪ّ٠‬ىٓ‬
‫ؽغبث‪ٙ‬ب ف‪ّٛٔ ٟ‬رط ٔظبَ خـ‪ٚ .ٟ‬ؽذح اٌّؾبوبح‬
‫‪ّ٠‬ىٕ‪ٙ‬ب رؾٍ‪ ً١‬إٌّبرط اٌالخـ‪١‬خ‪ٚ ،‬رغّؼ ثّؾبوبح‬
‫رٕف‪١‬زٖ‪.‬اٌزظشف اٌغ‪١‬ش ِضبٌ‪ ٟ‬لجً‬

‫‪160‬‬
‫ِضبي ػٍ‪ ٝ‬اٌالخـ‪١‬بد ‪Nonlinearity Example‬‬

‫إدِبط الخـ‪١‬خ ِٓ ٔ‪ٛ‬ع رشجغ ِغ ‪ٚ‬ؽذح ِؾبوبح ‪ّ٠‬ىٓ أْ رغ‪١‬ش عٍ‪ٛ‬ن‬


‫إٌّ‪ٛ‬رط وٍ‪١‬ب‪.‬‬

‫اعزغبثخ ِضبٌ‪١‬خ ٌّٕ‪ٛ‬رط خـ‪ ٟ‬ف‪ ٟ‬رظّ‪ ُ١‬رؾىُ‬ ‫ٔفظ اٌؾبوُ ث‪ٛ‬ع‪ٛ‬د رشجغ أػ‪١‬ف ف‪ ٟ‬اٌّؾبوبح‬

‫‪ Kc = 10‬رٕبعج‪ٟ‬‬
‫‪ Ki = 0‬رىبٍِ‪ٟ‬‬
‫‪Kd = 1‬رفبػٍ‪ٟ‬‬

‫‪161‬‬
‫ف‪٘ ٟ‬زا اٌّضبي‪ ،‬رُ رى‪ّٛٔ ٓ٠ٛ‬رط ؽبوُ رٕبعج‪ ٟ‬رىبٍِ‪ ٟ‬رفبػٍ‪ ٟ‬ثبعزؼّبي‬
‫‪ٚ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ‪ .‬ثبساِزشاد اٌؾبوُ اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪٠ ٟ‬زُ‬
‫ػجـ‪ٙ‬ب ثؾ‪١‬ش رى‪ ْٛ‬اعزغبثخ اٌخـ‪ٛ‬ح ٌٍٕظبَ لش‪٠‬جخ ِٓ اٌّضبٌ‪١‬خ‪٠ .‬غزؼًّ‬
‫اٌّؾبوبح ِغ ٔفظ ثبساِزشاد اٌؾبوُ ػٕذ٘ب ّٔ‪ٛ‬رط اٌؾبوُ ف‪ٚ ٟ‬ؽذح‬
‫اٌزٕبعج‪ ٟ‬اٌزىبٍِ‪ ٟ‬اٌزفبػٍ‪ ،ٟ‬ؽ‪١‬ش أدِغذ الخـ‪١‬خ رشجغ‪ .‬اٌالخـ‪١‬خ رّضً‬
‫اٌؼظّ‪ ٚ ٝ‬اٌظغش‪ .ٜ‬ل‪ّ١‬ز‪ ٟ‬اٌغ‪ٙ‬ذ‬
‫)‪the maximum and minimum voltage (24V, -24V‬‬
‫اٌز‪ ٟ‬رغز‪ ٞ‬اٌّؾشن‪ .‬إدِبط ‪ٚ‬ظ‪١‬فخ اٌزشجغ رغ‪١‬ش رظشف إٌظبَ ثؾ‪١‬ش ‪٠‬ى‪ْٛ‬‬
‫رظشف‪ٙ‬ب ثؼ‪١‬ذا ػٓ اٌزظشف اٌّضبٌ‪٘ .ٟ‬زا اٌم‪١‬ذ أ‪ ٚ‬اٌزؾفظ اٌؾم‪١‬م‪ٌٛ ٟ‬ظ‪١‬فخ‬
‫اٌزشجغ ‪٠‬غت اػزجبسٖ ِٓ ا‪٠ٚ ْ٢‬غت إػبدح ػجؾ ثبساِزشاد اٌؾبوُ‬
‫رٕبعج‪ ٟ‬رىبٍِ‪ ٟ‬رفبػٍ‪ ٟ‬إلػـبء اعزغبثخ أفؼً ث‪ٛ‬ع‪ٛ‬د ل‪١‬ذ‪.‬‬
‫اٌجؾش ػٓ اٌؾً األِضً رشًّ ‪،‬ػبدح‪ ،‬اٌىض‪١‬ش ِٓ اٌزىشاس ث‪ِ ٓ١‬ظُّ اٌزؾىُ‬
‫‪ ٚ‬اٌّؾبوبح اٌز‪ٔ ٟ‬ش‪٠‬ذ اٌؾظ‪ٛ‬ي ػٍ‪ٙ١‬ب ٌٍ‪ٛ‬ط‪ٛ‬ي إٌ‪ ٝ‬أداء ِمج‪ٛ‬ي ٌٍٕظبَ‪..‬‬

‫‪162‬‬
Controller Optimization ُ‫ ٌٍؾبو‬ٍٝ‫ّخ اٌّض‬١‫اٌجؾش ػٓ اٌم‬
Control Design ُ‫ُ اٌزؾى‬١ّ‫رظ‬
• Tune Controller Parameters ُ‫ػجؾ ثبسِزشاد اٌؾبو‬
• Estimate Performance ‫ش األداء‬٠‫رمذ‬
Simulation ‫ِؾبوبح‬
• Introduce Impairments and Nonlinearities ‫بد‬١‫الخـ‬ٚ ‫إدِبط ِؤصشاد‬

0Verify Performance ‫ك األداء‬١‫ػغ رؾم‬ٚ


Controller optimization is an iterative process
ٞ‫ ٌٍؾبوُ ػًّ رىشاس‬ٍٝ‫ّخ اٌّض‬١‫اٌجؾش ػٓ اٌم‬

163
‫‪ّ٠‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬اٌم‪ّ١‬خ اٌّضٍ‪ٌٍ ٝ‬ؾبوُ ثف‪ ُٙ‬اٌؼٍّ‪١‬خ (إٌظبَ)ع‪١‬ذا‪ 0‬اٌف‪ُٙ‬‬
‫‪ ٠‬ر‪ ِٓ ٟ‬اٌزؾٍ‪ ً١‬اٌز‪٠ ٞ‬زُ ف‪ٚ ٟ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ف‪ ٟ‬الثف‪ .ٛ١‬اٌشع‪ِٛ‬بد‬
‫‪ٚ‬اٌّخــبد اٌج‪١‬بٔ‪١‬خ اٌّزخظظخ ‪ ،‬وّخـؾ ث‪ٛ‬د‪ِٛ ،ٞ‬ػغ اٌغز‪ٚ‬س‪ِٚ ،‬خـؾ‬
‫ٔ‪١‬ى‪٠ٛ‬غذ‪ ،‬رؼـ‪ ٟ‬فىشح ػٓ رظشف إٌظبَ(اٌؼٍّ‪١‬خ)‪ .‬رؾٍ‪ ً١‬أدق ‪،‬ف‪ ٟ‬ؽبٌخ ٔظبَ‬
‫ر‪ ٞ‬ؽٍمخ ِفز‪ٛ‬ؽخ‪ ،‬ث‪ٛ‬ع‪ٛ‬د ؽبوُ رغّؼ ثذساعخ االعزمشاس‪ِٛٚ ،‬اطفبد أخش‪ٜ‬‬
‫‪ّ٠‬ىٓ ؽغبث‪ٙ‬ب‪ 0‬ف‪٘ ٟ‬زا اٌّ‪ٛ‬ػ‪ٛ‬ع‪ّ٠ ،‬ىٓ اعزؼّبي رظّ‪ ُ١‬اٌزؾىُ ٌٍؾظ‪ٛ‬ي‬
‫اٌزفبػٍ‪ .ٟ‬االعزغبثخ اٌضِٕ‪١‬خ ػٍ‪ ٝ‬ل‪ِ ُ١‬ضٍ‪ ،ٝ‬وبٌىغت اٌزّبصٍ‪ ،ٟ‬اٌزىبٍِ‪،ٟ‬‬
‫ر‪ٛ‬فش فىشح عش‪٠‬ؼخ ػٍ‪ ٝ‬اٌزظشف اٌّضبٌ‪ٌٍٕ ٟ‬ظبَ‪.‬‬
‫ِضً صِٓ اٌظؼ‪ٛ‬د‪ ،‬صِٓ اٌ‪ٛ‬ط‪ٛ‬ي ػٍ‪ ٝ‬اٌمّخ‪ ،‬اٌزؼذ‪ ... ،ٞ‬ػٕذ اعزؼّبي ‪ٚ‬ؽذح‬
‫اٌّؾبوبح ٌٍز وذ ِٓ طؾخ ٘زٖ اٌجبساِزشاد رؾذ ػ‪ٛ‬ائك ؽم‪١‬م‪١‬خ‪.‬‬
‫أؽذ ٘زٖ األِضٍخ ٘‪ ٟ‬اٌم‪ّ١‬خ اٌىجش‪ٚ ٜ‬اٌم‪ّ١‬خ اٌظغش‪ٌٍ ٜ‬غ‪ٙ‬ذ ‪ٚ‬اٌز‪١‬بس اٌّز‪ٛ‬فشاْ‬
‫ٌزغز‪٠‬خ اٌّؾشن‪.‬‬
‫ؽذ‪ٚ‬د ع‪ٙ‬ذ اٌّؾشن رؾذد اٌّذ‪ ٜ‬اٌخـ‪ٌٍ ٟ‬ؼٍّ‪١‬خ‪ .‬خبسط اٌّذ‪ّ٠ ،ٜ‬ىٓ أْ ‪٠‬ز صش‬
‫اٌالخـ‪١‬بد اٌز‪ّ٠ ٟ‬ىٓ رّض‪ٍٙ١‬ب ف‪ ٟ‬اٌّؾشن ‪٠ٚ‬ظجؼ غ‪١‬ش دل‪١‬ك‪٘ .‬زٖ اٌؾبٌخ رّضً‬
‫‪ٚ‬ؽذح اٌّؾبوبح‪.‬‬

‫‪164‬‬
Tuning your PID Controller -ٍِٟ‫اٌزىب‬-ٟ‫ػجؾ اٌؾبوُ اٌزٕبعج‬
ٍٟ‫اٌزفبػ‬
Tune PID controller design using the step response ُ‫ُ ؽبو‬١ّ‫ػجؾ رظ‬
‫ح‬ٛ‫ ثبعزؼّبي اعزغبثخ خـ‬ٍٟ‫رفبػ‬-ٍِٟ‫رىب‬-ٟ‫رٕبعج‬

• Begin with Gains set at: Kc = 1, Ki = 0, and Kd = 0 ‫ُ اٌىغت‬١‫ل‬

• Increase Proportional Gain (Kc) to get desired rise time


‫ة‬ٛ‫د اٌّشغ‬ٛ‫ صِٓ اٌظؼ‬ٍٝ‫ي ػ‬ٛ‫ ٌٍؾظ‬ٟ‫ّخ ِؼبًِ اٌىغت اٌزٕبعج‬١‫اٌشفغ ِٓ ل‬

• Increase Derivative Gain (Kd) to reduce overshoot and settling time


‫ صِٓ االعزمشاس‬ٚ )‫ص‬ٚ‫(اٌزغب‬ٞ‫ً ِٓ اٌزؼذ‬١ٍ‫ ٌٍزم‬ٍٟ‫ّخ ِؼبًِ اٌىغت اٌزفبػ‬١‫اٌشفغ ِٓ ل‬

• Increase Integral Gain (Ki) to reduce steady-state error if necessary


‫ً ِٓ خـ ؽبٌخ االعزمشاس إرا وبْ الصِب‬١ٍ‫ ٌٍزم‬ٍِٟ‫ّخ اٌىغت اٌزىب‬١‫اٌشفغ ِٓ ل‬

165
Exercise 4: ٓ٠‫اٌزّش‬
Tune the Controller ُ‫ػجؾ اٌؾبو‬

Km 1
+_ PID J eq Rm s  K m
2
s

• Change Simulation loop to a continuous model ‫رط ِغزّش‬ّٛٔ ٌٝ‫ً ؽٍمخ اٌّؾبوبح إ‬٠ٛ‫رؾ‬
• Incorporate nonlinearities into state model. ‫رط اٌؾبٌخ‬ّٛٔ ٟ‫بد ف‬١‫إدساط الخـ‬
• Tune PID parameters with a continuous input. ً‫ ثذخ‬ٍٟ‫رفبػ‬-ٍِٟ‫رىب‬-ٟ‫ػجؾ اٌؾبوُ رٕبعج‬
‫ِغزّش‬

166
Exercise 4: ٍٚ‫انرًش‬
1. Open Exercise 3.vi. ٍٚ‫افرر انرًش‬
2. Save the VI as Exercise 4.vi. :‫أزفظ تاعى‬
3. Go to the front panel and place down a Slide Switch control. ‫ انهٕزح‬ٙ‫ف‬
.ٙ‫ح َضغ ػُظش ذسكى اَضالق‬ٛ‫األياي‬
4. Right-click and select Boolean »Slide Switch :‫ًُٗ انفاسج َٔخراس‬ٛ‫َُقش ت‬
5. Label the Slide Switch Input Mode. ٙ‫َؼٌُٕ ػُظش انرسكى أالَضالق‬
6. Double-click on empty space to the left of Input Mode to create a free
label. Type “Manual )Dial(” inside this free label. “Manual )Dial(”
:ًّٛ‫ٍ ػُٕاٌ خاص َٔغ‬ٕٚ‫غاس ًَٕرج انذخم نرك‬ٚ ٗ‫ انفشاؽ ػه‬ٙ‫ٍ ف‬ٛ‫َُقش يشذ‬
7. Double-click on empty space to the right of Input Mode to create another
free label. Type “Pulse Train” inside this free label . “Pulse Train” ‫َُقش‬
ًّٛ‫ٍ ػُٕاٌ آخش َٔغ‬ٕٚ‫ٍ ًَٕرج انذخم نرك‬ًٛٚ ٗ‫ انفشاؽ ػه‬ٙ‫ٍ ف‬ٛ‫يشذ‬
8. Place a dial on the front panel. Right-click and select Numeric »Dial.
‫ح َُٔقش‬ٛ‫ انهٕزح األياي‬ٙ‫َضغ يفرازا دٔاسا(ذهفُح) ف‬Numeric »Dial
:‫ًُٗ انفأسج َٔخراس‬ٛ‫ت‬

167
1. Label the Dial Input Angle. ٘ٔ‫َؼَُّٕ تانذخم انضا‬
2. Place a stop button on the front panel. Right-click and select
Boolean» Stop Button. ‫َضغ صس ذٕقف ػهٗ انهٕزح‬
Boolean» Stop Button :‫ًُٗ انفاسج َٔخراس‬ٛ‫ َُٔقش ت‬، ‫ح‬ٛ‫األياي‬
1. Go to the block diagram. ٙ‫َزْة ػهٗ انًخغظ انظُذٔق‬
2. Double-click the block on the top-left of the Simulation Loop.
In the Configure Simulation Parameters window, set Final Time
to “Inf”. ‫م َضغ‬ٛ‫ َافزج انرشك‬ٙ‫ ف‬.‫غشٖ نسهقح انًساكاج‬ٛ‫ٍ ػهٗ انقًح ان‬ٛ‫َُقش يشذ‬
:ٗ‫ إن‬ٙ‫انضيٍ انُٓائ‬
3. Right-click the Step Signal VI and select Replace»
Programming» Comparison» Select ‫ًُٗ انفأسج ػهٗ اندٓاص‬ٛ‫َُقش ت‬
Replace» Programming» Comparison» ‫ إلشاسج انخغٕج‬ٙ‫االفرشاض‬
:‫َٔخراس‬
4. Right-click Input Angle (rad) and select Create» Control. ‫َُقش‬
‫ٍ ػُظش ذسكى‬ٕٚ‫ًُٗ انفأسج ػهٗ انذخم انضأ٘ َٔخراس ذك‬ٛ‫ت‬
5. Label this new control Output Angle (rad). ‫َؼٌُٕ خشج ػُظش انرسكى‬
٘ٔ‫تانخشج انضا‬
6. Right-click Output Angle (rad) and select Change to Indicator.
‫ًُٗ انفأسج ػهٗ انخشج انضأ٘ َٔخراس زٕل إنٗ يؤشش‬ٛ‫َُقش ت‬

168
Step 5: Deployment ‫ إٌشش‬:5 ‫ح‬ٛ‫اٌخـ‬

Implement the finalized control system ُ‫ز ٔظبَ اٌزؾى‬١‫رٕف‬


ِٟ‫اٌخزب‬
The Design Process
1. Modeling – Identify a mathematical representation of the
plant
2. Control Design – Choose a control method and design a
controller
3. Simulation – Employ a point-by-point approach to simulate
the system timing with a solver
4. Tuning and Verification – Introduce real-world
nonlinearities, tune, and verify the control algorithm
5. Deployment – Implement the finalized control system
‫ اٌغشػخ‬ٟ‫خ ٌٍزؾىُ ف‬٠‫ٔبد ِبد‬ٛ‫ ِى‬ٍٝ‫خ رؾىُ ػ‬١ِ‫اسص‬ٛ‫ٔشش خ‬:‫ تُفيز َظاو انتحكى انختايي‬-‫انُشش‬
Deploy the control algorithm on real hardware to control the speed of the motor.

170
‫‪ّ٠‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬اٌم‪ّ١‬خ اٌّضٍ‪ٌٍ ٝ‬ؾبوُ ثف‪ ُٙ‬اٌؼٍّ‪١‬خ (إٌظبَ)ع‪١‬ذا‪ 0‬اٌف‪ُٙ‬‬
‫‪ ٠‬ر‪ ِٓ ٟ‬اٌزؾٍ‪ ً١‬اٌز‪٠ ٞ‬زُ ف‪ٚ ٟ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ف‪ ٟ‬الثف‪ .ٛ١‬اٌشع‪ِٛ‬بد‬
‫‪ٚ‬اٌّخــبد اٌج‪١‬بٔ‪١‬خ اٌّزخظظخ ‪ ،‬وّخـؾ ث‪ٛ‬د‪ِٛ ،ٞ‬ػغ اٌغز‪ٚ‬س‪ِٚ ،‬خـؾ‬
‫ٔ‪١‬ى‪٠ٛ‬غذ‪ ،‬رؼـ‪ ٟ‬فىشح ػٓ رظشف إٌظبَ(اٌؼٍّ‪١‬خ)‪ .‬رؾٍ‪ ً١‬أدق ‪،‬ف‪ ٟ‬ؽبٌخ ٔظبَ‬
‫ر‪ ٞ‬ؽٍمخ ِفز‪ٛ‬ؽخ‪ ،‬ث‪ٛ‬ع‪ٛ‬د ؽبوُ رغّؼ ثذساعخ االعزمشاس‪ِٛٚ ،‬اطفبد أخش‪ٜ‬‬
‫‪ّ٠‬ىٓ ؽغبث‪ٙ‬ب‪ 0‬ف‪٘ ٟ‬زا اٌّ‪ٛ‬ػ‪ٛ‬ع‪ّ٠ ،‬ىٓ اعزؼّبي رظّ‪ ُ١‬اٌزؾىُ ٌٍؾظ‪ٛ‬ي ػٍ‪ٝ‬‬
‫اٌزفبػٍ‪ .ٟ‬االعزغبثخ اٌضِٕ‪١‬خ ر‪ٛ‬فش ل‪ِ ُ١‬ضٍ‪ ،ٝ‬وبٌىغت اٌزّبصٍ‪ ،ٟ‬اٌزىبٍِ‪،ٟ‬‬
‫فىشح عش‪٠‬ؼخ ػٍ‪ ٝ‬اٌزظشف اٌّضبٌ‪ٌٍٕ ٟ‬ظبَ‪:‬‬
‫ِضً صِٓ اٌظؼ‪ٛ‬د‪ ،‬صِٓ اٌ‪ٛ‬ط‪ٛ‬ي ػٍ‪ ٝ‬اٌمّخ‪ ،‬اٌزؼذ‪ ... ،ٞ‬ػٕذ اعزؼّبي ‪ٚ‬ؽذح‬
‫اٌّؾبوبح ٌٍز وذ ِٓ طؾخ ٘زٖ اٌجبساِزشاد رؾذ ػ‪ٛ‬ائك ؽم‪١‬م‪١‬خ‪.‬‬
‫أؽذ ٘زٖ األِضٍخ ٘‪ ٟ‬اٌم‪ّ١‬خ اٌىجش‪ٚ ٜ‬اٌم‪ّ١‬خ اٌظغش‪ٌٍ ٜ‬غ‪ٙ‬ذ ‪ٚ‬اٌز‪١‬بس اٌّز‪ٛ‬فشاْ‬
‫ٌزغز‪٠‬خ اٌّؾشن‪.‬‬
‫ؽذ‪ٚ‬د ع‪ٙ‬ذ اٌّؾشن رؾذد اٌّذ‪ ٜ‬اٌخـ‪ٌٍ ٟ‬ؼٍّ‪١‬خ‪ .‬خبسط اٌّذ‪ّ٠ ،ٜ‬ىٓ أْ ‪٠‬ز صش‬
‫اٌّؾشن ‪٠ٚ‬ظجؼ غ‪١‬ش دل‪١‬ك‪.‬‬

‫‪171‬‬
‫‪ّ٠‬ىٓ اٌؾظ‪ٛ‬ي ػٍ‪ ٝ‬اٌم‪ّ١‬خ اٌّضٍ‪ٌٍ ٝ‬ؾبوُ ثف‪ ُٙ‬اٌؼٍّ‪١‬خ‬
‫(إٌظبَ)ع‪١‬ذا‪ 0‬اٌف‪ ٠ ُٙ‬ر‪ ِٓ ٟ‬اٌزؾٍ‪ ً١‬اٌز‪٠ ٞ‬زُ ف‪ٚ ٟ‬ؽذح‬
‫رظّ‪ ُ١‬اٌزؾىُ ف‪ ٟ‬الثف‪ .ٛ١‬اٌشع‪ِٛ‬بد ‪ٚ‬اٌّخــبد اٌج‪١‬بٔ‪١‬خ‬
‫اٌّزخظظخ ‪ ،‬وّخـؾ ث‪ٛ‬د‪ِٛ ،ٞ‬ػغ اٌغز‪ٚ‬س‪ِٚ ،‬خـؾ‬
‫ٔ‪١‬ى‪٠ٛ‬غذ‪ ،‬رؼـ‪ ٟ‬فىشح ػٓ رظشف إٌظبَ(اٌؼٍّ‪١‬خ)‪ .‬رؾٍ‪ ً١‬أدق‬
‫‪،‬ف‪ ٟ‬ؽبٌخ ٔظبَ ر‪ ٞ‬ؽٍمخ ِفز‪ٛ‬ؽخ‪ ،‬ث‪ٛ‬ع‪ٛ‬د ؽبوُ رغّؼ ثذساعخ‬
‫‪ّ٠‬ىٓ ؽغبث‪ٙ‬ب‪ 0‬ف‪٘ ٟ‬زا االعزمشاس‪ِٛٚ ،‬اطفبد أخش‪ٜ‬‬
‫اٌّ‪ٛ‬ػ‪ٛ‬ع‪ّ٠ ،‬ىٓ اعزؼّبي رظّ‪ ُ١‬اٌزؾىُ ٌٍؾظ‪ٛ‬ي ػٍ‪ ٝ‬ل‪ُ١‬‬
‫اٌزفبػٍ‪ .ٟ‬االعزغبثخ ِضٍ‪ ،ٝ‬وبٌىغت اٌزّبصٍ‪ ،ٟ‬اٌزىبٍِ‪،ٟ‬‬
‫اٌضِٕ‪١‬خ ر‪ٛ‬فش فىشح عش‪٠‬ؼخ ػٍ‪ ٝ‬اٌزظشف اٌّضبٌ‪ٌٍٕ ٟ‬ظبَ‪.‬‬
‫ِضً صِٓ اٌظؼ‪ٛ‬د‪ ،‬صِٓ اٌ‪ٛ‬ط‪ٛ‬ي ػٍ‪ ٝ‬اٌمّخ‪ ،‬اٌزؼذ‪ ،ٞ‬صِٓ‬
‫االعزمشاس‪...‬‬

‫‪172‬‬
Control System Deployment Options ُ‫بساد ٔشش ٔظبَ اٌزؾى‬١‫خ‬
Algorithms designed in LabVIEW Control Design Toolkit and
Simulation Module can be deployed on a desktop PC, or a Real
Time system. ْ‫ّىٓ أ‬٠ ‫ِؾبوبح‬ٚ ُ‫ُ رؾى‬١ّ‫ؽذح رظ‬ٚ ٟ‫بد اٌّظّّخ ف‬١ِ‫اسص‬ٛ‫اٌخ‬
ٟ‫م‬١‫ اٌضِٓ اٌؾم‬ٟ‫ ٔظبَ رؾىُ ف‬ٚ‫ أ‬ٟ‫ة شخظ‬ٛ‫ شبشخ ؽبع‬ٍٝ‫رٕفز ػ‬
• Desktop PC ٟ‫ة شخظ‬ٛ‫ؽبع‬
− Program runs on Windows ‫ص‬ٚ‫ٕذ‬٠ٚ ٍٝ‫ٕفز ػ‬٠ ‫ثشٔبِظ‬
− Input and Output via NI Data Acquisition device ً‫اٌذخ‬
‫بٔبد‬١‫ً ث‬١‫بص رؾظ‬ٙ‫اٌخشط ِٓ خالي ع‬ٚ
− For example, desktop PC with PCI-6259 ‫ة‬ٛ‫ِضً ؽبع‬
ٟ‫شخظ‬
• Real Time System ٟ‫م‬١‫ٔظبَ اٌضِٓ اٌؾم‬
− Program runs on a deterministic operating system ‫ثشٔبِظ‬
‫ً ِؾذد‬١‫ ٔظبَ رشغ‬ٍٝ‫ؼًّ ػ‬٠
− Input and Output via specialized devices ِٓ ‫اٌخشط‬ٚ ً‫اٌذخ‬
‫ضح ِزخظظخ‬ٙ‫خالي أع‬
− For example, CompactRIO controller with selected
modules
ُ‫ؽذاد رؾى‬ٚ ‫اٌّخبسط ِغ‬ٚ ً‫ً اٌّذاخ‬١‫ؽذح ِذِغخ إلػبدح رشى‬ٚ :ً‫ِض‬
‫ِخزبسح‬
173
‫ثؼذ إرّبَ رظّ‪ٔ ُ١‬ظبَ رؾىُ ث‪ٛ‬اعـخ ‪ٚ‬ؽذح رظّ‪ ُ١‬اٌزؾىُ ‪ٚٚ‬ؽذح اٌّؾبوبح ف‪ ٟ‬الثف‪،ٛ١‬‬
‫‪ّ٠‬ىٓ رٕف‪١‬ز اٌخ‪ٛ‬اسصِ‪١‬خ ٌٍزؾىُ ف‪ٔ ٟ‬ظبَ ف‪١‬ض‪٠‬بئ‪ ٟ‬ؽم‪١‬م‪ّ٠.ٟ‬ىٓ رٕف‪١‬ز اٌخ‪ٛ‬اسصِ‪١‬خ ػٓ‬
‫ؿش‪٠‬ك اٌؾبعت اٌشخظ‪ ٟ‬أ‪ ٚ‬ف‪ ٟ‬اٌضِٓ اٌؾم‪١‬م‪.ٟ‬‬
‫ػٕذ رٕف‪١‬ز ٔظبَ رؾىُ ػٍ‪ ٝ‬عـؼ ِىزت ‪٠‬غزٍضَ اعزجذاي اٌؼٍّ‪١‬خ ث‪ٛ‬ظبئف دخً ‪ٚ‬خشط‬
‫ِٓ ِى‪ٔٛ‬بد ِبد‪٠‬خ‪.‬‬
‫‪ٕ٠‬فز إٌظبَ ف‪ ٟ‬الثف‪ِ ٛ١‬ضً ِب ٘‪ ٛ‬ف‪ ٟ‬اٌّؾبوبح‪ .‬وّضبي‪ٔ ،‬غزجذي داٌخ اٌزؾ‪ ً٠ٛ‬اٌز‪ ٟ‬رّضً‬
‫اٌؼٍّ‪١‬خ(إٌظبَ اٌّزؾىُ ف‪ )ٗ١‬ف‪ ٟ‬ؽٍمخ ِؾبوبح ثبعزؼّبي ع‪ٙ‬بص رؾظ‪ ً١‬اٌج‪١‬بٔبد‪:‬‬
‫ثذخً ‪ٚ‬خشط اٌغ‪ٙ‬بص االفزشاػ‪NI-DAQmx input and output Vis ٟ‬‬
‫‪The DAQmx VIs would control an NI Data Acquisition device like the‬‬
‫‪PCI-6259.‬‬
‫ٌىٓ ؿش‪٠‬مخ رٕف‪١‬ز ٔظبَ رؾىُ ػٍ‪ ٝ‬عـؼ ِىزت‪ ،‬رزّضً ف‪ ٟ‬ػذَ ِؾذ‪ٚ‬د‪٠‬خ ٔظبَ رشغ‪ً١‬‬
‫اٌؾبع‪ٛ‬ة‪ّ٠ .‬ىٓ أْ رؾذس ِمبؿؼبد رخً ثبٌٕزبئظ‪ٌٍ .‬ؾظ‪ٛ‬ي ػٍ‪ٔ ٝ‬زبئظ ِشػ‪١‬خ ‪٠‬غت‬
‫اعزؼّبي اٌزغشثخ ف‪ ٟ‬اٌضِٓ اٌؾم‪١‬م‪ ٟ‬ثبعزؼّبي ع‪ٙ‬بص ِذِظ إلػبدح رشى‪ ً١‬اٌّذاخً‬
‫‪ٚ‬اٌّخبسط ِضً‪such as the CompactRIO :‬‬

‫‪174‬‬
Deployment ‫ز‬١‫اٌزٕف‬ٚ ‫إٌشش‬
Moving from a simulated model to a real life model ٌٝ‫رط ِؾبوبح إ‬ّٛٔ ِٓ ‫س‬ٚ‫اٌّش‬
ٟ‫م‬١‫رط ػبٌُ ؽم‬ّٛٔ
• Replace Plant Model with Hardware I/O ‫خ‬٠‫ٔبد ِبد‬ٛ‫خ ثّى‬١ٍّ‫رط اٌؼ‬ّٛٔ ‫ش‬١١‫رغ‬
‫خشط‬ٚ ً‫راد دخ‬
• Make sure Hardware I/O timing matches Simulation ً‫ذ ِذاخ‬١‫ل‬ٛ‫ر وذ ِٓ أْ ر‬
‫ائُ اٌّؾبوبح‬ٛ٠ ‫خ‬٠‫ٔبد اٌّبد‬ٛ‫ِخبسط اٌّى‬ٚ
• Loop timing ‫ذ‬١‫ل‬ٛ‫ؽٍمخ اٌز‬

175
‫‪ٚ‬ؽذح اٌّؾبوبح ف‪ ٟ‬الثف‪ّ٠ ٛ١‬ىٓ اعزؼّبٌ‪ٙ‬ب ٌٍزؾىُ ف‪ ٟ‬إٌظُ ف‪ ٟ‬اٌضِٓ‬
‫اٌؾم‪١‬م‪ٚ ٟ‬وزٌه ف‪ّٔ ٟ‬برط اٌّؾبوبح‪ٌٍّ .‬ش‪ٚ‬س ِٓ ّٔبرط اٌّؾبوبح إٌ‪ٔ ٝ‬ظُ‬
‫اٌضِٓ اٌؾم‪١‬م‪ّ٠،ٟ‬ىٓ اعزجذاي اٌؼٍّ‪١‬خ(إٌظبَ اٌّزؾىُ ف‪ )ٗ١‬ث‪ٛ‬ظبئف ِذاخً‬
‫‪ِٚ‬خبسط اٌّى‪ٔٛ‬بد اٌّبد‪٠‬خ‪.‬‬
‫ف‪٘ ٟ‬زٖ اٌؾبٌخ‪ ،‬ع‪ٛ‬ف ٔغزجذي داٌخ اٌزؾ‪ ً٠ٛ‬اٌز‪ ٟ‬رّضً اٌّؾشن ثّذاخً‬
‫‪ِٚ‬خبسط اٌغ‪ٙ‬بص االفزشاػ‪ٟ‬‬
‫‪DAQmx input and output VIs that control the actual motor.‬‬
‫اٌز‪٠ ٞ‬زؾىُ ف‪ ٟ‬اٌّؾشن اٌؾبٌ‪.ٟ‬‬
‫ٌٍز‪ٛ‬ل‪١‬ذ اػزجبساد ِ‪ّٙ‬خ ػٕذ اٌزٕف‪١‬ز ثبعزؼّبي ‪ٚ‬ؽذح اٌّؾبوبح‪ .‬ثّب أْ ؽٍمخ‬
‫‪ODE solver with time‬اٌّؾبوبح رغزؼًّ أداء ؽً اٌّؼبدالد اٌزفبػٍ‪١‬خ‬
‫ثخـ‪ٛ‬اد صِٕ‪١‬خ‪steps:‬‬
‫‪٠‬غت ‪ٚ‬ػغ ثبساِزشاد اٌّؾبوبح ‪ ٚ‬ثبساِزشاد اٌز‪ٛ‬ل‪١‬ذ اٌخبطخ ثبٌؾٍمخ ٌى‪ٟ‬‬
‫‪٠‬ى‪ٌٙ ْٛ‬ب ٔفظ صِٓ اٌخـ‪ٛ‬ح‪ِٙ .‬بَ رؾظ‪ ً١‬اٌج‪١‬بٔبد‪ ،‬خظ‪١‬ظب‪ ،‬رغزؼًّ‬
‫ثبساِزشاد اٌز‪ٛ‬ل‪١‬ذ‪ ،‬ثؾ‪١‬ش رؼبدي ر‪ٛ‬ل‪١‬ذ ؽٍمخ اٌّؾبوبح ِغ ر‪ٛ‬ل‪١‬ذ رؾظ‪ً١‬‬
‫اٌج‪١‬بٔبد‪.‬‬

‫‪176‬‬
Exercise 5: (Optional) )ٞ‫بس‬١‫ٓ (اخز‬٠‫اٌزّش‬
Use the Controller in a Real Life System
ٟ‫م‬١‫ ٔظبَ صِٓ ؽم‬ٟ‫اعزؼّبي اٌؾبوُ ف‬

1
+_ PID s

• Replace the plant model with the real life motor. ‫خ ثّؾشن‬١ٍّ‫رط اٌؼ‬ّٛٔ ‫اعزجذي‬
ٟ‫م‬١‫ؽم‬
• Test the behavior of the motor, and compare to the original plant model.
‫خ‬١ٍ‫خ األط‬١ٍّ‫لبسْ ثبٌؼ‬ٚ ‫ؾ اٌّؾشن‬١‫ن ِؾ‬ٍٛ‫عشة ع‬

177

You might also like