Main Page
Namespaces
Classes
Files
File List
File Members
src
LowPass.h
Go to the documentation of this file.
1
/*********************************************************************
2
* Software License Agreement (BSD License)
3
*
4
* Copyright (c) 2015-2018, Dataspeed Inc.
5
* All rights reserved.
6
*
7
* Redistribution and use in source and binary forms, with or without
8
* modification, are permitted provided that the following conditions
9
* are met:
10
*
11
* * Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* * Redistributions in binary form must reproduce the above
14
* copyright notice, this list of conditions and the following
15
* disclaimer in the documentation and/or other materials provided
16
* with the distribution.
17
* * Neither the name of Dataspeed Inc. nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
24
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
25
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
26
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
27
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
28
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29
* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
31
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
32
* POSSIBILITY OF SUCH DAMAGE.
33
*********************************************************************/
34
35
#ifndef SRC_LOWPASS_H_
36
#define SRC_LOWPASS_H_
37
38
namespace
dbw_mkz_twist_controller
{
39
40
class
LowPass
{
41
public
:
42
LowPass
() :
ready_
(false),
last_val_
(0) {
a_
= 1;
b_
= 0; }
43
LowPass
(
double
tau,
double
ts) :
ready_
(false),
last_val_
(0) {
setParams
(tau, ts); }
44
void
setParams
(
double
tau,
double
ts) {
45
a_
= 1 / (tau / ts + 1);
46
b_
= tau / ts / (tau / ts + 1);
47
}
48
double
get
() {
return
last_val_
; }
49
double
filt
(
double
val) {
50
if
(
ready_
) {
51
val =
a_
* val +
b_
*
last_val_
;
52
}
else
{
53
ready_
=
true
;
54
}
55
last_val_
= val;
56
return
val;
57
}
58
private
:
59
bool
ready_
;
60
double
a_
;
61
double
b_
;
62
double
last_val_
;
63
};
64
65
}
66
67
#endif
/* SRC_LOWPASS_H_ */
68
dbw_mkz_twist_controller::LowPass::LowPass
LowPass()
Definition:
LowPass.h:42
dbw_mkz_twist_controller::LowPass
Definition:
LowPass.h:40
dbw_mkz_twist_controller::LowPass::filt
double filt(double val)
Definition:
LowPass.h:49
dbw_mkz_twist_controller::LowPass::b_
double b_
Definition:
LowPass.h:61
dbw_mkz_twist_controller::LowPass::last_val_
double last_val_
Definition:
LowPass.h:62
dbw_mkz_twist_controller::LowPass::ready_
bool ready_
Definition:
LowPass.h:59
dbw_mkz_twist_controller::LowPass::a_
double a_
Definition:
LowPass.h:60
dbw_mkz_twist_controller::LowPass::LowPass
LowPass(double tau, double ts)
Definition:
LowPass.h:43
dbw_mkz_twist_controller::LowPass::setParams
void setParams(double tau, double ts)
Definition:
LowPass.h:44
dbw_mkz_twist_controller
Definition:
LowPass.h:38
dbw_mkz_twist_controller
Author(s): Micho Radovnikovich
, Kevin Hallenbeck
autogenerated on Thu Nov 14 2019 03:46:10