মোটর fader পিআইডি নিয়ন্ত্রণ


15

আমি একটি আরডুইনো ব্যবহার করে মোটরযুক্ত ফ্যাডার (লিনিয়ার স্লাইড পোটিনোমিটার) নিয়ন্ত্রণ করার চেষ্টা করছি
পিআইডি নিয়ন্ত্রণ একটি নির্দিষ্ট লক্ষ্য অবস্থানে "জাম্পিং" করার জন্য ভাল ফলাফল দেয় তবে র‌্যাম্পগুলি ট্র্যাক করা একটি সমস্যা, এটি মোটেও মসৃণ নয়। আন্দোলনটি খুব বিড়ম্বিত, আমি যতই চেষ্টা করি না কেন।

র‌্যাম্প ট্র্যাক করার সময় এখানে রেফারেন্স পজিশন, পরিমাপক অবস্থান এবং মোটর আউটপুটের একটি প্লট রয়েছে: একটি র‌্যাম্প ট্র্যাকিং

এবং এখানে একই পরীক্ষার একটি ভিডিও

বাণিজ্যিক সিস্টেমে, এটা অনেক বাধামুক্ত মনে হয়, দেখতে এই

বিশদ :
মোটর ফাদার একটি আল্পস আরএসএ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ফাংশনটি প্রত্যাশা করে): PWM গতির

আমি যা চেষ্টা করেছি :
আমি ইনপুটটিতে, নিয়ন্ত্রণ সিগন্যালে, পিআইডি নিয়ন্ত্রকের ডেরিভেটিভ উপাদানটিতে একটি ইএমএ ফিল্টার যুক্ত করার চেষ্টা করেছি, তবে কোনও ফলসই হয়নি। আমি স্থির যখন দুটি মানের মধ্যে উল্টানো থেকে আটকাতে হিস্টেরেসিস ব্যবহার করে এনালগ ইনপুটটির রেজোলিউশন হ্রাস করার চেষ্টা করেছি । এটি কোনও কিছুর উপর প্রভাব ফেলবে বলে মনে হয় না। 10 ধাপে 10 ধাপে সময় বাড়ানো কোনওরকম সাহায্য করবে বলে মনে হয় না।

আমি ম্যাটল্যাবে একটি সিস্টেম শনাক্তকরণও চেষ্টা করেছি এবং এটি সিমুলিঙ্কে টিউন করার চেষ্টা করেছি (এই ভিডিও সিরিজটি অনুসরণ করে )। আমি ৯১% এর ফিট সহ একটি মডেল পেয়েছি, তবে আমি কীভাবে ম্যাটল্যাব মডেলের ইনপুট এবং আউটপুট অ-লিনিয়ারিটিগুলি মোকাবেলা করব, তারা পিআইডি টিউনিকে কীভাবে প্রভাবিত করবে এবং এটি আরডুইনোতে কীভাবে প্রয়োগ করতে হবে তা আমি জানতাম না।

চূড়ান্ত জিনিসটি আমি চেষ্টা করেছি দুটি পৃথক নিয়ন্ত্রক তৈরি করা: একটি রেফারেন্স পজিশনে বড় লাফের জন্য এবং একটি র‌্যাম্প ট্র্যাক করার সময় ছোট ত্রুটির জন্য। এটি কিছুটা সহায়তা করে বলে মনে হচ্ছে, কারণ তখন আমি ট্র্যাফিকিংয়ের সময় অবিচ্ছেদ্য সহগ বাড়াতে পারি, ঝাঁপ দেওয়ার সময় ওভারশুট না বাড়িয়ে।
যাইহোক, অবিচ্ছেদ্য (এবং আনুপাতিক) লাভ বাড়িয়ে মোটর এখন সবসময় কিছু না কিছু করে থাকে, এমনকি এটি স্থির হওয়া উচিত এবং রেফারেন্সটি পরিবর্তিত হয় না। (এটি আসলে
চলবে না, তবে আপনি এটি স্পন্দনশীল বোধ করতে পারেন)) আমার কার্যত কোনও ডেরাইভেটিভ লাভ নেই, কারণ এটি 1e-4 এর চেয়ে বেশি বাড়ানো এটিকে আরও ঝাঁকুনির বলে মনে হয় এবং আমি 0 এবং এর মধ্যে কোনও পার্থক্য লক্ষ্য করি না really 1e -4।

আমার ধারণা হ'ল স্থির ঘর্ষণকে কাটিয়ে ওঠার জন্য এটি আরও শক্তির প্রয়োজন, তারপরে গতিশীল ঘর্ষণ কম হয়, তাই এটি চালিত হয়, তাই এটি মোটরটিকে পিছন দিকে চালিত করে, এটি আবার থামিয়ে দেয়, তারপরে এটি আবার স্থির ঘর্ষণকে কাটিয়ে উঠতে হবে, এটি আবার সামনের দিকে গুলি করে s ইত্যাদি

