Feeds:
Posts
Comments

## Petroleum to Biofuel: How much land is required

One of the primary uses of petroleum is as fuel. As the average carbon dioxide levels have already gone above 400 ppm and global warming is taking place, there have been many calls to reduce the usage of petroleum by substituting it with renewable energy. Biofuels stand very distinct among all other renewables because they could be easily used as a drop in replacement for petroleum based fuels.

## Petroleum usage

Around 84 percent of the distillates are used as fuels including diesel, gasoline(petrol), kerosene, LPG etc. Considering the oil usage at 94 million barrels per day, this amounts to 4585 billion litres per year.

## Biofuel yield

Different biofuel crops have different yields. Typical values are given below.

## Land Requirement to replace the entire petroleum based fuel

Considering the above yield and the amount of petroleum used as fuel, total land usage of different crops to replace the entire petroleum based fuel could be calculated. For comparison two forms of other data is also provided. 1) Total arable and agricultural land available. 2) Land area of some of the larger countries in the world.

Could Brazil increase the ethanol production 100 times utilizing the entire area of Brazil itself? Otherwise could the entire Sahara Desert or the United States be used for producing palmoil based biodiesel? Could any of these options be possible without touching the remaining tropical rainforests in the world?

As far as land usage is concerned, algae is the only source with a potential to replace the entire petroleum usage. But it is still a reasearch topic for many years, far away from being commerically available.

## Compiling ffmpeg and vlc from source

Both ffmpeg and vlc are two of the important applications in free software media processing. I wanted to compile both to incorporate latest codecs, x264 and libvpx for video along with aac and libopus for audio. This is what I have done on Debian unstable.

For my purpose, I was compiling these codecs from source. To use the development libraries and headers given by Debian, one has to install the following packages, sudo is used to denote usage of root
 sudo apt-get install libfaad-dev libfaac-dev libx264-dev libvpx-dev libopus-dev 

Instead of using the development pacakges provides by Debian, I was compiling and installing these libraries to /opt. To use proper package config paths for both ffmpeg and vlc, one has to do export PKG_CONFIG_PATH or alternatively supply then to the configure script.
 export PKG_CONFIG_PATH=/opt/lib/pkgconfig 

## Downloading the corresponding source code

 # faac wget -c http://downloads.sourceforge.net/faac/faac-1.28.tar.gz # faad wget -c http://downloads.sourceforge.net/faac/faad2-2.7.tar.gz # x264 git clone git://git.videolan.org/x264.git # libvpx git clone https://chromium.googlesource.com/webm/libvpx # opus git clone http://git.xiph.org/opus.git # ffmpeg git clone git://source.ffmpeg.org/ffmpeg.git # vlc git clone git://git.videolan.org/vlc.git 

As I mentioned above, I was using /opt as the prefix. These are the compilation commands used. Replace the number of CPU cores with “-jN” option of make.
 # faac ./configure --prefix=/opt # comment out line 126 of faac-1.28/common/mp4v2/mpeg4ip.h # strcasestr in case of any compilation error make -jN sudo make install # faad ./configure --prefix=/opt make -jN sudo make install # x264 sudo apt-get install yasm # install dependencies ./configure --prefix=/opt --enable-shared make -jN sudo make install # libvpx sudo apt-get install yasm #install dependencies ./configure --prefix=/opt --enable-vp8 --enable-vp9 --enable-shared make -jN sudo make install # libopus ./autogen.sh ./configure --prefix=/opt make -jN sudo make install 

### ffmpeg

 # install these extra package dependencies: sudo apt-get install libopenjpeg-dev libvorbis-dev libschroedinger-dev libvpx-dev libopus-dev ./configure --prefix=/opt --extra-cflags='-Wall -g -I/opt/include/' --extra-ldflags='-L/opt/lib/' --enable-avfilter --enable-libschroedinger --enable-libvpx --enable-libspeex --enable-libtheora --enable-libopus --enable-libvorbis --enable-pthreads --enable-zlib --disable-stripping --enable-runtime-cpudetect --enable-libfaac --enable-libx264 --enable-postproc --enable-swscale --enable-x11grab --enable-libopenjpeg --enable-shared --enable-gpl --enable-nonfree --disable-static --disable-stripping --disable-altivec --disable-armv5te --disable-armv6 --disable-doc --disable-htmlpages --disable-manpages --disable-podpages --disable-txtpages make -jN sudo make install 

