ইউসি এবং বর্তমান শান্টের সাথে গড় স্রোত পরিমাপ করা


12

এটা আমার প্রথম পোস্ট। আমি একজন সফ্টওয়্যার লোক, হার্ডওয়্যার করার চেষ্টা করছি তাই মৃদু হব :)

বর্তনী

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

মাপা

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

সুতরাং, আমার প্রশ্ন হ'ল পিডাব্লুএমএমে স্যুইচ করার সময় আমি কীভাবে (গড়) বর্তমান পরিমাপ করতে পারি?

দেখে মনে হচ্ছে নকশাটি ঠিক আছে, তবে আমি নকশা এবং ইউসি এডিসি কীভাবে এই প্রসঙ্গে ব্যবহার করা উচিত তা উভয় ক্ষেত্রেই কিছু মিস করেছি।

পরিকল্পিত


আমার মনে হয় PWM থেকে কোনও গড় ভোল্টেজ দেওয়ার জন্য একটি ফিল্টার ব্যবহার করা যেতে পারে। একটি আকর্ষণীয় নিবন্ধ যে এই ধরনের একটি ফিল্টার ব্যাখ্যা ও মূল্যবোধ PWM ফ্রিকোয়েন্সি উপর ভিত্তি করে ব্যবহৃত হয় এই এক
অ্যালেক্সান_ই

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

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

আমি মনে করি এটি আপনার সমস্যার সমাধান তবে এর পরিবর্তে আমার আরও কারও অভিজ্ঞতা থাকতে হবে তার একটি বিশদ উত্তর প্রদান করা, এজন্যই আমি এটিকে মন্তব্য হিসাবে পোস্ট করেছি।
অ্যালেক্সান_ই

আউটপুটটি পরিবর্তনশীল শুল্ক পিচডাব্লুএম হওয়ায় আপনি একটি পিক ডিটেক্টর সার্কিট ব্যবহার করতে পারেন এবং এটি একটি এডিসি দিয়ে পরিমাপ করতে পারেন।
মার্টিন

উত্তর:


6

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

সমাধান 1: গড়

আপনি একটি এক-মানের ফলাফল পেতে চান -> সময়ে সময়ে গড় পান। @Akellyirl দ্বারা ইতিমধ্যে প্রস্তাবিত হিসাবে, একটি লো-পাস ফিল্টার ব্যবহার করুন। float y = alpha*input + (1-alpha)*yপ্রতিটি নমুনার জন্য গণনা করুন , যেখানে alphaস্মুথ ফ্যাক্টর। বিস্তারিত জানার জন্য উইকিপিডিয়া দেখুন ।

সমাধান 2: সর্বোচ্চ + গড়

আপনি গড় এবং সর্বাধিক মান পেতে আকর্ষণীয়। উদাহরণস্বরূপ উপাদানটির মাত্রা নির্ধারণের জন্য সর্বাধিক মান নিরীক্ষণ আকর্ষণীয় হতে পারে।

if (y > max)
  max = y;

সমাধান 3: স্ট্যান্ডার্ড বিচ্যুতি + সর্বোচ্চ + গড়

কেন?

নীচে চার্ট দেখুন। বিভিন্ন আকারের 3 টি সংকেত রয়েছে। একটি ত্রিভুজ , একটি সাইন এবং একটি স্পাইক সংকেত। এগুলি একই সময়কাল, একই প্রশস্ততা , একই গড় এবং একই ন্যূনতম এবং সর্বোচ্চ সহ সমস্ত পর্যায়ক্রমিক । তবে, তাদের বিভিন্ন আকার রয়েছে, এবং সত্যই তাদের একটি সম্পূর্ণ ভিন্ন গল্প আছে ...

সংকেত এবং তাদের হিস্টোগ্রাম

পার্থক্যের একটি হ'ল স্ট্যান্ডার্ড বিচ্যুতি। এজন্য আমি আপনাকে আপনার পরিমাপগুলি প্রসারিত করার এবং মানক বিচ্যুতি অন্তর্ভুক্ত করার পরামর্শ দিচ্ছি। সমস্যাটি হ'ল এটি গণনা করার মানক উপায় হ'ল সিপিইউ গ্রাহক। আশা করি, এর একটি সমাধান আছে।

কিভাবে?

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

পরিমাপ অর্জন করা শুরু করার আগে, হিস্টোগ্রাম সংরক্ষণ করার জন্য একটি অ্যারে তৈরি করুন। এটি 1 মাপের পূর্ণসংখ্যার অ্যারে, 32 আকারের উদাহরণস্বরূপ:

int histo[32];

অ্যামিটারের পরিসরের উপর নির্ভর করে নীচে ফাংশনটি মানিয়ে নিন। উদাহরণস্বরূপ, যদি পরিসরটি 256mA হয় তবে এর অর্থ হিস্টোগ্রামের বিন 0 0 এবং 8 এমএ এর মধ্যে মান দ্বারা বৃদ্ধি করা হবে, বিন 1 1 থেকে 8 এবং 16 এমএ ইত্যাদির মান দ্বারা বৃদ্ধি করা হবে ... সুতরাং, আপনার প্রতিনিধিত্ব করার জন্য একটি পূর্ণসংখ্যার প্রয়োজন হবে হিস্টোগ্রাম বিন সংখ্যা:

short int index;

প্রতিবার আপনি যখন একটি নমুনা পাবেন তখন সংশ্লিষ্ট বিন সূচকটি সন্ধান করুন:

index = (short int) floor(yi);

এবং এই বিন বৃদ্ধি:

histo[index] += 1;

গড় গণনা করতে, এই লুপটি চালান:

float mean = 0;
int N = 0;
for (i=0; i < 32 ; i++) {
  mean = i * histo[i]; // sum along the histogram
  N += i; // count of samples
}
mean /= N; // divide the sum by the count of samples.
mean *= 8; // multiply by the bin width, in mA: Range of 256 mA / 32 bins = 8 mA per bin.

স্ট্যান্ডার্ড বিচ্যুতি গণনা করতে, এই লুপটি চালান:

float std_dev = 0;

for (i=0; i < 32 ; i++) {
  std_dev = (i - mean) * (i - mean) * histo[i]; // sum along the histogram
}
std_dev /= N; // divide the sum by the count of samples.
std_dev = sqrt(std_dev); // get the root mean square to finally convert the variance to standard deviation.

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


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

1
নমুনা দেওয়া শুরু করার সাথে সাথে জিনিসগুলি বেশ জটিল হয়ে যায়। করণীয় প্রথম জিনিসটি হল নাইকুইস্ট-শ্যানন উপপাদ্য। স্বজ্ঞাত যা হ'ল স্যাম্পলিং ফ্রিকোয়েন্সি তত বেশি, আপনার কাছে আরও তথ্য। তবে যেটি স্বজ্ঞাত নয়, যদিও এটি মৌলিক, তা হ'ল ফ্রিকোয়েন্সি এফ-এ নমুনা দেওয়ার আগে আপনাকে অবশ্যই Fs / 2-এ সিগন্যালটি অবশ্যই নিচু পাস-ফিল্টার (অ্যানালগ / ইলেকট্রনিক্স ডোমেনে) আবশ্যক। অন্যথায়, আপনাকে এলিয়াসিং দ্বারা প্রভাবিত করা হবে। আমি আপনাকে সর্বোচ্চ স্যাম্পলিং ফ্রিকোয়েন্সি চয়ন করার পরামর্শ দিই suggest যদি সম্ভব হয় তবে পিডব্লিউএম ফ্রিকোয়েন্সি ~ 10 বারের মতো কিছু।
RawBean

এটি নাইকুইস্ট-শ্যানন উপপাদ্যের একটি সাধারণ ভুল বোঝাবুঝি যা প্রকৃতপক্ষে জানিয়েছে যে আপনার ব্যান্ডউইথের দ্বিগুণ সময়ে নমুনা নেওয়া দরকার। Aliasing সহায়ক হতে পারে। কোনও অসম্মানের উদ্দেশ্য নয়, তবে এটি কোনও টেক্সটবুকের উত্তর বলে মনে হচ্ছে। উচ্চ ফ্রিকোয়েন্সি বিশদটি সম্ভবত অপ্রাসঙ্গিক হ'ল অতিমাত্রায় আপত্তিজনক হলে এই দৃশ্যে W 10 বার পিডব্লিউএম স্যাম্পলিংয়ের পরামর্শ দেওয়া হচ্ছে।
akellyirl

1

আপনি সমস্যাটি সঠিকভাবে বুঝতে পারেন: আপনি পরিমাপের জন্য যে মিটার ব্যবহার করছেন তার মতোই আপনাকে পিডব্লিউএমের "গড়" পাওয়া দরকার need

আপনি A1,2,3 সিগন্যালে একটি আরসি ফিল্টার ব্যবহার করতে পারেন যার সময় ধ্রুবকটি আপনার পিডব্লিউএম পিরিয়ডের কমপক্ষে দশগুণ বেশি। এর অর্থ যদি আপনার পিডব্লিউএম সময়কাল 10 মাইক্রোসেকেন্ড হয় তবে আরসি সময় ধ্রুবকটি 100 মাইক্রোসেকেন্ড হতে হবে। উদাহরণস্বরূপ 10kOhms x 10nF = 100us

আরও ভাল সমাধান হ'ল মাইক্রোকন্ট্রোলারের মধ্যে সিগন্যালগুলি ডিজিটালিভাবে ফিল্টার করা:

float y = (1-0.99)*input + 0.99*y; 

এই ডিজিটাল ফিল্টারটির সময় ধ্রুবক পরিবর্তন করতে "0.99" মান পরিবর্তন করুন।


1
আপনি যদি কোডটিতে এটি করেন তবে এলিয়াসিংয়ের জন্য নজর রাখুন।
অ্যান্ডি ওরফে

অ্যালিয়াসিং কোনও সমস্যা নয়। আমরা সবাই জানি যে একটি সিগন্যাল পুনর্গঠন করতে স্যাম্পল রেট সর্বোচ্চ ফ্রিকোয়েন্সি কমপক্ষে দ্বিগুণ হতে হবে। কিন্তু যখন সিগন্যালটি ব্যান্ডলিমিটেড হয় আপনার কেবলমাত্র দ্বিগুণ ব্যান্ডউইথের নমুনা নেওয়া দরকার । একে আন্ডারস্যাম্প্লিগ বলা হয়। যেহেতু সংকেতটি সম্ভবত কম ফ্রিকোয়েন্সি হওয়ায় এটি হিটিং প্যাড চালাচ্ছে, তাই 100 থেকে 1000 এসপিএস পরিসরে যুক্তিসঙ্গত নমুনার হারগুলি ঠিক হওয়া উচিত। দেখুন: ni.com/ নিউজলেটার
50078

যদি আন্ডার স্যাম্পলিং ব্যবহার করে PWM হার এবং নমুনা হার পারস্পরিকভাবে প্রাইম হয় তা নিশ্চিত করা বুদ্ধিমানের কাজ হবে।
akellyirl

অবিকল আমার চিন্তাভাবনাগুলি - যদি এডিসির মাধ্যমে পরিমাপ করা হয় এবং একই এমসিইউতে পিডাব্লুএমএম তৈরি করা হয় তবে উভয়কে সময় মতো লক করার প্রবণতা থাকতে পারে।
অ্যান্ডি ওরফে

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