标签:
手上在做一个风洞
让个乒乓球悬浮在固定位置
大家好我就是那个灵魂画师
总的来说里面要用到测距,Kalman filter,
然后是PID,输出用PWM驱动,
还得加一块驱动板,听起来是蛮简单的
希望不要烂尾。
对了这次用arduino,毕竟第一次用。
好我们开始制作
一、传感器
这里是第一步
我挑好了传感器SRF05超声波
连接就是
VCC ------------5V
GND ------------GND
PIN ECHO -----D4
PIN TRIG ----- D5
int inputPin=4; // define ultrasonic signal receiver pin ECHO to D4 int outputPin=5; // define ultrasonic signal transmitter pin TRIG to D5 void setup() { Serial.begin(9600); pinMode(inputPin, INPUT); pinMode(outputPin, OUTPUT); } void loop() { digitalWrite(outputPin, LOW); delayMicroseconds(2); digitalWrite(outputPin, HIGH); // Pulse for 10μs to trigger ultrasonic detection delayMicroseconds(10); digitalWrite(outputPin, LOW); int distance = pulseIn(inputPin, HIGH); // Read receiver pulse time distance= distance/58; // Transform pulse time to distance Serial.println(distance); //Ourput distance delay(50); }
然后串口传给我了数据,我得测试一下
看起来效果还是有的
存到ss.txt里
二、kalman filter
ex=importdata(‘ss.txt‘) plot(ex) prevData=0.0; p=10; q=0.0001; r=0.05; kGain=0; outData=[]; for i=1:length(ex) p=p+q; kGain=p/(p+r); temp=ex(i); temp=prevData+(kGain*(temp-prevData)); p=(1-kGain)*p; prevData=temp; outData(i)=temp; end plot(outData);
plot(ex);
plot
(outData);
感觉参数调整好了,使图像状态曲线平滑了
写到arduino里。
风洞稳定小球系统(一)----- 基于MATLAB实现的Kalman filter距离检测
标签:
原文地址:http://www.cnblogs.com/MnsterLu/p/5612027.html