### vlc

 # package dependencies: apt-get install libtool gettext cvs libfaad-dev libfaac-dev libswscale-dev libpostproc-dev libqt4-dev libgcrypt20-dev libdbus-1-dev lua5.2 liblua5.2-dev libproxy-dev libdvbpsi-dev liblivemedia-dev libnotify-dev libshout3-dev libdca-dev libflac-dev libmpeg2-4-dev libmpeg3-dev libsdl2-dev libgnutls28-dev libavc1394-dev libsmbclient-dev libtwolame-dev liba52-0.7.4-dev libfribidi-dev libjack-dev libmad0-dev # a few more extra dependencies: apt-get install libcdio-dev libvcdinfo-dev libpulse-dev libxml2-dev libmodplug-dev libnotify-dev libcaca-dev libncursesw5-dev libxpm-dev libxcb-shm0-dev libxcb-xv0-dev libxcb-keysyms1-dev libxcb-randr0-dev libx11-xcb-dev libxcb-composite0-dev ./bootstrap ./configure --prefix=/opt --disable-update-check --disable-gnome --disable-gtk --disable-familiar --disable-fb --enable-sdl --enable-esd --enable-mad --enable-arts --disable-jack --enable-pulse --enable-lirc --enable-a52 --enable-aa --enable-dvbpsi --without-dv-raw1394 --disable-dc1394 --disable-kde --enable-mp4 --enable-dvb --disable-satellite --enable-ogg --enable-vorbis --enable-shout --enable-qt4 --disable-slp --enable-flac --disable-skins --disable-basic-skins --enable-skins2 --enable-freetype --enable-mkv --enable-speex --enable-caca --enable-live555 --enable-libmpeg2 --enable-fribidi --enable-cdio --enable-mod --enable-theora --enable-modplug --enable-gnutls --enable-ffmpeg --enable-ncurses --enable-smb --disable-gnomevfs --enable-bonjour --enable-mpc --enable-vcd --enable-vcdx --enable-twolame --enable-x264 --enable-faad -enable-faac --enable-vpx --enable-opus --enable-xcb --disable-zvbi --enable-telx --enable-mediacontrol-bindings --disable-atmo --enable-taglib --enable-libass --enable-libdca --enable-alsa --disable-dv --disable-dvdnav --disable-notify --enable-v4l --enable-v4l2 --enable-pvr --enable-dvd --without-dvdcss CPPFLAGS='-I/opt/include' CFLAGS='-g -O2 -I/opt/include' LDFLAGS='-L/opt/lib -Wl,--as-needed' CXXFLAGS='-g -O2' PKG_CONFIG_PATH='/opt/lib/pkgconfig:/usr/lib/pkgconfig' make -jN sudo make install 

## Airtel 3G modem E1731 Linux Configuration – Complete guide

Recently I bought an Airtel 3G connection using Huawei E1731Bu-1 USB modem. As usual, I wanted to get it working in Debian GNU/Linux amd64 version. As a first step, installed the following packages using apt-get.

sudo apt-get install ppp pppconfig wvdial

Normally this modem is detected properly, but I was curious to know the extra modules loaded when it is connected. So, I tried lsmod before and after connecting the device and found the following extra modules.

cdc_ether, mii, option, usbnet, usbserial, usb_storage, usb_wwan

## WvDial

First, I tried to configure wvdial since that seems to be the easiest thing to try. Google gave me reference to PJP’s website.

p://pjps.wordpress.com/tag/linux/

He was kind enough to answer my questions also.

## Pon and Poff

WvDial is great. But, I wanted to try Pon and Poff also. They offer a few advantages over wvdial. As an “original” command, many distributions support them out of the box where as wvdial has to be installed separately. There used be a lot of problems in using WvDial on ARM based systems because of getcontext/setcontext support on ARM.

Already I experienced that while using EC1261 Tata Photon, posted the following on Debian forum.

http://forums.debian.net/viewtopic.php?f=7&t=54131

http://forums.debian.net/viewtopic.php?f=5&t=50197

For my Debian desktop, I used pppconfig with the following configuration. But, it did not create a proper /etc/chatscripts/airtel. So, I had to update it to the one given at bottom.

Change 98xxxxxxxx to the mobile number associated with the modem.

pppconfig options