বাণিজ্যিক নিয়ন্ত্রণকারীরা কীভাবে এই সমস্যাটি কাটিয়ে উঠতে পারেন?

আমার ব্যাকগ্রাউন্ড :
আমি ইলেকট্রিক্যাল ইঞ্জিনিয়ারিংয়ের আমার তৃতীয় ব্যাচেলর বর্ষে এসেছি, আমি কন্ট্রোল থিওরি, ডিজিটাল সিগন্যাল প্রসেসিং, এলকিউআর নিয়ন্ত্রণ ইত্যাদি বিষয়ে কোর্স অনুসরণ করেছি যাতে আমার কিছু তাত্ত্বিক পটভূমি রয়েছে তবে আমি এই সমস্ত তত্ত্বগুলিতে প্রয়োগ করতে সমস্যা হচ্ছি এই বাস্তব বিশ্বের সিস্টেম।


সম্পাদনা :
ল্যাপটপ 2 ডি প্রস্তাবিত হিসাবে আমি ওপেন-লুপ সেন্সর পরিমাপটি পরীক্ষা করেছি এবং ফলাফলগুলি নিয়ে আমি বেশ অবাক: উচ্চ পিডাব্লুএম ফ্রিকোয়েন্সিগুলিতে রিডিংগুলিতে দুষ্টু শিখর রয়েছে। 490 হার্জে, কোনও নেই।
এবং এটি একটি ধ্রুবক শুল্ক চক্রের, তাই মোটর যখন খুব দ্রুত দিকটি ঘুরিয়ে দেয় তখন আমি কী ধরণের শব্দ শুনতে পারি তা কল্পনা করতে পারি না।

এখানে চিত্র বর্ণনা লিখুন

সুতরাং আমি আবার নিয়ামকের উপর কাজ শুরু করার আগে আমাকে সেই শব্দটি ফিল্টার করার একটি উপায় খুঁজে বের করতে হবে।

সম্পাদনা 2 :
গোলমাল আউট ফিল্টার করার জন্য একটি ক্ষতিকারক চলমান গড় ফিল্টার ব্যবহার করা যথেষ্ট ছিল না।

ইএমএ

আমি 0.25, 0.50 এবং 0.75 এ খুঁটি দিয়ে চেষ্টা করেছি। ছোট খুঁটির খুব বেশি প্রভাব ছিল না, এবং বৃহত্তর খুঁটিগুলি খুব বেশি বিলম্ব করেছে, সুতরাং এটি স্থিতিশীল রাখতে আমার লাভগুলি হ্রাস করতে হয়েছিল, ফলে সামগ্রিক কর্মক্ষমতা খারাপ হয়।

আমি পেন্টিওমিটার জুড়ে একটি 0.1 µF ক্যাপাসিটার যুক্ত করেছি (ওয়াইপার এবং গ্রাউন্ডের মধ্যে) এবং এটি এটি পরিষ্কার করে দেবে বলে মনে হচ্ছে।

আপাতত, এটি যথেষ্ট ভাল কাজ করে। এর মধ্যে আমি টিম ওয়েসকটের পোস্ট করা কাগজটি দিয়ে পড়ছি ।
আপনার সহায়তার জন্য সবাইকে ধন্যবাদ।


আপনি কি সঠিকভাবে 31KHz pwm নিয়ন্ত্রণ করতে পারবেন?
হাসান আলাত্তার

@ হাসনলতার: না, আমি যে ফ্রিক্যুয়েন্সিগুলি ব্যবহার করতে পারি সেগুলি দ্বিতীয় গ্রাফে রয়েছে (1, 8, 64, 256, 1024 এর পূর্বনির্ধারক)। 4 কেএজেডজ এবং 500 হার্জেড শ্রবণযোগ্য, তাই তারা একটি বিরক্তিকর বীপিং সাউন্ড তৈরি করে, যা আমি এড়াতে চাই। এটি 31 কেএইচজেড, 120 হার্জ এবং 30 হার্জ ছেড়ে যায়। এবং দ্বিতীয় দুটি খুব ধীর, আমার মনে হয়। PWM রেজল্যুশন 8 বিট, কিন্তু আমি, কম ব্যবহার করছি কারণ আমার নিয়ন্ত্রণ সংকেত মাত্র 7 বিট, এবং আমি চেয়ে 96. উচ্চতর শুধুমাত্র PWM মান ব্যবহার
tttapa

