7 * This source file is subject to the new BSD license that is bundled
8 * with this package in the file LICENSE.txt.
9 * It is also available through the world-wide-web at this URL:
10 * http://framework.zend.com/license/new-bsd
11 * If you did not receive a copy of the license and are unable to
12 * obtain it through the world-wide-web, please send an email
13 * to license@zend.com so we can send you a copy immediately.
16 * @package Zend_Measure
17 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
18 * @license http://framework.zend.com/license/new-bsd New BSD License
23 * Implement needed classes
25 require_once 'Zend/Measure/Abstract.php';
26 require_once 'Zend/Locale.php';
29 * Class for handling power conversions
32 * @package Zend_Measure
33 * @subpackage Zend_Measure_Power
34 * @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
35 * @license http://framework.zend.com/license/new-bsd New BSD License
37 class Zend_Measure_Power
extends Zend_Measure_Abstract
39 const STANDARD
= 'WATT';
41 const ATTOWATT
= 'ATTOWATT';
42 const BTU_PER_HOUR
= 'BTU_PER_HOUR';
43 const BTU_PER_MINUTE
= 'BTU_PER_MINUTE';
44 const BTU_PER_SECOND
= 'BTU_PER_SECOND';
45 const CALORIE_PER_HOUR
= 'CALORIE_PER_HOUR';
46 const CALORIE_PER_MINUTE
= 'CALORIE_PER_MINUTE';
47 const CALORIE_PER_SECOND
= 'CALORIE_PER_SECOND';
48 const CENTIWATT
= 'CENTIWATT';
49 const CHEVAL_VAPEUR
= 'CHEVAL_VAPEUR';
50 const CLUSEC
= 'CLUSEC';
51 const DECIWATT
= 'DECIWATT';
52 const DEKAWATT
= 'DEKAWATT';
53 const DYNE_CENTIMETER_PER_HOUR
= 'DYNE_CENTIMETER_PER_HOUR';
54 const DYNE_CENTIMETER_PER_MINUTE
= 'DYNE_CENTIMETER_PER_MINUTE';
55 const DYNE_CENTIMETER_PER_SECOND
= 'DYNE_CENTIMETER_PER_SECOND';
56 const ERG_PER_HOUR
= 'ERG_PER_HOUR';
57 const ERG_PER_MINUTE
= 'ERG_PER_MINUTE';
58 const ERG_PER_SECOND
= 'ERG_PER_SECOND';
59 const EXAWATT
= 'EXAWATT';
60 const FEMTOWATT
= 'FEMTOWATT';
61 const FOOT_POUND_FORCE_PER_HOUR
= 'FOOT_POUND_FORCE_PER_HOUR';
62 const FOOT_POUND_FORCE_PER_MINUTE
= 'FOOT_POUND_FORCE_PER_MINUTE';
63 const FOOT_POUND_FORCE_PER_SECOND
= 'FOOT_POUND_FORCE_PER_SECOND';
64 const FOOT_POUNDAL_PER_HOUR
= 'FOOT_POUNDAL_PER_HOUR';
65 const FOOT_POUNDAL_PER_MINUTE
= 'FOOT_POUNDAL_PER_MINUTE';
66 const FOOT_POUNDAL_PER_SECOND
= 'FOOT_POUNDAL_PER_SECOND';
67 const GIGAWATT
= 'GIGAWATT';
68 const GRAM_FORCE_CENTIMETER_PER_HOUR
= 'GRAM_FORCE_CENTIMETER_PER_HOUR';
69 const GRAM_FORCE_CENTIMETER_PER_MINUTE
= 'GRAM_FORCE_CENTIMETER_PER_MINUTE';
70 const GRAM_FORCE_CENTIMETER_PER_SECOND
= 'GRAM_FORCE_CENTIMETER_PER_SECOND';
71 const HECTOWATT
= 'HECTOWATT';
72 const HORSEPOWER_INTERNATIONAL
= 'HORSEPOWER_INTERNATIONAL';
73 const HORSEPOWER_ELECTRIC
= 'HORSEPOWER_ELECTRIC';
74 const HORSEPOWER
= 'HORSEPOWER';
75 const HORSEPOWER_WATER
= 'HORSEPOWER_WATER';
76 const INCH_OUNCE_FORCE_REVOLUTION_PER_MINUTE
= 'INCH_OUNCH_FORCE_REVOLUTION_PER_MINUTE';
77 const JOULE_PER_HOUR
= 'JOULE_PER_HOUR';
78 const JOULE_PER_MINUTE
= 'JOULE_PER_MINUTE';
79 const JOULE_PER_SECOND
= 'JOULE_PER_SECOND';
80 const KILOCALORIE_PER_HOUR
= 'KILOCALORIE_PER_HOUR';
81 const KILOCALORIE_PER_MINUTE
= 'KILOCALORIE_PER_MINUTE';
82 const KILOCALORIE_PER_SECOND
= 'KILOCALORIE_PER_SECOND';
83 const KILOGRAM_FORCE_METER_PER_HOUR
= 'KILOGRAM_FORCE_METER_PER_HOUR';
84 const KILOGRAM_FORCE_METER_PER_MINUTE
= 'KILOGRAM_FORCE_METER_PER_MINUTE';
85 const KILOGRAM_FORCE_METER_PER_SECOND
= 'KILOGRAM_FORCE_METER_PER_SECOND';
86 const KILOPOND_METER_PER_HOUR
= 'KILOPOND_METER_PER_HOUR';
87 const KILOPOND_METER_PER_MINUTE
= 'KILOPOND_METER_PER_MINUTE';
88 const KILOPOND_METER_PER_SECOND
= 'KILOPOND_METER_PER_SECOND';
89 const KILOWATT
= 'KILOWATT';
90 const MEGAWATT
= 'MEGAWATT';
91 const MICROWATT
= 'MICROWATT';
92 const MILLION_BTU_PER_HOUR
= 'MILLION_BTU_PER_HOUR';
93 const MILLIWATT
= 'MILLIWATT';
94 const NANOWATT
= 'NANOWATT';
95 const NEWTON_METER_PER_HOUR
= 'NEWTON_METER_PER_HOUR';
96 const NEWTON_METER_PER_MINUTE
= 'NEWTON_METER_PER_MINUTE';
97 const NEWTON_METER_PER_SECOND
= 'NEWTON_METER_PER_SECOND';
98 const PETAWATT
= 'PETAWATT';
99 const PFERDESTAERKE
= 'PFERDESTAERKE';
100 const PICOWATT
= 'PICOWATT';
101 const PONCELET
= 'PONCELET';
102 const POUND_SQUARE_FOOR_PER_CUBIC_SECOND
= 'POUND_SQUARE_FOOT_PER_CUBIC_SECOND';
103 const TERAWATT
= 'TERAWATT';
104 const TON_OF_REFRIGERATION
= 'TON_OF_REFRIGERATION';
106 const YOCTOWATT
= 'YOCTOWATT';
107 const YOTTAWATT
= 'YOTTAWATT';
108 const ZEPTOWATT
= 'ZEPTOWATT';
109 const ZETTAWATT
= 'ZETTAWATT';
112 * Calculations for all power units
116 protected $_units = array(
117 'ATTOWATT' => array('1.0e-18', 'aW'),
118 'BTU_PER_HOUR' => array('0.29307197', 'BTU/h'),
119 'BTU_PER_MINUTE' => array('17.5843182', 'BTU/m'),
120 'BTU_PER_SECOND' => array('1055.059092', 'BTU/s'),
121 'CALORIE_PER_HOUR' => array(array('' => '11630', '*' => '1.0e-7'), 'cal/h'),
122 'CALORIE_PER_MINUTE' => array(array('' => '697800', '*' => '1.0e-7'), 'cal/m'),
123 'CALORIE_PER_SECOND' => array(array('' => '41868000', '*' => '1.0e-7'), 'cal/s'),
124 'CENTIWATT' => array('0.01', 'cW'),
125 'CHEVAL_VAPEUR' => array('735.49875', 'cv'),
126 'CLUSEC' => array('0.0000013332237', 'clusec'),
127 'DECIWATT' => array('0.1', 'dW'),
128 'DEKAWATT' => array('10', 'daW'),
129 'DYNE_CENTIMETER_PER_HOUR' => array(array('' => '1.0e-7','/' => '3600'), 'dyn cm/h'),
130 'DYNE_CENTIMETER_PER_MINUTE' => array(array('' => '1.0e-7','/' => '60'), 'dyn cm/m'),
131 'DYNE_CENTIMETER_PER_SECOND' => array('1.0e-7', 'dyn cm/s'),
132 'ERG_PER_HOUR' => array(array('' => '1.0e-7','/' => '3600'), 'erg/h'),
133 'ERG_PER_MINUTE' => array(array('' => '1.0e-7','/' => '60'), 'erg/m'),
134 'ERG_PER_SECOND' => array('1.0e-7', 'erg/s'),
135 'EXAWATT' => array('1.0e+18', 'EW'),
136 'FEMTOWATT' => array('1.0e-15', 'fW'),
137 'FOOT_POUND_FORCE_PER_HOUR' => array(array('' => '1.3558179', '/' => '3600'), 'ft lb/h'),
138 'FOOT_POUND_FORCE_PER_MINUTE' => array(array('' => '1.3558179', '/' => '60'), 'ft lb/m'),
139 'FOOT_POUND_FORCE_PER_SECOND' => array('1.3558179', 'ft lb/s'),
140 'FOOT_POUNDAL_PER_HOUR' => array(array('' => '0.04214011','/' => '3600'), 'ft pdl/h'),
141 'FOOT_POUNDAL_PER_MINUTE' => array(array('' => '0.04214011', '/' => '60'), 'ft pdl/m'),
142 'FOOT_POUNDAL_PER_SECOND' => array('0.04214011', 'ft pdl/s'),
143 'GIGAWATT' => array('1.0e+9', 'GW'),
144 'GRAM_FORCE_CENTIMETER_PER_HOUR' => array(array('' => '0.0000980665','/' => '3600'), 'gf cm/h'),
145 'GRAM_FORCE_CENTIMETER_PER_MINUTE' => array(array('' => '0.0000980665','/' => '60'), 'gf cm/m'),
146 'GRAM_FORCE_CENTIMETER_PER_SECOND' => array('0.0000980665', 'gf cm/s'),
147 'HECTOWATT' => array('100', 'hW'),
148 'HORSEPOWER_INTERNATIONAL' => array('745.69987', 'hp'),
149 'HORSEPOWER_ELECTRIC' => array('746', 'hp'),
150 'HORSEPOWER' => array('735.49875', 'hp'),
151 'HORSEPOWER_WATER' => array('746.043', 'hp'),
152 'INCH_OUNCH_FORCE_REVOLUTION_PER_MINUTE' => array('0.00073948398', 'in ocf/m'),
153 'JOULE_PER_HOUR' => array(array('' => '1', '/' => '3600'), 'J/h'),
154 'JOULE_PER_MINUTE' => array(array('' => '1', '/' => '60'), 'J/m'),
155 'JOULE_PER_SECOND' => array('1', 'J/s'),
156 'KILOCALORIE_PER_HOUR' => array('1.163', 'kcal/h'),
157 'KILOCALORIE_PER_MINUTE' => array('69.78', 'kcal/m'),
158 'KILOCALORIE_PER_SECOND' => array('4186.8', 'kcal/s'),
159 'KILOGRAM_FORCE_METER_PER_HOUR' => array(array('' => '9.80665', '/' => '3600'), 'kgf m/h'),
160 'KILOGRAM_FORCE_METER_PER_MINUTE' => array(array('' => '9.80665', '/' => '60'), 'kfg m/m'),
161 'KILOGRAM_FORCE_METER_PER_SECOND' => array('9.80665', 'kfg m/s'),
162 'KILOPOND_METER_PER_HOUR' => array(array('' => '9.80665', '/' => '3600'), 'kp/h'),
163 'KILOPOND_METER_PER_MINUTE' => array(array('' => '9.80665', '/' => '60'), 'kp/m'),
164 'KILOPOND_METER_PER_SECOND' => array('9.80665', 'kp/s'),
165 'KILOWATT' => array('1000', 'kW'),
166 'MEGAWATT' => array('1000000', 'MW'),
167 'MICROWATT' => array('0.000001', 'µW'),
168 'MILLION_BTU_PER_HOUR' => array('293071.07', 'mio BTU/h'),
169 'MILLIWATT' => array('0.001', 'mM'),
170 'NANOWATT' => array('1.0e-9', 'nN'),
171 'NEWTON_METER_PER_HOUR' => array(array('' => '1', '/' => '3600'), 'Nm/h'),
172 'NEWTON_METER_PER_MINUTE' => array(array('' => '1', '/' => '60'), 'Nm/m'),
173 'NEWTON_METER_PER_SECOND' => array('1', 'Nm/s'),
174 'PETAWATT' => array('1.0e+15', 'PW'),
175 'PFERDESTAERKE' => array('735.49875', 'PS'),
176 'PICOWATT' => array('1.0e-12', 'pW'),
177 'PONCELET' => array('980.665', 'p'),
178 'POUND_SQUARE_FOOT_PER_CUBIC_SECOND' => array('0.04214011', 'lb ft²/s³'),
179 'TERAWATT' => array('1.0e+12', 'TW'),
180 'TON_OF_REFRIGERATION' => array('3516.85284', 'RT'),
181 'WATT' => array('1', 'W'),
182 'YOCTOWATT' => array('1.0e-24', 'yW'),
183 'YOTTAWATT' => array('1.0e+24', 'YW'),
184 'ZEPTOWATT' => array('1.0e-21', 'zW'),
185 'ZETTAWATT' => array('1.0e+21', 'ZW'),