******************** Create Create a connection

 Provider Name: airtel Configure Nameservers (DNS): None Authentication Method for airtel: Peer Authentication Protocol User Name: 98xxxxxxxx Password: 98xxxxxxxx Speed: 460800 Pulse or Tone: Tone Phone Number: *99# Choose Modem Config Method: No Manually Select Modem Port: /dev/ttyUSB0 

Finished Write files and return to main menu. ********************

For the Debian laptop, instead of using pppconfig, I just copied the following generated files from desktop, set the ownership and permissions properly.

 cp /path/to/chatscripts/airtel /etc/chatscripts/airtel chown root:dip /etc/chatscripts/airtel chmod 640 /etc/chatscripts/airtel

 cp /path/to/ppp/pap-secrets /etc/ppp chown root:root /etc/ppp/pap-secrets chmod 600 /etc/ppp/pap-secrets 

cp /path/to/ppp/peers/airtel /etc/ppp/peers/airtel chown root:dip /etc/ppp/peers/airtel chmod 640 /etc/ppp/peers/airtel 

That is all. You could use pon/poff to connect and disconnect to the network.

pon airtel poff airtel

## MobilePartner Application

Surprisingly, I could get Airtel application to work. Note that we absolutely do not require this to connect to the network. But, it is good to have it, since it is easy to check 3G Balance using *123*11#. It is also helpful while sending and receiving SMS.

There is a CDROM device associated with the modem. It could be found using the “dmesg” command.

sr1: scsi-1 drive sr 12:0:0:0: Attached scsi CD-ROM sr1

That means the device is /dev/sr1. Just mount it and install it.

sudo mount /dev/sr1 /media/cdrom cp -fr /media/cdrom/Linux /tmp cd /tmp/Linux sudo ./install

You may find a few errors because it is trying to install “NDIS” driver, but it could be ignored since we are not planning to use NDIS driver to connect to the network. By default it is installed in /usr/local/airtel directory. Start the “/usr/local/airtel/MobilePartner” application.

## Configurations

These are the Configurations I used.

### /etc/wvdial.conf

cat /etc/wvdial.conf [Dialer Defaults] Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 Init3 = AT+CGDCONT=1,"IP","airtelgprs.com" Modem Type = Analog Modem ISDN=0 Phone = *99# Username = 98xxxxxxxx Password = 98xxxxxxxx New PPPD = yes Modem = /dev/ttyUSB0 Baud = 460800 Stupid Mode = 1 

### /etc/chatscripts/airtel

cat /etc/chatscripts/airtel # This chatfile was generated by pppconfig 2.3.18. # Please do not delete any of the comments. Pppconfig needs them. # # ispauth PAP # abortstring ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE' ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED

 REPORT CONNECT # modeminit '' ATZ OK 'ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0' OK 'AT+CGDCONT=1,"IP","airtelgprs.com"' # ispnumber OK-AT-OK "ATDT*99#" # ispconnect CONNECT \d\c # prelogin # ispname # isppassword # postlogin 

# end of pppconfig stuff 

### /etc/ppp/pap-secrets

cat /etc/ppp/pap-secrets # # /etc/ppp/pap-secrets # # This is a pap-secrets file to be used with the AUTO_PPP function of # mgetty. mgetty-0.99 is preconfigured to startup pppd with the login option # which will cause pppd to consult /etc/passwd (and /etc/shadow in turn) # after a user has passed this file. Don't be disturbed therefore by the fact # that this file defines logins with any password for users. /etc/passwd # (again, /etc/shadow, too) will catch passwd mismatches. # # This file should block ALL users that should not be able to do AUTO_PPP. # AUTO_PPP bypasses the usual login program so it's necessary to list all # system userids with regular passwords here. # # ATTENTION: The definitions here can allow users to login without a # password if you don't use the login option of pppd! The mgetty Debian # package already provides this option; make sure you don't change that.

 # INBOUND connections # Every regular user can use PPP and has to use passwords from /etc/passwd * hostname "" * # UserIDs that cannot use PPP at all. Check your /etc/passwd and add any # other accounts that should not be able to use pppd! guest hostname "*" - master hostname "*" - root hostname "*" - support hostname "*" - stats hostname "*" - # OUTBOUND connections # Here you should add your userid password to connect to your providers via # PAP. The * means that the password is to be used for ANY host you connect # to. Thus you do not have to worry about the foreign machine name. Just # replace password with your password. # If you have different providers with different passwords then you better # remove the following line. # * password 

