Modelica
মডেলিকা জটিল সিস্টেমগুলির উপাদান-ভিত্তিক মডেলিংয়ের জন্য একটি অবজেক্ট-ওরিয়েন্টেড, ঘোষণাত্মক, মাল্টি-ডোমেন মডেলিং ভাষা, যেমন যান্ত্রিক, বৈদ্যুতিক, বৈদ্যুতিন, জলবাহী, তাপ, নিয়ন্ত্রণ, বৈদ্যুতিক শক্তি বা প্রক্রিয়া-ভিত্তিক উপ-উপাদানযুক্ত সিস্টেম। বিনামূল্যে মডেলিকা ভাষাটি অলাভজনক মডেলিকা অ্যাসোসিয়েশন দ্বারা তৈরি করা হয়েছে। মডেলিকা অ্যাসোসিয়েশন বিনামূল্যে মডেলিকা স্ট্যান্ডার্ড লাইব্রেরিও তৈরি করে যার সংস্করণ 4.0.0 পর্যন্ত বিভিন্ন ডোমেনে প্রায় 1400 জেনেরিক মডেল উপাদান এবং 1200 ফাংশন রয়েছে। মডেলিকা সি + + বা জাভার মতো অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিং ভাষার সাথে সাদৃশ্যপূর্ণ হলেও এটি দুটি গুরুত্বপূর্ণ ক্ষেত্রে পৃথক। প্রথমত, মডেলিকা একটি প্রচলিত প্রোগ্রামিং ভাষার পরিবর্তে একটি মডেলিং ভাষা। মডেলিকা ক্লাসগুলি স্বাভাবিক অর্থে সংকলিত হয় না, তবে সেগুলি বস্তুতে অনুবাদ করা হয় যা পরে একটি সিমুলেশন ইঞ্জিন দ্বারা অনুশীলন করা হয়। সিমুলেশন ইঞ্জিনটি ভাষা দ্বারা নির্দিষ্ট করা হয় না, যদিও কিছু প্রয়োজনীয় ক্ষমতার রূপরেখা দেওয়া হয়েছে। দ্বিতীয়ত, যদিও শ্রেণীগুলিতে প্রোগ্রামিং ভাষাগুলিতে বিবৃতি বা ব্লকের মতো অ্যালগরিদমিক উপাদান থাকতে পারে, তাদের প্রাথমিক বিষয়বস্তু হল সমীকরণের একটি সেট। একটি সাধারণ অ্যাসাইনমেন্ট স্টেটমেন্টের বিপরীতে, যেমন x: = 2 + y; যেখানে স্টেটমেন্টের বাম দিকে ডান দিকের এক্সপ্রেশন থেকে গণনা করা একটি মান বরাদ্দ করা হয়, একটি সমীকরণের ডান এবং বাম উভয় দিকেই এক্সপ্রেশন থাকতে পারে, উদাহরণস্বরূপ, x + y = 3 * z; সমীকরণগুলি অ্যাসাইনমেন্ট নয় বরং সমতা বর্ণনা করে। মডেলিকার পরিভাষায়, সমীকরণগুলির কোনও পূর্ব-সংজ্ঞায়িত কার্যকারণ নেই। সিমুলেশন ইঞ্জিনগুলি সমীকরণগুলি কার্যকর করার ক্রম এবং সমীকরণের কোন উপাদানগুলি ইনপুট এবং কোনগুলি আউটপুট তা নির্ধারণ করতে প্রতীকীভাবে পরিচালনা করতে পারে (এবং সাধারণত অবশ্যই করতে হবে)। মডেলিকা নকশার প্রচেষ্টা 1996 সালের সেপ্টেম্বরে হিলিং এলমকভিস্ট দ্বারা শুরু হয়েছিল। লক্ষ্য ছিল একটি মানসম্মত বিন্যাসে গতিশীল সিস্টেম মডেলগুলির পুনঃব্যবহার এবং বিনিময় করার জন্য প্রযুক্তিগত সিস্টেমগুলির মডেলিংয়ের জন্য একটি অবজেক্ট-ওরিয়েন্টেড ভাষা বিকাশ করা। মডেলিকা 1.0 হিলিং এলমকভিস্টের পিএইচডি থিসিস এবং মডেলিং ভাষা অ্যালান, ডাইমোলা, এন. এম. এফ অবজেক্টম্যাথ, ওমোলা, সিডোপস + এবং স্মাইলের অভিজ্ঞতার উপর ভিত্তি করে তৈরি। হিলিং এলমকভিস্ট মডেলিকার মূল স্থপতি, তবে আরও অনেকে অবদান রেখেছেন (মডেলিকা স্পেসিফিকেশনে অ্যাপেন্ডিক্স ই দেখুন)। 1997 সালের সেপ্টেম্বরে, মডেলিকা স্পেসিফিকেশনের সংস্করণ 1 প্রকাশ করা হয়েছিল যা বাণিজ্যিক ডাইমোলা সফ্টওয়্যার সিস্টেমের মধ্যে একটি প্রোটোটাইপ বাস্তবায়নের ভিত্তি ছিল। 2000 সালে, অলাভজনক মডেলিকা অ্যাসোসিয়েশন গঠিত হয়েছিল ক্রমাগত বিবর্তিত মডেলিকা ভাষা এবং বিনামূল্যে মডেলিকা স্ট্যান্ডার্ড লাইব্রেরির বিকাশ পরিচালনার জন্য। একই বছরে শিল্পক্ষেত্রে মডেলিকার ব্যবহার শুরু হয়। এই টেবিলটি মডেলিকা নির্দিষ্টকরণের ইতিহাসের সময়সীমা উপস্থাপন করেঃ মডেলিকার জন্য বাস্তবায়নের বাণিজ্যিক অগ্রভাগের মধ্যে রয়েছে ফরাসি সংস্থা ইমেজিন এস. এ (বর্তমানে সিমেন্স ডিজিটাল ইন্ডাস্ট্রিজ সফ্টওয়্যারের অংশ) থেকে এ. এম. ই. এস. আই. এম, সুইডিশ সংস্থা ডায়নাসিম এ. বি (বর্তমানে ডাসল্ট সিস্টেমসের অংশ) থেকে ডাইমোলা, সুইডিশ সংস্থা ওল্ফ্রাম ম্যাথকোর এ. বি (বর্তমানে ওল্ফ্রাম রিসার্চের অংশ) থেকে ওল্ফ্রাম সিস্টেম মডেলার (পূর্বে ম্যাথমডেলিকা), জার্মান সংস্থা ই. এস. আই. আই. আই. টি. আই. জি. এম. বি. এইচ-এর সিমুলেশনএক্স, কানাডিয়ান সংস্থা ম্যাপলসফ্টের ম্যাপেলসিম, সুইডিশ সংস্থা মডেলন এ. বি-এর মডেলন ইমপ্যাক্ট এবং ডাসল্ট সিস্টেমস থেকে সিএটিআইএ সিস্টেমস। ওপেনমডেলিকা একটি ওপেন-সোর্স মডেলিকা-ভিত্তিক মডেলিং এবং সিমুলেশন পরিবেশ যা শিল্প ও একাডেমিক ব্যবহারের উদ্দেশ্যে তৈরি করা হয়েছে। এর দীর্ঘমেয়াদী উন্নয়ন একটি অলাভজনক সংস্থা-ওপেন সোর্স মডেলিকা কনসোর্টিয়াম (ওএসএমসি) দ্বারা সমর্থিত। ওপেনমডেলিকার প্রচেষ্টার লক্ষ্য হল গবেষণা, শিক্ষাদান এবং শিল্প ব্যবহারের জন্য বাইনারি এবং সোর্স কোড আকারে বিতরণ করা বিনামূল্যে সফ্টওয়্যারের উপর ভিত্তি করে একটি বিস্তৃত ওপেন সোর্স মডেলিকা মডেলিং, সংকলন এবং সিমুলেশন পরিবেশ তৈরি করা। ফ্রি সিমুলেশন পরিবেশ স্কিকোস কম্পোনেন্ট মডেলিংয়ের জন্য মডেলিকার একটি উপসেট ব্যবহার করে। মডেলিকা ভাষার একটি বড় অংশের জন্য সমর্থন বর্তমানে উন্নয়নের অধীনে রয়েছে। তবুও, মডেলিকা ভাষা সম্পর্কিত সমস্ত বিভিন্ন সরঞ্জামের মধ্যে এখনও কিছু অসঙ্গতি এবং ভিন্ন ব্যাখ্যা রয়েছে। উদাহরণস্বরূপ নিম্নলিখিত কোড খণ্ডটি ফার্স্ট অর্ডার সিস্টেম ()-এর একটি খুব সহজ উদাহরণ দেখায়ঃ মডেল ফার্স্ট অর্ডার প্যারামিটার রিয়েল সি = 1 "টাইম কনস্ট্যান্ট"; রিয়েল এক্স (স্টার্ট = 10) "একটি অজানা"; সমীকরণ ডার (এক্স) =-সি * এক্স "একটি ফার্স্ট অর্ডার ডিফারেনশিয়াল সমীকরণ"; এন্ড ফার্স্ট অর্ডার; নিম্নলিখিত কোড খণ্ডটি ওএমএসহেল ব্যবহার করে একটি ত্রিকোণমিতিক ফাংশনের দ্বিতীয় ডেরিভেটিভ গণনা করার জন্য একটি উদাহরণ দেখায়, যা নীচে লিখিত প্রোগ্রামটি বিকাশের উপায় হিসাবে। মডেল সেকেন্ড ডেরিভেটিভ রিয়েল এল; রিয়েল জেড = সাইন (ডাব্লু * সময়); রিয়েল এম; প্যারামিটার রিয়েল ডাব্লু = 1; সমীকরণ এল = ডার (জেড); এম = ডার (এল); শেষ সেকেন্ড ডেরিভেটিভ; এই উদাহরণ সম্পর্কে লক্ষণীয় আকর্ষণীয় বিষয়গুলি হল 'প্যারামিটার' কোয়ালিফায়ার, যা নির্দেশ করে যে একটি প্রদত্ত পরিবর্তনশীল সময়-অপরিবর্তনীয় এবং 'ডার' অপারেটর, যা (প্রতীকীভাবে) একটি পরিবর্তনশীলের সময় ডেরিভেটিভকে উপস্থাপন করে। এছাড়াও লক্ষণীয় ডকুমেন্টেশন স্ট্রিং যা ঘোষণা এবং সমীকরণের সাথে যুক্ত হতে পারে। মডেলিকার প্রধান প্রয়োগ ক্ষেত্র হল ভৌত ব্যবস্থার মডেলিং। সবচেয়ে মৌলিক কাঠামোর ধারণাগুলি বৈদ্যুতিক ক্ষেত্র থেকে সহজ উদাহরণের হাতে দেখানো হয়েছেঃ অন্তর্নির্মিত এবং ব্যবহারকারী থেকে উদ্ভূত মডেলিকার চারটি অন্তর্নির্মিত প্রকার রয়েছে-রিয়েল, ইন্টিজার, বুলিয়ান, স্ট্রিং। সাধারণত, ব্যবহারকারী-সংজ্ঞায়িত প্রকারগুলি উদ্ভূত হয়, ভৌত পরিমাণ, একক, নামমাত্র মান এবং অন্যান্য বৈশিষ্ট্যগুলি সংযুক্ত করার জন্যঃ প্রকার ভোল্টেজ = বাস্তব (পরিমাণ = "বৈদ্যুতিক ক্ষমতা", একক = "ভি"); প্রকার বিদ্যুৎ = বাস্তব (পরিমাণ = "বৈদ্যুতিক ক্ষমতা", একক = "এ"); ভৌত মিথস্ক্রিয়া বর্ণনাকারী সংযোগকারী অন্যান্য উপাদানগুলির সাথে একটি উপাদানের মিথস্ক্রিয়াকে ভৌত বন্দর দ্বারা সংজ্ঞায়িত করা হয়, যাকে সংযোগকারী বলা হয়, যেমন, একটি বৈদ্যুতিক পিনকে সংযোগকারী পিন "বৈদ্যুতিক পিন" ভোল্টেজ ভি "পিনে সম্ভাব্য হিসাবে সংজ্ঞায়িত করা হয়; প্রবাহ বিদ্যুৎ i" উপাদানটিতে প্রবাহিত বিদ্যুৎ "; শেষ পিন; পোর্টগুলির মধ্যে সংযোগ রেখা আঁকার সময়, অর্থ হল" প্রবাহ "উপসর্গ ছাড়াই সংশ্লিষ্ট সংযোগকারী ভেরিয়েবলগুলি অনুপ্রেরণা হল অসীমভাবে ছোট সংযোগ বিন্দুতে প্রাসঙ্গিক ভারসাম্য সমীকরণগুলি স্বয়ংক্রিয়ভাবে পূরণ করা। একটি মৌলিক মডেল উপাদান একটি মডেল দ্বারা সংজ্ঞায়িত করা হয় এবং এতে এমন সমীকরণ থাকে যা একটি ঘোষনামূলক আকারে সংযোগকারী চলকগুলির মধ্যে সম্পর্ক বর্ণনা করে (অর্থাৎ, গণনার ক্রম নির্দিষ্ট না করে): মডেল ক্যাপাসিটর প্যারামিটার ক্যাপ্যাসিট্যান্স সি; ভোল্টেজ ইউ "পিনপি এবং পিনএন-এর মধ্যে ভোল্টেজ ড্রপ"; পিনপি, পিনএন; সমীকরণ 0 = pin_p.i + pin_n.i; ইউ = pin_p.v-pin_n.v; সি * ডার (ইউ) = pin_p.i; শেষ ক্যাপাসিটর; লক্ষ্য হল যে মডেল উপাদানগুলির একটি সংযুক্ত সেট ডিফারেনশিয়াল, বীজগাণিতিক এবং বিচ্ছিন্ন সমীকরণের একটি সেটের দিকে পরিচালিত করে যেখানে অজানা সংখ্যা এবং সংখ্যা মডেলিকাতে, তথাকথিত ভারসাম্যপূর্ণ মডেলের প্রয়োজন দ্বারা এটি অর্জন করা হয়। ভারসাম্যপূর্ণ মডেলগুলি সংজ্ঞায়িত করার জন্য সম্পূর্ণ নিয়মগুলি বরং জটিল, এবং বিভাগ 4.7 থেকে পড়া যেতে পারে। যাইহোক, বেশিরভাগ ক্ষেত্রে, একটি সহজ নিয়ম জারি করা যেতে পারে, যা বেশিরভাগ সিমুলেশন সরঞ্জামের মতো ভেরিয়েবল এবং সমীকরণগুলি গণনা করেঃ একটি মডেল ভারসাম্যপূর্ণ হয় যখন তার সমীকরণের সংখ্যা তার ভেরিয়েবলের সংখ্যার সমান হয়। যেহেতু চলক এবং সমীকরণগুলি অবশ্যই নিম্নলিখিত নিয়ম অনুসারে গণনা করা উচিতঃ-> মডেল সমীকরণের সংখ্যা = মডেলে সংজ্ঞায়িত সমীকরণের সংখ্যা + বাইরের সংযোগকারীগুলিতে প্রবাহের চলকের সংখ্যা-> মডেল চলকের সংখ্যা = মডেলে সংজ্ঞায়িত চলকের সংখ্যা (ভৌত সংযোগকারীগুলিতে চলক সহ) লক্ষ্য করুন যে স্ট্যান্ডার্ড ইনপুট সংযোগকারীগুলি (যেমন রিয়েলইনপুট বা ইন্টিজারইনপুট) চলকের গণনায় অবদান রাখে না কারণ তাদের ভিতরে কোনও নতুন চলক সংজ্ঞায়িত করা হয় না। এই নিয়মের কারণটি উপরে সংজ্ঞায়িত ক্যাপাসিটরের কথা ভেবে বোঝা যায়। এর পিনগুলিতে একটি প্রবাহ পরিবর্তনশীল থাকে, অর্থাৎ। একটি করে বর্তমান, প্রতিটি। আমরা যখন এটি পরীক্ষা করি, এটি কোনও কিছুর সাথে সংযুক্ত নয়। এটি প্রতিটি পিনের জন্য একটি সমীকরণ pin.i=0 সেট করার সাথে মিলে যায়। এই কারণেই আমাদের অবশ্যই প্রতিটি প্রবাহ চলকের জন্য একটি সমীকরণ যোগ করতে হবে। স্পষ্টতই উদাহরণটি অন্যান্য ক্ষেত্রেও প্রসারিত করা যেতে পারে, যেখানে অন্যান্য ধরনের প্রবাহ চলক জড়িত থাকে (যেমন। বাহিনী, টর্ক, ইত্যাদি)। যখন আমাদের ক্যাপাসিটরটি তার একটি পিনের মাধ্যমে অন্য (ভারসাম্যপূর্ণ) মডেলের সাথে সংযুক্ত হবে, তখন একটি সংযোগ সমীকরণ তৈরি হবে যা সংযুক্ত হওয়া পিনের দুটি i = 0 সমীকরণকে প্রতিস্থাপন করবে। যেহেতু সংযোগ সমীকরণটি দুটি স্কেলার সমীকরণের সাথে মিলে যায়, তাই সংযোগ অপারেশনটি ভারসাম্যপূর্ণ বৃহত্তর মডেলটি ছেড়ে দেবে (আমাদের ক্যাপাসিটর এবং এটি যে মডেলের সাথে সংযুক্ত রয়েছে তার দ্বারা গঠিত)। উপরের ক্যাপাসিটর মডেলটি ভারসাম্যপূর্ণ, যেহেতু সমীকরণের সংখ্যা = 3 + 2 = 5 (প্রবাহ চলকঃ pin_p.i, pin_n.i, u) চলকের সংখ্যা = 5 (u, pin_p.u, pin_p.i, pin_n.u, pi_n.i) এই মডেলের ওপেনমডেলিকা ব্যবহার করে যাচাইকরণ দেয়, প্রকৃতপক্ষে ক্লাস ক্যাপাসিটরের 5টি সমীকরণ (গুলি) এবং 5টি চলক (গুলি) রয়েছে। এর মধ্যে 3টি হল তুচ্ছ সমীকরণ (গুলি)। আরেকটি উদাহরণ হল, মডেলিকা স্ট্যান্ডার্ড লাইব্রেরি থেকে ইনপুট সংযোগকারী এবং শারীরিক সংযোগকারী উভয়ই ধারণকারী নিম্নলিখিত উপাদানঃ মডেল সিগন্যাল ভোল্টেজ "জেনেরিক ভোল্টেজ উৎস ইনপুট সংকেতকে উৎস ভোল্টেজ হিসাবে ব্যবহার করে" Interfaces.PositivePin p; Interfaces.NegativePin n; Modelica.Blocks.Interfaces.RealInput v (একক = "V") "ইনপুট সংকেত হিসাবে পিন p এবং n (= p. v-n. v) এর মধ্যে ভোল্টেজ"; SI.Current i "পিন p থেকে পিন n-এ প্রবাহিত বিদ্যুৎ"; সমীকরণ v = p. v-n. v; 0 = p. i + n. i; i = p. i; শেষ সিগন্যাল ভোল্টেজ; উপাদান সিগন্যাল ভোল্টেজ সমীকরণের সংখ্যা = 3 + 2 = 5 থেকে ভারসাম্যপূর্ণ। এর মধ্যে 4টি হল তুচ্ছ সমীকরণ (গুলি)। একটি শ্রেণিবদ্ধ মডেল মৌলিক মডেলগুলি থেকে তৈরি করা হয়, মৌলিক মডেলগুলিকে তাত্ক্ষণিক করে, মডেল পরামিতিগুলির জন্য উপযুক্ত মান সরবরাহ করে এবং মডেল সংযোগকারীগুলিকে সংযুক্ত করে। একটি সাধারণ উদাহরণ হল নিম্নলিখিত বৈদ্যুতিক সার্কিটঃ মডেল সার্কিট ক্যাপাসিটর সি1 (সি = 1ই-4) "উপরের মডেল থেকে একটি ক্যাপাসিটর উদাহরণ"; ক্যাপাসিটর সি2 (সি = 1ই-5) "উপরের মডেল থেকে একটি ক্যাপাসিটর উদাহরণ"; সমীকরণ সংযোগ (C1.pin_p, C2.pin_n); শেষ সার্কিট; ভাষা উপাদান টীকা (.) এর মাধ্যমে, এমন একটি মডেলে সংজ্ঞা যুক্ত করা যেতে পারে যা একটি সিমুলেশনের উপর প্রভাব ফেলে না। টীকাগুলি গ্রাফিকাল বিন্যাস, ডকুমেন্টেশন এবং সংস্করণের তথ্য সংজ্ঞায়িত করতে ব্যবহৃত হয়। বিভিন্ন মডেলিকা সরঞ্জামগুলিতে মডেলগুলির গ্রাফিকাল চেহারা এবং বিন্যাস একই হয় তা নিশ্চিত করার জন্য গ্রাফিকাল টীকাগুলির একটি মৌলিক সেটকে মানসম্মত করা হয়। অ্যাপ্লিকেশন মডেলিকা ডোমেন নিরপেক্ষ হওয়ার জন্য ডিজাইন করা হয়েছে এবং ফলস্বরূপ, বিভিন্ন ধরনের অ্যাপ্লিকেশনগুলিতে ব্যবহৃত হয়, যেমন তরল সিস্টেম (উদাহরণস্বরূপ, বাষ্প শক্তি উৎপাদন, জলবিদ্যুৎ ইত্যাদি)। ), স্বয়ংচালিত প্রয়োগ (বিশেষত পাওয়ারট্রেন) এবং যান্ত্রিক ব্যবস্থা (উদাহরণস্বরূপ, মাল্টি-বডি সিস্টেম, মেকাট্রনিক্স ইত্যাদি)। স্বয়ংচালিত ক্ষেত্রে, অনেক প্রধান স্বয়ংচালিত ও. ই. এম মডেলিকা ব্যবহার করছে। এর মধ্যে রয়েছে ফোর্ড, জেনারেল মোটরস, টয়োটা, বিএমডাব্লু এবং ডেমলার। মডেলিকা ক্রমবর্ধমানভাবে তাপ-তরল এবং শক্তি ব্যবস্থার অনুকরণের জন্যও ব্যবহৃত হচ্ছে। মডেলিকার বৈশিষ্ট্যগুলি (অ্যাকাউসাল, অবজেক্ট-ওরিয়েন্টেড, ডোমেন নিউট্রাল) এটিকে সিস্টেম-স্তরের সিমুলেশনের জন্য উপযুক্ত করে তোলে, এমন একটি ডোমেন যেখানে মডেলিকা এখন সুপ্রতিষ্ঠিত। আরও দেখুন এ. এম. ই. এস. আই. এম. পি. এল এ. পি. মনিটর অ্যাসেন্ড ডোমেন-নির্দিষ্ট মডেলিং ডি. এস. এম. ডাইমোলা ইকোসিমপ্রোঃ কন্টিনিউয়াস অ্যান্ড ডিসক্রিট মডেলিং অ্যান্ড সিমুলেশন সফ্টওয়্যার ই. এম. এস. ও. গ্যামস <আই. ডি1> ওপেনমডেলিকা ম্যাপেলসিম ম্যাটল্যাব সিমুলেশনএক্স সিমুলিংক ওল্ফ্রাম সিস্টেমমডেলার সিল্যাব/এক্সকোস কেপলার (টলেমি) নোটস এক্সটার্নাল লিঙ্ক মডেলিকা ল্যাঙ্গুয়েজ স্পেসিফিকেশন ভার্সন 3.6 মডেলিকা অ্যাসোসিয়েশন, অলাভজনক মডেলিকা অ্যাসোসিয়েশনের হোমপেজ (মডেলিকা বিকাশ) মডেলিকা উদাহরণস্বরূপ মডেলিকা শেখার জন্য একটি বিনামূল্যে ইন্টারেক্টিভ এইচ. টি. এম. এল বই, মাইকেল টিলার দ্বারা মডেলিকার সাথে শারীরিক মডেলিংয়ের ভূমিকা।