Filter Kalman adalah algoritme matematis yang menggunakan serangkaian pengukuran yang diamati dari waktu ke waktu, mengandung noise (variasi acak) dan ketidakakuratan lainnya, serta menghasilkan perkiraan variabel yang tidak diketahui yang cenderung lebih tepat daripada yang didasarkan pada pengukuran tunggal saja.
Berikut adalah contoh implementasi filter Kalman sederhana di Arduino:
// Declare variables for the sensor, the filter, and the state
float sensorValue;
float filteredValue;
float state;
float processNoise;
float measurementNoise;
float kalmanGain;
void setup() {
// Initialize the serial communication
Serial.begin(9600);
// Initialize the state and filtered value
state = 0;
filteredValue = 0;
// Set the process noise and measurement noise
processNoise = 0.01;
measurementNoise = 0.1;
}
void loop() {
// Read the sensor value
sensorValue = analogRead(A0);
// Predict the next state
state = state;
// Calculate the Kalman gain
kalmanGain = processNoise / (processNoise + measurementNoise);
// Update the state
state = state + kalmanGain * (sensorValue - state);
// Update the filtered value
filteredValue = state;
// Print the filtered value to the serial monitor
Serial.print("Filtered value: ");
Serial.println(filteredValue);
// Wait for a short period before taking the next reading
delay(100);
}
0 komentar:
Posting Komentar