"98xxxxxxxx" airtel "98xxxxxxxx" 

### /etc/ppp/peers/airtel

cat /etc/ppp/peers/airtel # This optionfile was generated by pppconfig 2.3.18. # # hide-password noauth connect "/usr/sbin/chat -v -f /etc/chatscripts/airtel" debug /dev/ttyUSB0 460800 defaultroute noipdefault user "98xxxxxxxx" remotename airtel 

## An environmental lesson from the Soviet Union

### Ships of the desert grazing near deserted ships in Aral Sea desert

Baikonur Cosmodrome, Kazakhstan – First ever window to space. Beginning of the space age was one of the greatest achievements of mankind since the dawn of civilization. Many space scientists, explorers and researchers had gone through the arid steppes of this small Central Asian town. That list includes Sputnik scientists, Yuri Gagarin and many of the International Space Station travelers.

Double Humped Wild Bactrian Camels grazing near abandoned ships in Aral Sea desert

Just 250 km north west of Baikonur lies another small town, supposed to be on the banks of Aral Sea, named Aralsk. Aral Sea was the 4th largest lake by area and 12th largest lake by volume until 1960. It had an area of 68000 square kilometers and a volume of 1100 cubic kilometers. The lake had one third salinity of sea water at around 10g/L. It was fed by two of the largest river ecosystems of Central Asia namely Amu Darya and Syr Darya. Historically known as Oxus and Jaxtares, these two rivers were very famous throughout the Achaemenid Persian, Greek and Arab periods. Amu Darya and Syr Darya have a mean discharge of 97.4 cubic kilometers and 37 cubic kilometers respectively. Source of their water is from the glaciers of Pamir and Tian Shan mountains. Rain water could not contribute much as these steppes are extremely arid with a rainfall of around 30 cm / 12 inches. Temperature could go anywhere between -45 Degree Celsius to 45 Degree Celsius depending upon seasons.

Aral Sea is shared between both Kazakhstan and Uzbekistan. Until around 1960 two towns flourished on the banks of Aral Sea, Aralsk on the north east in Kazakhstan and Muynak on the south west in Uzbekistan. Both were important fishing towns with harbors and processing industry. Uzbekistan used to get around 60% of their fish, that is 25000 tonnes of fish from Aral Sea itself

Things started changing around 1955-1960 when Soviet Union started to improve their agriculture output. Many dams and canals were built to divert large amount of water for irrigation. This reduced the amount of water reaching Aral Sea drastically and Aral Sea started getting dried up very fast. Currently Aral sea got split up into 4 lakes including North Aral Sea and South Aral Sea with a total area of around 6800 square kilometers which is only 10% of its original size. Lake salinity got increased to around 100g/L destroying all fish in the lake.

Aral Sea: Map vs. Satellite image

### Cotton Production:

Cotton production also took off like the Soviet space program during 1960s. Uzbekistan’s production increases from 300000 MT in 1950 to around 3 Million MT in mid 1980s. Most of the the cotton was cultivated as a monoculture without crop rotation. This required huge amount of pesticides and chemical fertilizers. Lots of pesticides and fertilizers reached Aral Sea due to run off. Cotton requires large amount of water and virtually all of this water is sourced from Amu Darya and Syr Darya.

### Per Capital Water Usage:

Central Asian countries of Turkmenistan, Kazakhstan and Uzbekistan have the highest per capital water usages. Most of the water is sourced from Amu Darya and Syr Darya and used for irrigating cotton plantations.

Per Capital Water Usage of Countries

### Environmental issues:

There are many environmental problems associated with aral sea crisis. Farming without crop rotation depletes soil of nutrients and increases the salt content in the soil. Cotton production of Uzbekistan went down by half from its peak values during 1980s.

Aralkum is the new desert appeared on the dried up seabed of Aral Sea. It is estimated that Aralkum has an area of around 55000 square kilometers. It is a mixture of sand, salt, run-off pesticides and fertilizers. About 200000 Tonnes of salt and sand are carried by the wind from Aral Sea everyday and dumped withing 300 km radius. This pollution is decreasing available agricultural area due to salt content. This increases respiratory problems in people. There have been instances of this pollution reaching as far as the Arctic north of Russia.

A view from Muynak Port in Uzbekistan: abandoned ships

### Difference approaches of Kazakhstan and Uzbekistan