1
আপনি যে এইচ-ব্রিজটি সংযুক্ত করেছেন তাতে ডেটাশিটের প্রথম পৃষ্ঠায় রয়েছে: This device is suitable for use in switching applications at frequencies up to 5 kHz. তবে 3 পৃষ্ঠায় বৈদ্যুতিক বৈশিষ্ট্যগুলি যদি আপনি সমস্ত বিলম্ব যোগ করেন তবে নিখুঁত সর্বাধিক 690kHz প্রস্তাব দেয়। (নীচের ৪ টি লাইন) ব্যক্তিগতভাবে, আমি এর চেয়ে অনেক ধীর গতিতে যেতে চাই, তবে আমি মনে করি যে 31kHz পর্যাপ্ত হওয়া উচিত ... যদি এটি পৃষ্ঠায় 1 নোটটি না থাকত
বয়সে অ্যারোনডি

তবে, এটি একটি নির্ধারিত শুল্ক চক্র ধরে ass (বা একটি থেকে "শুধু এটা আন্দোলিত" পরম সর্বাধিক ফ্রিকোয়েন্সি জন্য "পরোয়া করি না" দায়িত্ব চক্র - আপনি এটি অপ্রতিসম এর বিজ্ঞপ্তি পাবেন) উচ্চ এবং নিম্ন দায়িত্ব চক্র কিছু খুব সংকীর্ণ ডাল তৈরী করতে পারে, তাই কিভাবে চওড়া সেই তুলনায় পৃষ্ঠার নীচে 3?
অ্যারোনডি

1
এটি আপনার সমস্যা কিনা তা নিশ্চিত নন তবে টাইমস্ট্যাম্পটি পরিবর্তিত হতে পারে বলে আমি মনে করি আপনার কেবল ত্রুটি নয়, অবিচ্ছেদ্য ত্রুটি * এস যুক্ত করা উচিত এবং এসএস দ্বারা ইন্টিগ্রালকে গুণিত করবেন না। (টিএস যদি সর্বদা স্থির থাকে তবে তাতে কিছু যায় আসে না)
ব্যবহারকারী 253751

উত্তর:


9

একটি নিয়ন্ত্রণ ব্যবস্থা যেমন এটি সেন্সর হিসাবে ঠিক তত ভাল, সেন্সর খোলা লুপ চালান এবং নিয়ন্ত্রণ ইনপুট সরান। সেন্সরটিতে আপনার নিজের ইনপুট তৈরি করুন এবং এটি সেন্সর নয় তা নিশ্চিত করার জন্য অবস্থানের ডেটা নেওয়ার সময় ধীরে ধীরে স্লাইড করুন (বা ধীরে ধীরে নির্ভরযোগ্যভাবে স্লাইড করার কোনও উপায় সন্ধান করুন)। সেন্সর যদি কোলাহলপূর্ণ হয়, তবে নতুন সেন্সর পেয়ে বা এর সমান্তরাল করে বা সেন্সরের আউটপুট ফিল্টার করে সেন্সরের কার্যকারিতা উন্নত করুন । উচ্চতর রেজোলিউশন সহ আপনার সেন্সরের প্রয়োজন হতে পারে।

সেন্সরটি যদি শোরগোল না থাকে তবে আপনার আলাদা কন্ট্রোল লুপ নেওয়া দরকার। পিআইডি হ'ল প্রথম অর্ডার সিস্টেম এবং রেট নিয়ন্ত্রণে সত্যই দুর্দান্ত নয়।


আপনাকে ধন্যবাদ, উচ্চতর পিডব্লিউএম ফ্রিকোয়েন্সি নিয়ে প্রকৃতপক্ষে প্রচুর শব্দ আছে, তাই আমি এটির উন্নতি করার জন্য একটি উপায় বের করতে হবে। এটি কীভাবে করবেন তাতে আপনার কোনও পয়েন্টার রয়েছে?
ttapa

একটি ফিল্টার, যান্ত্রিক বা ডিজিটাল ব্যবহার করুন। যদি আপনি এটি না করতে পারেন তবে তারা সমান্তরাল সেন্সরগুলি ভাল হবে। meta.stackexchange.com/questions/126180/…
ভোল্টেজ স্পাইক

6

