无人机传感器信号滤波器设计

无人机飞行中,传感器数据因振动受到影响,需通过滤波处理,如采用30Hz低通滤波。Matlab的Butterworth滤波器设计工具便捷,如`butter(3, 0.03)`创建三阶滤波器。滤波器作用于输入信号,优化控制效果。除Butterworth,还有Chebyshev、Elliptic等滤波器可供选择。" 51141036,1455181,302重定向与URL劫持的解析,"['Web开发', '搜索引擎优化', '网络安全', 'HTTP状态码']

由于无人机在飞行过程中受到电机桨叶转动的引起的振动影响,从陀螺仪、加速度计等传感器出来的数据需要进行滤波,一般是通过低通滤波,结合电机的频率特性,通常30Hz左右是比较合适的阈值

Matlab提供了较为方便的设计低通滤波器的工具,如Buttorworth低通滤波器,

    [b, a] = butter(order, normalized_cutoff);

order为阶数,normalized_cutoff为标准化的截止频率,比如程序运行的频率是1000Hz,过滤30Hz的频率,设计一个三阶的滤波器,那么命令就是

    [b, a] = butter(3, 0.03)

b和a分别为得到的滤波器的滤波参数,a=[a0,a1,...,ak],b=[b0,b1,...,bk],k为阶数,这些参数的滤波作用如下

    y_n+a_1y_{n-1}+a_2y_{n-2}+...+a_ky_{n-k}=b_0x_n+b_1x_{n-1}+b_2x_{n-2}+...+b_kx_{n-k}

       y_n=b_0x_n+b_1x_{n-1}+b_2x_{n-2}+...+b_kx_{n-k}-a_1y_{n-1}-a_2y_{n-2}-...-a_ky_{n-k}

其中x_n为输入信号,y_n为滤波输出信号,通过上述的公式,可以对输入信号x_n进行k阶的滤波得到输出y_n

对于输入和输出阶数不同的低通滤波器,可以通过Matlab的maxflat命令来进行设计

    [b,a] = maxflat(n,m,Wn);

其中a和b的意义同上,m为输出阶数,n为输入的阶数,Wn为标准化的截止频率,即上面的normalized_cutoff参数

通过对输入信号如陀螺仪信号、加速度信号进行滤波可以优化无人机的控制效果,Buttorworth是目前较为通用的低通滤波器,具有较好的效果,设计其它类型的低通滤波器,如Chebyshev, Elliptic等,Matlab也提供了相应的支持,可以通过fdatool等图形化工具或者一些命令来选择和设计滤波器,并查看它的滤波效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值