Out of all countries in the Amu Darya and Syr Darya region, Kazakhstan is taking some effort to restore North Aral Sea. They have created Kok Aral Dam in 2005 with the help of World Bank spending \$64 Million. This dam traps water from Syr Darya and redirect it back to North Aral Sea. Due to this water levels in North Aral Sea is increasing and its salinity is going down. Aralsk used to be around 100 km away from North Aral Sea in 2005, but after the construction of the Dam it is around 6 km away. Also area of North Aral Sea got increased from around 2550 square km in 2003 to 3300 square km in 2008.

Cranes near dried up Aral Sea in Aralsk port, Kazakhstan

On the other side, Uzbekistan has not done anything practically to restore Aral Sea. Some figures says that around 50000 people of Karakalpakstan region of Uzbekistan have already left their places due to pollution.

Hope Central Asian countries would give more importance to restoring Aral Sea to its original form.

## Solar: Is it an option for aircrafts and shipping

Solar energy is considered as the ultimate source of energy. In the last few years due to technology and abundant production of silicon, solar technology has become very commercially viable and it is rapidly approaching grid parity.

Effect of this could be seen in transportation also. Numerous solar vehicles have been tried or announced. Some of them are solar airplanes and solar powered ships. As a solar enthusiast, it looks very interesting to me. But, after looking at some of the traditional ‘flagship’ vessels and aircrafts, it is a different story. Some of the details are given below.

Largest aircraft ever built is the Soviet Antonov 225, with a maximum take off weight (MTOW) of 640 Metric Tonnes. But, practically the most widely used heavy aircraft is Boeing 747 with an MTOW of around 450 Metric Tonnes.

Consider the case of this aircraft becoming solar powered. The first choice is to fit solar panels on top of the wings and next, on top of the aircraft itself. How much area could be covered? As per Wikipedia, the wing area is around 550m2. The aircraft has a length of 70 metres and a width of 6 metres. So combining together, totally around 1000m2 would be available. With solar radiation of around 1000W/m2, total available solar energy reaches 1MW typically. For this exercise, we do not care about the cost of the solar cell, so let us consider one of the best triple junction cells at 40% efficiency. After installing, we could get 400KW of electricity.

Coming to the ocean front, the largest ship ever built was Seawise Giant or Knock Nevis with a DWT of 564763 Metric Tonnes. Her length was 458 metres and the deck area was 31541 m2. That one is an oil tanker, where as the largest container ship is Emma Maersk.

Let us repeat the previous exercise, Knock Nevis could collect a maximum of around 32MW of solar energy. With the best solar panels, around 12.8MW of electricity could be produced.

Note that this is the maximum solar power production. We are not at all considering about electricity storage system so that power is available when Sun is not shining.

Now let us see the energy requirement of these aircrafts and ships. Boeing 747 engines could produce around 1000kN of thrust where as it could carry more than 150 Metric Tonnes of fuel. During take off time, the fuel consumption rate is around 12000 US Gallons per hour, that is 10.25 kgs of fuel per second. With an energy density of 43MJ/kg, and a typical turbofan engine efficiency of 35 percent, that comes to 150MW of power production.

Coming back to Emma Maersk. The main engine produces 81MW and electrical generators produce 30MW. Fuel consumption could reach around 20 Metric Tonnes per hour. These ships carry around 5000 to 1000 Metric Tonnes of fuel.

That is the main point. Don’t think about a trip to Hawaii in a solar powered aircraft or cruise liner. A 747 requires around 400 times more power compared to what the best solar panels could produce, where as Emma Maersk requires around 8 times more. Even though solar could not be used for primary power, it could be used for a lot of auxiliary power applications.

Correction:The word ‘aircraft’ is both singular and plural. As per correct English, ‘aircrafts’ is not a correct word.

## Greatest power plants of the night sky

I was looking at the statistics of power consumption of the world. From all forms of energy sources we are currently using around 15TW of power. Whereas, solar energy reaching our Earth is 6000 times more than our energy consumption.

Sun radiates energy in all directions and only a very tiny portion of that reaches our Earth. Thermonuclear fusion of hydrogen into helium is the source of solar energy. 620 Million Metric Tonnes of hydrogen is consumed every second. A small portion of that, that is 4.26 Million Metric Tonnes is fully transformed into energy to produce 3.846 x 10^26 Watts. Sun consumes an Earth Mass equivalent of hydrogen in 305000 years producing an Earth Mass equivalent of energy in every 45 Million years. So the mass of the Sun is getting reduced by one Earth Mass in this period of time. In the 4.5 Billion year history of the Solar system, Sun produced around 100 Earth Mass equivalent of energy. That seems to be very huge, but that is only 0.03% of the Solar mass.

