source: flair-src/trunk/lib/FlairFilter/src/NestedSat.h@ 10

Last change on this file since 10 was 10, checked in by Sanahuja Guillaume, 7 years ago

lic

File size: 2.8 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5/*!
6 * \file NestedSat.h
7 * \brief Class defining a PID with saturations
8 * \author Guillaume Sanahuja, Copyright Heudiasyc UMR UTC/CNRS 7253
9 * \date 2013/04/15
10 * \version 4.0
11 */
12
13#ifndef NESTEDSAT_H
14#define NESTEDSAT_H
15
16#include <ControlLaw.h>
17
18namespace flair
19{
20 namespace gui
21 {
22 class Layout;
23 class LayoutPosition;
24 }
25}
26
27class NestedSat_impl;
28
29namespace flair
30{
31namespace filter
32{
33 /*! \class NestedSat
34 *
35 * \brief Class defining a PID with saturations
36 *
37 * The output of this control law is calculated
38 * as follows: \n
39 * p_ref=Sat(p_ref,k*sat_ref) \n
40 * d_ref=Sat[(p_ref-p)*kp,k*sat_dref] \n
41 * law=Sat[(d-d_ref)*kd,sat_u] \n
42 * where p, p_ref and d are input values (see SetValues()), \n
43 * where sat_ref, sat_dref and sat_u are settings availables on the ground station, \n
44 * where k is a conversion factor (see ConvertSatFromDegToRad()).
45 */
46 class NestedSat : public ControlLaw
47 {
48 friend class ::NestedSat_impl;
49
50 public:
51 /*!
52 * \brief Constructor
53 *
54 * Construct a NestedSat at given place position. \n
55 * The NestedSat will automatically be child of position->getLayout() Layout. After calling this function,
56 * position will be deleted as it is no longer usefull. \n
57 *
58 * \param position position to display settings
59 * \param name name
60 */
61 NestedSat(const gui::LayoutPosition* position,std::string name);
62
63 /*!
64 * \brief Destructor
65 *
66 */
67 ~NestedSat();
68
69 /*!
70 * \brief Set input values
71 *
72 * \param p_ref proportional reference
73 * \param p proportional value
74 * \param d derivative value
75 */
76 void SetValues(float p_ref,float p,float d);
77
78 /*!
79 * \brief Convert saturation parameters in radians
80 *
81 * If this function is called, saturation parameters
82 * on the ground station will be interpreted as degrees. \n
83 * Thus, an internal conversion from degrees to radians will
84 * be done (k=PI/180).
85 */
86 void ConvertSatFromDegToRad(void);
87
88 private:
89 /*!
90 * \brief Update using provided datas
91 *
92 * Reimplemented from IODevice.
93 *
94 * \param data data from the parent to process
95 */
96 void UpdateFrom(const core::io_data *data);
97
98 NestedSat_impl* pimpl_;
99 };
100} // end namespace filter
101} // end namespace flair
102#endif // NESTEDSAT_H
Note: See TracBrowser for help on using the repository browser.