আপনি সঠিক যে সমস্যাটি ঘর্ষণ থেকে, বা সম্ভবত ঘর্ষণ এবং ব্যাকল্যাশের সংমিশ্রণ থেকে। বিভিন্ন পালস প্রস্থের জন্য আপনার গড় গতি বনাম শুল্কের চক্রটি ঘর্ষণ সহ একটি সিস্টেমের বৈশিষ্ট্য। এই কাগজটি আপনি কী দেখছেন তা ব্যাখ্যা করে এবং এর সমাধানগুলির একটি সংমিশ্রণ রয়েছে যা সমস্যার সাথে মোকাবিলা করার জন্য চিরকাল থেকেই ব্যবহৃত হয়ে আসছে। আপনি এগুলি আপনার ইঞ্জিনিয়ারিং কারিকুলামে দেখেন নি কারণ তারা বিশ্লেষণ করা শক্ত; তাদেরকে কাজ করার জন্য আপনাকে প্রাথমিকভাবে কেস-কেস-কেস ভিত্তিতে তাদের সাথে বেড়াতে হবে।

বাণিজ্যিক নিয়ন্ত্রণকারীরা কী করেন তা আমি জানি না, যদিও আমি সন্দেহ করি যে এখানে বিভিন্ন ধরণের সমাধান রয়েছে। এই জাতীয় জিনিসের সাথে অতীতে আমি যা করেছি তা হ'ল যখন আমার পিআইডি কন্ট্রোলার থেকে মোটর ড্রাইভের সিগন্যালটি কিছু প্রান্তিকের নীচে নেমে আসে (সম্ভবত আপনার ক্ষেত্রে 60 থেকে 70 গুনে) আমি একটি কর্তব্য সহ মোটর ড্রাইভটি পালস শুরু করি a চক্র যা গড় ড্রাইভকে পিআইডি আউটপুটের সমান করে তোলে। আমি সাধারণত এটির জন্য একটি সিগমা-ডেল্টা-ইশ মডিটর ব্যবহার করি কারণ এটি খুব কম লাইনেই প্রয়োগ করা যেতে পারে তবে আপনি যা কাজ করেন তা নিয়ে যেতে পারেন।


4

দেখে মনে হচ্ছে বেশিরভাগ আওয়াজ PWM ড্রাইভ সিগন্যাল থেকে আসছে from

আপনি কি এডিসি ক্যাপচারটিকে পিডব্লিউএম চক্রের সাথে সিঙ্ক্রোনাইজ করার চেষ্টা করেছেন? বেশিরভাগ মাইক্রোকন্ট্রোলারদের এডিসি ক্যাপচারকে টাইমারে ট্রিগার করার উপায় থাকে, তাই আপনি চক্রের একই পয়েন্টে সর্বদা ট্রিগার করতে পারেন।

সর্বনিম্ন শব্দের জন্য, মোটরটিতে পাওয়ার স্যুইচ করার আগে অনুকূল নমুনা অবস্থান সঠিক হবে, কারণ তখন কোনও স্পাইক নিষ্পত্তি করতে সবচেয়ে দীর্ঘ সময় নিয়েছিল। তবে অবস্থানটি যাই হোক না কেন, ক্যাপচারটি সিঙ্ক্রোনাইজ করলে স্পাইকস হ্রাস পাবে কারণ পিডাব্লুএম চক্রের একই পয়েন্টে অফসেটের পরিমাণ প্রায় একই থাকবে।


3

সুতরাং আমি আবার নিয়ামকের উপর কাজ শুরু করার আগে আমাকে সেই শব্দটি ফিল্টার করার একটি উপায় খুঁজে বের করতে হবে।

আপনি সেন্সর শব্দ (বা অন্য কোনও গোলমাল পরিমাপ / ভেরিয়েবল) এর মতো (লো পাস ফিল্টারিং) এর সাথে কোডটিতে ফিল্টার করতে পারেন:

এসফিল্টার[]=αএসফিল্টার[-1]+ +(1-α)এসকাঁচা[]

0<<α1


আমি চেষ্টা করেছি, তবে শিখরগুলি থেকে মুক্তি পাওয়ার পক্ষে এটি যথেষ্ট নয় এবং এটি খুব বেশি পিছিয়ে পড়েছে।
ttapa

@ttapa আমি দেখছি। আপনি আলফার জন্য কোন মানটি চেষ্টা করেছেন? (0.8,0.9) এটি কিছু টিউনিং নিতে যাচ্ছে যা আপনি ইতিমধ্যে ভেবে অবাক করে দিয়েছিলেন।
বিগ 6

আমি চেষ্টা করেছি এমন EMA ফিল্টারগুলির প্লট যুক্ত করতে আমার মূল পোস্টটি আপডেট করেছি updated আমি 0.9ও চেষ্টা করেছি এবং এটি 0.75 এর চেয়েও খারাপ ছিল, দেরি হওয়ার কারণে লাভগুলি অনেক কম হতে হবে। আমি মনে করি আমি ADC গোলমাল পরিষ্কার করতে একটি সীমাবদ্ধ EMA ব্যবহার করব, তবে আপাতত ক্যাপাসিটার যথেষ্ট।
ttapa
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.