But remember that our Sun is an ordinary star in our galaxy, the Milky Way. There are many billion stars in the Milky Way and there are many billion galaxies in the Universe.

Many of the stars we see are actually much brighter than the Sun, but do not appear bright because of the larger distance. The term ‘Luminosity’ is used to measure the brightness of a star without considering its distance. Luminosity is the measure of the energy production of the star relative to that of our Sun.

The most luminous first order magnitude star is Deneb belonging to Cygnus constellation. It is around 200000 as bright as the Sun.

## The Super Powers of Orion

From antiquity, Orion is regarded as one of the most prominent constellations. It is also an interesting fact that Orion has some of the important first order magnitude stars.

Betelgeuse: Known as Alpha Orionis. It is a red supergiant with a diameter more than 1000 times that of Sun. Placed in the centre of the Solar system that would reach upto Jupiter. It produces around 140000 time more energy compared to the Sun. That is an Earth Mass equivalent of energy in 320 years. Had Betelgeuse been our nearest visible star instead of Alpha Centauri, it would have been nearly as bright as the full Moon.

Rigel: On the other side, it is a blue supergiant also known as Beta Orionis. It has a luminosity of more than 100000 that of the Sun. If a planet has to get similar amount of light as our Earth, it has to be at a distance of more than 300AU, that means at a distance 8 times that of Pluto.

Alnilam, Alnitak, Mintaka: These three stars form the belt of Orion. All of them are blue supergiants with a luminosity more than 100000 as the Sun.

While seeing those “Twinkle Twinkle Little Stars”, do remember that they produce unimaginable amount of energy.

## Compressed Air Energy Storage, Entropy and Efficiency

The basic operating principle behind Compressed Air Energy Storage (CAES) is extremely simple. Energy is supplied to compress air, and when energy is required this compressed air is allowed to expand through some expansion turbines. But, as and when we approach this simple theory, it starts becoming more complex because of the thermodynamics involved.

Air gets heated up when it is compressed. This could be easily seen had you ever used a bicycle pump. Depending upon how air is compressed, it could be broadly classfied according to two thermodynamic processes, Adiabatic and Isothermal.

Adiabatic Compression: In this process, the heat of compression is retained, that means, there is no heat exchange resulting in zero entropy change. So the compressed air becomes very hot.

Isothermal Compression: The temperature of the gas is kept constant by allowing the heat of compression to get transferred to the environment. The entropy of the gas decreases as it gives out heat, but the entropy of the surroundings get increased by the same amount as it is accepting heat. Since both are equal, the net entropy change is zero.

Pure adiabatic and isothermal processes are very difficult to achieve. Practical compressors are somewhat in between these two. Let me put it in simple words. Take a bicycle pump, insulate the cylinder using a rubber sheet and compress it very fast in one second, that would be more of an adiabatic compression. Touch the cylinder of the pump, you could feel it. Where as, take the same pump, put it in water so that it remains cool. Compress it slowly say by 10% of the cylinder length, allow it to cool, continue compression and cooling a few times. Let the whole process take 1 minute instead of 1 second, that would be more of an isothermal compression.

The same holds good while expansion also, if the gas is not allowed to take heat from outside, then it would be adiabatic expansion resulting in a drop of temperature. But, in isothermal expansion, the gas is allowed to expand by taking heat from the surroundings and keeping the temperature constant.

In practice, isothermal compression is achieved very similar to the second bicycle example given above. Compress the air with a small compression ratio, allow it to cool without changing the volume, repeat this cycle until the required compression is achieved.

We could see that a reversible Isothermal compression is,
$Isothermal = \lim_{R \to 0, N \to \infty} \sum_{1}^N Adiabatic_N + Isochoric_N$

In effect, repeat an infinitesimal Adibatic compression followed by an Isochoric (Constant Volume) cooling, N times so that the temperature does not change. Applying Limit, when N tends to infinity the process becomes an ideal Isothermal compression. Here R is the compression ratio of the Adiabatic compression. It could be easily seen that, multiplying each compression ratio R of every cycle would give the total compression ratio. But, in normal systems a definite number of compressor stages are used with intercoolers as heat exchangers between stages to provide isochoric cooling and drop in pressure.

