1 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 2 3 Header: FGDeadBand.h 4 Author: Jon Berndt 5 Date started: 2001 6 7 ------------- Copyright (C) 2001 Jon S. Berndt ------------- 8 9 This program is free software; you can redistribute it and/or modify it under 10 the terms of the GNU Lesser General Public License as published by the Free 11 Software Foundation; either version 2 of the License, or (at your option) any 12 later version. 13 14 This program is distributed in the hope that it will be useful, but WITHOUT 15 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 16 FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more 17 details. 18 19 You should have received a copy of the GNU Lesser General Public License along 20 with this program; if not, write to the Free Software Foundation, Inc., 59 21 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 22 23 Further information about the GNU Lesser General Public License can also be 24 found on the world wide web at http://www.gnu.org. 25 26 HISTORY 27 -------------------------------------------------------------------------------- 28 29 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 30 SENTRY 31 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ 32 33 #ifndef FGDEADBAND_H 34 #define FGDEADBAND_H 35 36 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 37 INCLUDES 38 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ 39 40 #include "FGFCSComponent.h" 41 42 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 43 FORWARD DECLARATIONS 44 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ 45 46 namespace JSBSim { 47 48 class FGFCS; 49 class Element; 50 51 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 52 CLASS DOCUMENTATION 53 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ 54 55 /** Models a deadband object. 56 This is a component that allows for some "play" in a control path, in the 57 form of a dead zone, or deadband. The form of the deadband component 58 specification is: 59 60 @code 61 <deadband name="Windup Trigger"> 62 <input> {[-]property name | value} </input> 63 <width> {[-]property name | value} </width> 64 [<gain> { value } </gain> 65 <clipto> 66 <min> {[-]property name | value} </min> 67 <max> {[-]property name | value} </max> 68 </clipto>] 69 [<output> {property} </output>] 70 </deadband> 71 @endcode 72 73 The width value is the total deadband region within which an input will 74 produce no output. For example, say that the width value is 2.0. If the 75 input is between -1.0 and +1.0, the output will be zero. 76 @author Jon S. Berndt 77 */ 78 79 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 80 CLASS DECLARATION 81 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/ 82 83 class FGDeadBand : public FGFCSComponent 84 { 85 public: 86 FGDeadBand(FGFCS* fcs, Element* element); 87 ~FGDeadBand(); 88 89 bool Run(void) override; 90 91 private: 92 double gain; 93 FGParameter_ptr Width; 94 95 void Debug(int from) override; 96 }; 97 } 98 //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 99 100 #endif 101