আমি একটি আরডুইনো ব্যবহার করে মোটরযুক্ত ফ্যাডার (লিনিয়ার স্লাইড পোটিনোমিটার) নিয়ন্ত্রণ করার চেষ্টা করছি
পিআইডি নিয়ন্ত্রণ একটি নির্দিষ্ট লক্ষ্য অবস্থানে "জাম্পিং" করার জন্য ভাল ফলাফল দেয় তবে র্যাম্পগুলি ট্র্যাক করা একটি সমস্যা, এটি মোটেও মসৃণ নয়। আন্দোলনটি খুব বিড়ম্বিত, আমি যতই চেষ্টা করি না কেন।
র্যাম্প ট্র্যাক করার সময় এখানে রেফারেন্স পজিশন, পরিমাপক অবস্থান এবং মোটর আউটপুটের একটি প্লট রয়েছে:
এবং এখানে একই পরীক্ষার একটি ভিডিও ।
বাণিজ্যিক সিস্টেমে, এটা অনেক বাধামুক্ত মনে হয়, দেখতে এই ।
বিশদ :
মোটর ফাদার একটি আল্পস আরএসএ0এন 11 এম 9 এ0 কে । এটি চালানোর জন্য, আমি একটি এসটি এল 2929 ডি এইচ-ব্রিজ ব্যবহার করছি , নিয়ন্ত্রিত 10 ভি ডিসি পাওয়ার সাপ্লাই ( এক্সএল 6009 ) দ্বারা চালিত ।
আরডুইনো ইউএনওতে (এটিমেগা 328 পি), আমি শ্রবণযোগ্য না হয়ে 31.372 কেএইচজেডের পিডাব্লুএমএম ফ্রিকোয়েন্সি সহ পিন 9 এবং 10 ব্যবহার করছি (1 এর প্রেস্কেলারের সাথে টাইমার 1 TCCR1B = (TCCR1B & 0b11111000) | 0b001
)।
পেন্টিওমিটারটি স্থল এবং 5 ভি এর মধ্যে তারের সাথে ওয়াইপারটি যথারীতি ADC0 এ যায়।
নিয়ামক :
আমি অ্যান্টি-উইন্ডআপ সহ একটি সাধারণ পিআইডি কন্ট্রোলার ব্যবহার করছি, যা 1 কেএইচজেড (টিএস = 1 ই -3 এস) হারে আপডেট হয়:
float update(int16_t input) {
int16_t error = setpoint - input;
int16_t newIntegral = integral + error;
float output = k_p * error
+ k_i * newIntegral * Ts
+ k_d * (input - previousInput) / Ts;
if (output > maxOutput)
output = maxOutput;
else if (output < -maxOutput)
output = -maxOutput;
else
integral = newIntegral;
previousInput = input;
return output;
}
নিয়ামকের আউটপুট -127 থেকে 127 পর্যন্ত একটি মান The PWM আউটপুট নিম্নলিখিত হিসাবে উত্পন্ন হয়:
const int8_t knee = 48;
uint8_t activation(int8_t val) {
if (val == 0)
return 0;
else {
return map(val, 0, 127, 2 * knee, 255);
}
}
void writeMotor(int8_t val) {
if (val >= 0) {
analogWrite(forward, activation(val));
digitalWrite(backward, 0);
} else {
analogWrite(backward, activation(-val));
digitalWrite(forward, 0);
}
}
আমি 7-বিট পিডাব্লুএম সংকেতটিতে 48 যুক্ত করেছি, কারণ মোটরটি 31 কিলাহার্টজ গতিতে শুরু করে এবং তারপরে আমি এটি 8-বিট সংখ্যায় স্কেল করি (কারণ এটি analogWrite
ফাংশনটি প্রত্যাশা করে):
আমি যা চেষ্টা করেছি :
আমি ইনপুটটিতে, নিয়ন্ত্রণ সিগন্যালে, পিআইডি নিয়ন্ত্রকের ডেরিভেটিভ উপাদানটিতে একটি ইএমএ ফিল্টার যুক্ত করার চেষ্টা করেছি, তবে কোনও ফলসই হয়নি। আমি স্থির যখন দুটি মানের মধ্যে উল্টানো থেকে আটকাতে হিস্টেরেসিস ব্যবহার করে এনালগ ইনপুটটির রেজোলিউশন হ্রাস করার চেষ্টা করেছি । এটি কোনও কিছুর উপর প্রভাব ফেলবে বলে মনে হয় না। 10 ধাপে 10 ধাপে সময় বাড়ানো কোনওরকম সাহায্য করবে বলে মনে হয় না।
আমি ম্যাটল্যাবে একটি সিস্টেম শনাক্তকরণও চেষ্টা করেছি এবং এটি সিমুলিঙ্কে টিউন করার চেষ্টা করেছি (এই ভিডিও সিরিজটি অনুসরণ করে )। আমি ৯১% এর ফিট সহ একটি মডেল পেয়েছি, তবে আমি কীভাবে ম্যাটল্যাব মডেলের ইনপুট এবং আউটপুট অ-লিনিয়ারিটিগুলি মোকাবেলা করব, তারা পিআইডি টিউনিকে কীভাবে প্রভাবিত করবে এবং এটি আরডুইনোতে কীভাবে প্রয়োগ করতে হবে তা আমি জানতাম না।
চূড়ান্ত জিনিসটি আমি চেষ্টা করেছি দুটি পৃথক নিয়ন্ত্রক তৈরি করা: একটি রেফারেন্স পজিশনে বড় লাফের জন্য এবং একটি র্যাম্প ট্র্যাক করার সময় ছোট ত্রুটির জন্য। এটি কিছুটা সহায়তা করে বলে মনে হচ্ছে, কারণ তখন আমি ট্র্যাফিকিংয়ের সময় অবিচ্ছেদ্য সহগ বাড়াতে পারি, ঝাঁপ দেওয়ার সময় ওভারশুট না বাড়িয়ে।
যাইহোক, অবিচ্ছেদ্য (এবং আনুপাতিক) লাভ বাড়িয়ে মোটর এখন সবসময় কিছু না কিছু করে থাকে, এমনকি এটি স্থির হওয়া উচিত এবং রেফারেন্সটি পরিবর্তিত হয় না। (এটি আসলে
চলবে না, তবে আপনি এটি স্পন্দনশীল বোধ করতে পারেন)) আমার কার্যত কোনও ডেরাইভেটিভ লাভ নেই, কারণ এটি 1e-4 এর চেয়ে বেশি বাড়ানো এটিকে আরও ঝাঁকুনির বলে মনে হয় এবং আমি 0 এবং এর মধ্যে কোনও পার্থক্য লক্ষ্য করি না really 1e -4।
আমার ধারণা হ'ল স্থির ঘর্ষণকে কাটিয়ে ওঠার জন্য এটি আরও শক্তির প্রয়োজন, তারপরে গতিশীল ঘর্ষণ কম হয়, তাই এটি চালিত হয়, তাই এটি মোটরটিকে পিছন দিকে চালিত করে, এটি আবার থামিয়ে দেয়, তারপরে এটি আবার স্থির ঘর্ষণকে কাটিয়ে উঠতে হবে, এটি আবার সামনের দিকে গুলি করে s ইত্যাদি
বাণিজ্যিক নিয়ন্ত্রণকারীরা কীভাবে এই সমস্যাটি কাটিয়ে উঠতে পারেন?
আমার ব্যাকগ্রাউন্ড :
আমি ইলেকট্রিক্যাল ইঞ্জিনিয়ারিংয়ের আমার তৃতীয় ব্যাচেলর বর্ষে এসেছি, আমি কন্ট্রোল থিওরি, ডিজিটাল সিগন্যাল প্রসেসিং, এলকিউআর নিয়ন্ত্রণ ইত্যাদি বিষয়ে কোর্স অনুসরণ করেছি যাতে আমার কিছু তাত্ত্বিক পটভূমি রয়েছে তবে আমি এই সমস্ত তত্ত্বগুলিতে প্রয়োগ করতে সমস্যা হচ্ছি এই বাস্তব বিশ্বের সিস্টেম।
সম্পাদনা :
ল্যাপটপ 2 ডি প্রস্তাবিত হিসাবে আমি ওপেন-লুপ সেন্সর পরিমাপটি পরীক্ষা করেছি এবং ফলাফলগুলি নিয়ে আমি বেশ অবাক: উচ্চ পিডাব্লুএম ফ্রিকোয়েন্সিগুলিতে রিডিংগুলিতে দুষ্টু শিখর রয়েছে। 490 হার্জে, কোনও নেই।
এবং এটি একটি ধ্রুবক শুল্ক চক্রের, তাই মোটর যখন খুব দ্রুত দিকটি ঘুরিয়ে দেয় তখন আমি কী ধরণের শব্দ শুনতে পারি তা কল্পনা করতে পারি না।
সুতরাং আমি আবার নিয়ামকের উপর কাজ শুরু করার আগে আমাকে সেই শব্দটি ফিল্টার করার একটি উপায় খুঁজে বের করতে হবে।
সম্পাদনা 2 :
গোলমাল আউট ফিল্টার করার জন্য একটি ক্ষতিকারক চলমান গড় ফিল্টার ব্যবহার করা যথেষ্ট ছিল না।
আমি 0.25, 0.50 এবং 0.75 এ খুঁটি দিয়ে চেষ্টা করেছি। ছোট খুঁটির খুব বেশি প্রভাব ছিল না, এবং বৃহত্তর খুঁটিগুলি খুব বেশি বিলম্ব করেছে, সুতরাং এটি স্থিতিশীল রাখতে আমার লাভগুলি হ্রাস করতে হয়েছিল, ফলে সামগ্রিক কর্মক্ষমতা খারাপ হয়।
আমি পেন্টিওমিটার জুড়ে একটি 0.1 µF ক্যাপাসিটার যুক্ত করেছি (ওয়াইপার এবং গ্রাউন্ডের মধ্যে) এবং এটি এটি পরিষ্কার করে দেবে বলে মনে হচ্ছে।
আপাতত, এটি যথেষ্ট ভাল কাজ করে। এর মধ্যে আমি টিম ওয়েসকটের পোস্ট করা কাগজটি দিয়ে পড়ছি ।
আপনার সহায়তার জন্য সবাইকে ধন্যবাদ।
This device is suitable for use in switching applications at frequencies up to 5 kHz.
তবে 3 পৃষ্ঠায় বৈদ্যুতিক বৈশিষ্ট্যগুলি যদি আপনি সমস্ত বিলম্ব যোগ করেন তবে নিখুঁত সর্বাধিক 690kHz প্রস্তাব দেয়। (নীচের ৪ টি লাইন) ব্যক্তিগতভাবে, আমি এর চেয়ে অনেক ধীর গতিতে যেতে চাই, তবে আমি মনে করি যে 31kHz পর্যাপ্ত হওয়া উচিত ... যদি এটি পৃষ্ঠায় 1 নোটটি না থাকত