Expansion process is a bit different. The air goes through adiabatic expansion of multiple stages with heat exchangers in between stages. These heat exchangers are used to perform opposite function of the compressor intercoolers, that is to reheat the air by taking heat from the surroundings and there by an increase in pressure. It is assumed that all the stages use adiabatic expansion using a constant volume ratio, with the exception of the last stage. In the last stage, adiabatic expansion at constant pressure ratio is used so that the output is of ambient pressure. If constant volume ratio is used, the output of the last stage expander would have much lower pressure than that of the surroundings. The discharged air from the last stage subsequently gets expanded and heated up by taking surrounding heat using an Isobaric (Constant Pressure) process. This could be compared to the expansion and heat rejection processes of a Brayton cycle gas turbine.

### Efficiency of Processes.

Theoretically both pure adiabatic and isothermal processes are reversible. That means whatever energy supplied during compression could be retrieved back during expansion, that implies 100% efficiency. Entropy change justifies both. In adiabatic there is no entropy change at all. Whereas in Isothermal, the entropy change of the system and surroundings are opposite with the same value because heat is exchanged at constant temperature, so that there is no net entropy change. But in practical compressed air scenario it is far from correct because of many reasons.

• Pure adiabatic or isothermal processes are not possible.
• If adiabatic storage is used, air temperature and pressure could be very high for higher compression ratio. The container should handle this large pressure and temperature.
• If isothermal storage using mixed adiabatic and isochoric stages are used, it would lead to reduction in efficiency.
• Efficiency could be improved by increasing the number of stages, but that would increase cost and complexity.
• Air is not an ideal diatomic gas
• All intercoolers and heat exchanges do a mixed Isochoric and Isobaric heating or cooling.
• Mechanical parts are subject to friction and other inefficiencies.

### A few examples

In all these examples ambient air at 25C and 1atm (100kPa) with an initial volume of 1.0m3 is used. All compression and expansion are assumed to be adiabatic. And heat transfer are through Isochoric process except the last expansion stage which uses Isobaric process.

Attachment: In order to do calculations, I wrote a python script. It could be downloaded from here. (Again wordpress is not allowing me to upload a python text file. So I uploaded it as an ODT file. Download and save it as thermo.py with execute permissions). It could be invoked with parameters like number of stages, compression ratio etc.

Example 1:
Compression: A single stage compression using volume ratio 100, followed by isochoric cooling.
Expansion: A single stage expansion using a pressure ratio 100 followed by isobaric heating.

Reference Isothermal Process: Pure isothermal compression requires 460.5kJ of work, reaching a pressure of 100atm and volume of 0.01m3. The heat rejected is the same as work done and the entropy change of the system and surroundings are equal at 1545J/K. An ideal isothermal expander could get back the same energy during expansion process.

But, if adiabatic compression is employed, keeping the the same volume ratio, the compressor has to do 1327kJ of work. This work reflects in increasing both pressure and temperature to 631atm and 1607C. Since it is an adiabatic process, there is no change in entropy, so an ideal adiabatic expander would get back the same energy as work.

Let us see the associated isochoric cooling. During the cooling process, the entire 1327kJ of heat is rejected to the surroundings as expected. The entropy of air is reduced by 1545J/K, the same as that of ideal isothermal compression. But, on the other side, the entropy of surroundings got increased by 4449J/K resulting in net entropy increase of 2904J/K. Looking carefully, it took 1327kJ instead of 460.5kJ of an ideal isothermal process, giving a mere 34.6% efficiency. Since the entropy change of the air is same in both cases, the maximum work that could be extracted from this air is also the same, that is 460.5kJ.

Coming back to the expansion side. During the adiabatic stage, the air is brought back to 1atm and the volume is increased to 0.268m3 but at a temperature of -193C, also 183kJ of work could be extracted from the process. After that, the air undergoes isobaric heating and expansion taking 256kJ from the surroundings to come back to ambient condition. A part of this heat which is the same as 183kJ is used for increasing the internal energy of the air and the remaining 73kJ is used as work done. During the isobaric process, the entropy of the air got increased by the same 1545J/K and the entropy of surroundings got dropped by 858J/K giving a net increase of 685J/K. So, looking at the whole cycle, the net efficiency is 183kJ/1327kJ = 13.8%, with a net 3589J/K entropy production. This is a near impossible scenario because of the high and low temperature involved. For comparison the melting point of Steel and Iron is 1535C on the hot side, the boiling point of air is -195C on the cold side

