নিয়ন্ত্রণ ব্যবস্থা/ওপেন সোর্স টুল/জুলিয়া
পূর্বশর্ত
[সম্পাদনা]জুলিয়া ইনস্টল করার পর কন্ট্রোলসিস্টেমস.জেএল (ControlSystems.jl) প্যাকেজটি ইনস্টল করা প্রয়োজন। এক্ষেত্রে জুলিয়ার অফিসিয়াল ডকুমেন্টেশন অনুসরণ করার পরামর্শ দেওয়া হচ্ছে। জুলিয়া টার্মিনালে চালানো যায়, তবে জুনো/অ্যাটম (Juno/Atom) অথবা ভিজ্যুয়াল স্টুডিও কোডের মতো একটি ইন্টিগ্রেটেড ডেভেলপমেন্ট এনভায়রনমেন্ট (IDE) ব্যবহার করা বেশ সুবিধাজনক।
কন্ট্রোলসিস্টেমস.জেএল প্যাকেজটি লোড করার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করতে হবে:
using ControlSystems
ফাংশনটি মূল্যায়ন করার আগে কন্ট্রোলসিস্টেমস প্যাকেজটি লোড করা প্রয়োজন।
এই কোর্স জুড়ে ধরে নেওয়া হয়েছে যে ফলাফল তাৎক্ষণিকভাবে দেখার জন্য সোর্স কোডটি জুলিয়া আরইপিএল-এ টাইপ করা হচ্ছে। অন্যথায় ফলাফল মুদ্রণ করার জন্য নিম্নলিখিত কমান্ডটি ব্যবহার করা যেতে পারে:
print()
প্রচলিত নিয়ন্ত্রণ
[সম্পাদনা]ট্রান্সফার ফাংশন
[সম্পাদনা]ধরা যাক একটি ট্রান্সফার ফাংশন হলো:
ট্রান্সফার ফাংশন অন্যান্য নিউমেরিক্যাল টুলবক্সের মতোই লব এবং হর ব্যবহার করে তৈরি করা হয়
num = [1, 2] # Numerator den = [3, 4, 5] # Denominator G = tf(num, den) # Transfer function
রেপল (REPL) তৈরি করা ট্রান্সফার ফাংশন অবজেক্টটির একটি সংক্ষিপ্ত সারসংক্ষেপ বা পরিচিতি প্রদর্শন করে
TransferFunction{ControlSystems.SisoRational{Int64}}
s + 2
---------------
3*s^2 + 4*s + 5
Continuous-time transfer function model
ধ্রুবক ও শূন্যবিন্দু
[সম্পাদনা]ট্রান্সফার ফাংশন এর ধ্রুবকগুলো নিম্নোক্তভাবে গণনা করা হয়
pole(G)
এবং রেপল (REPL) প্রতিক্রিয়াগুলি
2-element Array{Complex{Float64},1}:
-0.6666666666666665 + 1.1055415967851332im
-0.6666666666666665 - 1.1055415967851332im
ট্রান্সফার ফাংশন এর শূন্যবিন্দু নিম্নোক্তভাবে গণনা করা হয়
tzero(G)
এবং এর ফলে পাওয়া যায়
1-element Array{Float64,1}:
-2.0
ফাংশনটি
zpkdata(G)
রেপল (REPL) শূন্যবিন্দু, ধ্রুবক এবং লাভ (গেইন) প্রদর্শন করবে।
ধ্রুবক-শূন্যবিন্দু প্লট তৈরি করা হয় নিম্নলিখিত ফাংশন ব্যবহার করে
pzmap(G)
ইমপালস এবং স্টেপ প্রতিক্রিয়া
[সম্পাদনা]উভয় প্লটের জন্য সিমুলেশন সময় এবং একটি লেবেল সংজ্ঞায়িত করা সুবিধাজনক
Tf = 20 # Final simulation time in seconds impulse_lbl = "y(t) = g(t)" # Label for impulse response g(t) step_lbl = "y(t) = h(t)" # Label for step response h(t)
ইম্পালস প্রতিক্রিয়া তৈরি করা হয় নিম্নলিখিত ফাংশন ব্যবহার করে
impulseplot(G, Tf, label=impulse_lbl) # Impulse response
এবং স্টেপ প্রতিক্রিয়া তৈরি করা হয় নিম্নলিখিত ফাংশন ব্যবহার করে
stepplot(G, Tf, label=impulse_lbl) # Step response
বোডে এবং নাইকুইস্ট প্লট
[সম্পাদনা]বোডে প্লটটি নিম্নলিখিত ফাংশন ব্যবহার করে প্রিন্ট করা হয়
bodeplot(G) # Bode plot
এবং নাইকুইস্ট প্লটটি (গেইন সার্কেল ছাড়া) নিম্নলিখিত ফাংশন ব্যবহার করে প্রিন্ট করা হয়
nyquistplot(G, gaincircles=false) # Nyquist plot
গেইন সার্কেলগুলো বুলিয়ান ফ্ল্যাগ ব্যবহার করে চালু বা বন্ধ করা যেতে পারে।
দ্রষ্টব্য:
যদি শুধুমাত্র বোডে/নাইকুইস্ট প্লটের সাংখ্যিক ফলাফল প্রয়োজন হয় এবং সেগুলোর দৃশ্যমান উপস্থাপনা দরকার না হয়, তাহলে নিম্নলিখিত ফাংশন ব্যবহার করা যেতে পারে
bode(G)
এবং
nyquist(G)