Example 2:
Compression: Two stages of compression using volume ratio 10, two stages of isochoric cooling.
Expansion: expansion using volume ratio 10, then isochoric heating followed by another expansion using pressure ratio 10 and isobaric heating.

Here both ideal isothermal stages should have taken 230.3kJ, so the total work done is the same as that of the above example at 460.5kJ. But as adiabatic process is employed, each stage uses 378kJ, but better than the first example. Each isochoric cooling stage rejects the same 378kJ of heat, so the compression efficiency is 230.3kJ/378kJ at 61%.

After the entire compression and expansion process, the round trip efficiency is improved to 35.8%. The total entropy of the air goes through 772J/K at each stage coming back to zero. But the net entropy change of the system and surroundings together got increased by 1464J/K.

Example 3:
Like Example 2, but with 4 stages

Here, it could be seen that the total efficiency is up to 59.3% with a net 704J/K entropy production.

### What could we see from this

As the compression ratio is reduced by increasing the number of stages the difference in work done between adiabatic and isothermal processes decreases. Looking at the entropy front, the net entropy change of the system that is the air under consideration remains the same after the whole cycles, but the entropy of the surrounding increases amounting to an overall entropy increase. As the compression ratio decreases the net entropy production also decreases, correspondingly efficiency increases. That is the beauty of the greatest law of nature, the second law of thermodynamics. The entropy law governs everything.

Pure adiabatic and isothermal process do not add any net entropy, so they have no loss. Actual entropy production takes place during isochoric and iobaric heating or cooling. In these examples, when the number of stages increases, net entropy production decreases improving efficiency.

If there is some way by which the heat is retained instead of dissipating to the surroundings, the overall efficiency could be improved.

### References

1. Compressed Air Energy Storage – How viable is it?
http://canada.theoildrum.com/node/3473

2. Ideal Gases under Constant Volume, Constant Pressure, Constant Temperature, & Adiabatic Conditions
http://www.grc.nasa.gov/WWW/k-12/Numbers/Math/Mathematical_Thinking/ideal_gases_under_constant.htm

3. Wikipedia for general information on different thermodynamic processes

### Equations

As equations are generally disliked, I moved them to the bottom.

Universal Gas Law

$PV = nRT$

The Heat Capacity Ratio

$\gamma = C_p/C_v$
$C_p - C_v = R$

Adiabatic Compression

For Adiabatic Process $\delta Q = 0$ so $\delta W = \delta U$
$PV^\gamma = K_a$
$\delta T = K_a (V_f^{1-\gamma} - V_i^{1 - \gamma} / nC_v(1 - \gamma)$
$T_f$ could also be computed using Universal Gas Law
$Work\ Done = K_a (V_f^{1-\gamma} - V_i^{1 - \gamma} /(1 - \gamma) = n C_v \delta T$
$\delta S_{system} = 0$
$\delta S_{surroundings} = 0$

Isothermal Compression

For Isothermal Process $\delta U = 0$, so $\delta W = \delta Q$
$Work\ Done = P_f V_f ln\frac{P_i}{P_f}$
$\delta S_{system} = -\frac{|Work \ Done|} {T_{ambient}}$
$\delta S_{surroundings} = \frac{|Work \ Done|} {T_{ambient}}$

Isochoric Cooling

For Isochoric Process $\delta W = 0$, so $\delta U = \delta Q$
$\delta Q = n C_v \delta T$
$\delta S_{system} = -|n C_p ln\frac{T_f}{T_i} -R ln\frac{P_f}{P_i}| = -|n C_v ln\frac{T_f}{T_i}|$
$\delta S_{surroundings} = \frac{|\delta Q|} {T_{ambient}}$

Isobaric Heating

$\delta U = n C_v \delta T$
$\delta W = n R \delta T = P \delta V$
$\delta Q = n C_v \delta T + n R \delta T = n C_p \delta T$
$\delta S_{system} = n C_p ln\frac{T_f}{T_i}$
$\delta S_{surroundings} = -\frac{|\delta Q|} {T_{ambient}}$

### Feedback

Please provide your comments here. You could also reach me on Twitter