Please feel free to contact me if you have questions, recommendations, you have found errors, etc.
I would be also glad to receive information, concerning the applications you found for my programs, your opinion of the programs and reflection of the overall process of using them. This information is useful for me, so I could improve the programs and make them better for you and for the others.
andrey.popov@gmx.net
Licenses
Some of the provided on this page documents and software are distributed under an IEEE, GPL or BSD license. In order to download them you will need to agree with the corresponding license conditions. You can either do this now, or you will be prompted to do so when trying to access the corresponding document.
Documents
All of the following documents published in IEEE journal or conference proceedings are subject to the following copyrights
All programs and documents are free to use (out of charge) for personal and academical purposes.
The programs and documents could not be used for commercial purpose
without additionally granted permission;
The source and the author should be acknowledged and given as reference (standard citation for papers; web-page http://automatics.hit.bg stated for on-line materials). NO WARRANTY - there is no warranty for the programs. The programs are provided "AS IS" without warranty of any kind. The entire risk as to the quality and performance of the program is with you. Should a program prove defective, You assume the cost of all necessary servicing, repair or correction.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Copyright (c) 2011, Andrey Popov
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
thesis
Design of Distributed and Fixed-Structure Controllers for Cooperative Vehicle Control
Cooperating autonomous vehicles (agents), controlled in a decentralized manner and communicating with each other, offer increased system reliability and flexibility as opposed to a single agent or a centralized control scheme. This work deals with the problems of stability analysis and controller synthesis for multi-agent systems with a changing number of agents, switching communication topology, time-varying communication delays and restrictions on the controller structure. Robust and nominal performance synthesis problems are formulated, solved and systematically applied to the cooperative vehicle control.
@phdthesis{Popov12,
title = {Design of Distributed and Fixed-Structure Controllers for Cooperative Vehicle Control},
author = {Andrey Popov},
school = {Hamburg Univerity of Technology},
year = {2012},
isbn = {978-3843907866},
abstract = {Cooperating autonomous vehicles (agents), controlled in a decentralized manner and communicating with each other, offer increased system reliability and flexibility as opposed to a single agent or a centralized control scheme. This work deals with the problems of stability analysis and controller synthesis for multi-agent systems with a changing number of agents, switching communication topology, time-varying communication delays and restrictions on the controller structure. Robust and nominal performance synthesis problems are formulated, solved and systematically applied to the cooperative vehicle control.},
}
This technical note considers formation control of a group of identical agents that can communicate with each other. A necessary and sufficient condition for robust stability in the case of arbitrary time-invariant communication topologies and sufficient conditions in the case of arbitrary time-varying topology and communication delays are derived, that reduce the stability analysis and controller design problems to analysis or synthesis, respectively, for a single agent.
@article{PopovWerner12,
author = {Andrey Popov and Herbert Werner},
title = {Robust Stability of a Multi-Agent System Under Arbitrary and Time-Varying Communication Topologies and Communication Delays},
journal = {IEEE Transactions on Automatic Control},
year = {2012},
month = {Sept.},
volume = {57},
number = {9},
pages = {2343--2347},
ISSN = {0018-9286},
doi = {10.1109/TAC.2012.2186094},
}
This paper extends an information flow filter approach to cooperative vehicle control that has been previously proposed to guarantee stability of a vehicle formation under arbitrary communication topologies. A systematic design technique for this information flow filter is the main contribution of this work. For this purpose an alternative interpretation of a separation theorem that allows the independent design of the information flow filter and the controllers for the vehicles is presented. The advantages of this approach are illustrated in simulation studies.
@inproceedings{PilzPopovWerner11,
author = {Ulf Pilz and Andrey Popov and Herbert Werner},
title = {An Information Flow Filter Approach to Cooperative Vehicle Control},
booktitle = {Proceedings of the 18th IFAC World Congress},
location = {Milano, Italy},
year = {2011}
pages = {7432--7437},
doi = {10.3182/20110828-6-IT-1002.01102}, }
This article presents an identification technique for distributed systems with identical units using linear recurrent neural networks and exploiting the replicated structure of the units inside the system. The proposed method is applicable both to open-loop and closed-loop identification, takes into consideration boundary conditions and available information about the structure of the system, and is capable of identifying systems with heterogeneous units. The approach provides parameters estimate with minimum bias for unstable plant models when there is additive colored noise in the data. The method is described for two-dimensional systems (one for time and one for space), but is equally applicable to systems having more dimensions in space. The effectiveness of the method is demonstrated by two examples.
@inproceedings{PilzPopovWerner09,
author = {Mukhtar Ali and Andrey Popov and Herbert Werner and Hossam Abbas},
title = {Identification of Distributed Systems with Identical Subsystems},
booktitle = {Proceedings of the 18th IFAC World Congress},
location = {Milano, Italy},
year = {2011}
pages = {5633--5638},
doi = {10.3182/20110828-6-IT-1002.02543}, }
Several recent design techniques address the problem of distributed controller synthesis for multi-agent systems (MAS). However, since these methods use a decomposition based approach to reduce the complexity of the MAS, they cannot provide a guarantee of performance with the designed controller, and furthermore lead to conservative designs due to the Lyapunov shaping paradigm. This paper proposes a direct optimization gradient-based synthesis technique for a MAS with fixed communication topology, exploiting the fact that the same controller is replicated on each agent. Although this results in a non-convex design problem, an appropriate initialization step makes the synthesis efficient and helps to obtain controllers with guaranteed performance on the MAS.
@inproceedings{PopovWerner10,
author = {Andrey Popov and Herbert Werner},
title = {${H}_\infty$ Controller Design for a Multi-Agent System Based on a Replicated Control Structure},
booktitle = {Procedings of the American Control Conference},
location = {Baltimore, MD, USA},
year = {2010}
pages = {2332--2337}, }
This paper presents an extension of the HIFOO toolbox for Matlab for fixed-structure and fixed-order H∞ controller design to discrete-time controller design. The approach is applied to a restricted complexity controller synthesis problem for an active suspension system.
@inproceedings{PopovWernerMillstone10,
author = {Andrey Popov and Herbert Werner and Marc Millstone},
title = {Fixed-structure discrete-time ${H}_\infty$ controller synthesis with HIFOO},
booktitle = {Procedings of the 49th IEEE Conference on Decision and Control},
location = {Atlanta, GA, USA},
year = {2010}
pages = {3152--3155},
doi = {10.1109/CDC.2010.5717673},
}
A novel Trimmable Horizontal Stabilizer Actuator (THSA) design of an aircraft, developed by the Institute of Aircraft Systems Engineering at Hamburg University of Technology, distinguishes itself from conventional THSA systems by its two-load-path structure that allows for higher reliability and easier maintenance. This article presents a case study of an application of four optimal H∞ controller synthesis methods (mixed sensitivity, four-block design, loop shaping and mixed-sensitivity II) to the THSA control problem. The designed controllers are then experimentally tested on the THSA test rig and the design techniques are compared with respect to the performance of their controllers and the ease of their implementation.
@inproceedings{YuPePopovWernerThielecke10,
author = {Huang Yu and Timo Pe and Andrey Popov and Herbert Werner and Frank Thielecke},
title = {Control of a two-load-path Trimmable Horizontal Stabilizer Actuator of an aircraft — Comparison of ${H}_\infty$ design approaches},
booktitle = {Procedings of the 49th IEEE Conference on Decision and Control},
location = {Atlanta, GA, USA},
year = {2010}
pages = {4863--4868},
doi = {10.1109/CDC.2010.5716948},
}
In this paper we present an application of a recently developed strategy for robust distributed controller design for formations and show a way of including performance requirements in the design. The proposed synthesis method guarantees stability for all possible formations and arbitrary fast changes in the communication topology. The number of agents in the formation can also be chosen arbitrarily. We illustrate the results by performing a simulation of a formation flight of quad-rotor helicopters.
@inproceedings{PilzPopovWerner09,
author = {Ulf Pilz and Andrey Popov and Herbert Werner},
title = {Robust Controller Design for Formation Flight of Quad-Rotor Helicopters},
booktitle = {Procedings of the Joint 48th {IEEE} Conference on Decision and Control and Chinese Control Conference},
location = {Shanghai, China},
year = {2009},
pages = {8322--8327},
doi = {10.1109/CDC.2009.5400593}, }
This paper considers formation control for multi-agent systems (vehicles, robots, satellites, etc.) and is based on the work of Fax and Murray, which provides a link between graph theory and the formation control problem for a given communication topology. We propose a distributed controller H∞ and μ synthesis techniques that can guarantee the stability of the multi-agent system for any number of agents and any communication topology. Two examples illustrate the proposed method.
@inproceedings{PopovWerner09,
author = {Andrey Popov and Herbert Werner},
title = {A Robust Control Approach to Formation Control},
booktitle = {Procedings of the European Control Conference},
location = {Budapest, Hungary},
year = {2009},
pages = {4428--4433}, }
Dynamic speed limits can be used to eliminate shockwaves on freeways. Shockwaves are typically short traffic jams that emerge at bottlenecks and travel in the upstream direction on the freeway. These shockwaves lead to increased travel times and possibly to unsafe situations. A speed limit control approach to resolving shockwaves was developed based on a distributed controller design technique. The controller is distributed in the sense that each speed limit sign has its own controller. The controller parameters are optimized by numerical optimization, assuming that the controller structure and parameters are the same for each controller. The resulting performances are compared for several designs, differing in the controller order and the extent that the upstream and downstream traffic states are used as inputs for the controller. Other controllers known from the literature are based on switching schemes using local information only or are centralized model-based controllers with high computational loads. The proposed method gives a systematic way to design distributed controllers using the appropriate amount of upstream and downstream traffic information. The resulting controllers are attractive from the implementation point of view because they are very efficient. They do not require extensive online computations and use only information from the neighborhood. For the design scenario used, the controller successfully resolved the shockwave and reduced the total time spent by approximately 20% compared with the uncontrolled case, which is comparable to the performance of the best controllers known from the literature.
@article{PopovHegyiBabuskaWerner08a,
author = {Andrey Popov and Andreas Hegyi and Robert Babu\v{s}ka and Herbert Werner},
title = {Distributed Controller Design Approach to Dynamic Speed Limit Control Against Shockwaves on Freeways},
journal = {Journal of the Transportation Research Board},
year = {2008},
volume = {2086},
pages = {93--99},
doi = {10.3141/2086-11}, }
Shock waves are special types of relatively short traffic jams that propagate opposite to the driving direction. These jams increase travel time, air pollution, and negatively impact safety. One way of dealing with shock waves is to impose dynamic speed limits to eliminate them. Control strategies proposed so far are based either on expert knowledge, or are centralized controllers with high computational demand, such as model predictive control. In this paper, we design decentralized feedback controllers with a fixed structure. For the purpose of design, we use a direct optimization technique capable of dealing with the design objectives and the non-linear character of the system. The advantages of using such simple controllers are that they do not require extensive on-line computations, use only local information and are therefore more attractive from the implementation point of view. We show that a simple, static control law achieves performance similar to previous results with centralized control for the considered scenario. The controller successfully resolves the shock wave and reduces the total time spent by 20%, compared to the uncontrolled case.
@inproceedings{PopovBabuskaHegyiWerner08,
author = {Andrey Popov and Robert Babu\v{s}ka and Andreas Hegyi and Herbert Werner},
title = {Distributed Controller Design for Dynamic Speed Limit Control Against Shock Waves on Freeways},
booktitle = {Proceedings of the 17th IFAC World Congress},
year = {2008},
month = {July},
address = {Seoul, South Korea},
pages = {14060-14065},
doi = {10.3182/20080706-5-KR-1001.02380}, }
@manual{Popov07a,
author = {Andrey Popov},
title = {minBool manual - Minimization of Boolean function by the Quine-McCluskey method},
year = {2007},
url = {http://www.p0p0v.com/science/}, }
This paper considers a hybrid evolutionary-algebraic approach to the non-convex problem of designing low-order H∞ optimal controllers. It is shown that using the closed-loop H∞ norm as fitness measure in a population-based, evolutionary search does not require the computation of the H∞ norm for each controller of the population. Instead, the fact that evolutionary algorithms assign fitness measures to individuals based on a ranking is exploited and a bisection approach is proposed that allows to trade accuracy that is not needed against computational efficiency without loosing information. Three design examples are used to illustrate the improvement in computational speed achieved with the proposed method.
@inproceedings{PopovWerner06,
author = {Andrey Popov and Herbert Werner},
title = {Efficient Design of Low-Order ${H}_\infty$ Optimal Controllers Using Evolutionary Algorithms and a Bisection Approach},
booktitle = {Proceedings of the joined {IEEE} Conference on Computer Aided Control System Design, International Conference on Control Applications and the {IEEE} International Symposium on Intelligent Control},
address = {Munich, Germany},
year = {2006},
pages = {760--765},
doi = {10.1109/CACSD-CCA-ISIC.2006.4776741}, }
@mastersthesis{Popov06,
author = {Andrey Popov},
title = {Hybrid Evolutionary-Algebraic Techniques for Controller Design - Algorithms and MATLAB tools},
school = {Hamburg University of Technology, Institute of Control Systems},
year = {2006}, }
paper
Tuning of a PID controller Using a Multi-objective Optimization Technique Applied to A Neutralization Plant
Chemical plant, multi-objective evolutionary algorithms
A. Popov, A. Farag & H. Werner; CDC & ECC; Seveille, Spain; 2005
Most control engineering problems are characterized by several, often contradicting, objectives, which have to be satisfied simultaneously. Two widely used methods for finding the optimal solution to such problems are aggregating to a single criterion, and using Pareto-optimal solutions. Here we propose a Genetic Algorithm (GA) approach using a combination of both methods to find a fixed-gain, discrete-time PID controller for a chemical neutralization plant. Known to be highly non-linear and with varying time delay, this plant provides a challenging testbed for nonlinear control strategies. Experimental results confirm that a multi-objective, Pareto-based GA search gives a better performance than a single objective GA. The former method was also used to design a gain-scheduled PID controller, for which also experimental results are shown.
@inproceedings{PopovFaragWerner05,
author = {Andrey Popov and Adel Farag and Herbert Werner},
title = {Tuning of a {PID} controller Using a Multi-objective Optimization Technique Applied to A Neutralization Plant},
booktitle = {Proceedings of the joined 44th {IEEE} Conference on Decision and Control and European Control Conference},
year = {2005},
pages = {7139 - 7143},
address = {Seville, Spain},
doi = {10.1109/CDC.2005.1583312},}
@manual{Popov05a,
author = {Andrey Popov},
title = {Genetic Algorithms for Optimization", User Manual for the GAmin toolbox for Genetic Algorithms Optimization for MATLAB},
school = {Technical University - Sofia, faculty "Automatics", dept. "Systems and Control"},
url = {http://www.p0p0v.com/science/},
year = {2005}, }
@techreport{Popov05,
author = {Andrey Popov},
title = {Less Conservative Mixed ${H}_2/{H}_\infty$ Controller Design Using Multi-objective Optimization},
institution = {Hamburg University of Technology, Institute of Control Systems},
year = {2005},
number = {2005.15}, }
Genetic algorithms (GAs) are a stochastic, non-derivative optimization method. They use populations of acceptable solutions (genes) of the given problem, which evolve toward optimum. The paper introduces GAs as a method for the synthesis of the activation function of flip-flops in finite state machines. The genes in standard GAs are Boolean vectors. When JK and RS flip-flops are used in the synthesis of finite state machines, there are undefined variables in the activation signals. When the finite state machine is of high order, the Quine-McClusky method is used, which requires exact values of the variables. At this stage, the GAs are used to find the optimal set of variables, in terms of simplifying the description.
@article{DonchevPhilipovaPopov03,
author = {Blagomir Donchev and Krasimira Philipova and Andrey Popov},
title = {Design of {CAN} controller by {P}etri nets technique},
journal = {Electronics},
year = {2003},
volume = {7},
number = {4},
pages = {119--123},
note = {YU ISSN 1450-5843, Republic of Srpska, Bosnia and Herzegovina}, }
manual
Генетични алгоритми за оптимизация - ръководство на потребителя за GAmin toolbox за MATLAB
@manual{Popov03a,
author = {Андрей Попов},
title = {Генетични алгоритми за оптимизация - ръководство на потребителя за GAmin toolbox за MATLAB},
school = {Технически Университет - София, факултет "Автоматика", катедра "Системи и Управление"},
url = {http://www.p0p0v.com/science/},
year = {2003}, }
@manual{Popov03a,
author = {Andrey Popov},
title = {Genetic Algorithms for Optimization - User Manual for the GAmin toolbox for Genetic Algorithms Optimization for MATLAB},
school = {Technical University - Sofia, faculty "Automatics", department "Systems and Control"},
url = {http://www.p0p0v.com/science/},
year = {2003}, }
@mastersthesis{Popov03,
author = {Андрей Попов},
title = {Генетични алгоритми за оптимизация - приложение в задачата за синтез на регулатор},
school = {Технически Университет - София, факултет "Автоматика", катедра "Системи и Управление"},
year = {2003},}
@mastersthesis{Popov03,
author = {Andrey Popov},
title = {Genetic Algorithms for Optimization - Application in the regulator synthesis task},
school = {Technical University - Sofia, faculty "Automatics", department "Systems and Control"},
year = {2003},}
The last stage in the design of intelligent systems is the minimization of its functional description. This paper compares two of the well known methods for minimization of Boolean functions and proposes software solution, based on them. The comparison analysis continues with the synthesis stage, which is done in the MATLAB software environment and uses different building blocks.
@inproceedings{MihailovPopovFilipovaKasev02,
author = {Stefan Mihailov and Andrey Popov and Krasimira Filipova and Nikolai Kasev},
title = {Comparative Analysis of Boolean Function's Minimization in Terms of Simplifying the Synthesis},
booktitle = {Proceedings of the First International Congress of Mechanical and Electrical Engineering and Technologies, MARIND},
address = {Varna, Bulgaria},
year = {2002},
pages = {273--276},
note = {ISBN 954-20-0215-7}, }
(The differences between Genetic Algorithms and Evolutionary Algorithms are mainly on historical base. Nowadays the two terms are mainly used as interchangeable ones)
This Single- and Multi-objective Genetic Algorithm toolbox for Matlab was developed as part from my Bachelors Thesis. Since then I'm able to work on it only in my free time. If you find bugs or you have recommendations they are welcomed. Any other kind of contribution (additional functions, modules, etc.) will be appreciated as well.
The programs were created for Matlab ver. 6.
The advantages of the Genetic Algorithm Optimization toolbox GAmin are:
Single objective optimization (functions GAminBC and GAminSC)
Multi-objective Optimization (GAMOminBC and GAMOminSC functions). This optimization is Pareto based
Ability to perform blending (intermediate) and scattered (conventional) crossover (marked correspondingly as BC and SC
Ability to encode floating point, integer and/or Boolean variables. The toolbox allows the genes to be a combination of the above. In case of floating point one can also define the precision of each variable
Intermediate results and visualization as well as final plots and display, at the end of the optimization run
User defined search space (boundaries for the variables)
By using the Matlab environment, the toolbox allows combination with the large variety of other toolboxes offered by Matlab, Simulink and third parties
Easy to write additional functions or exchange existing ones
Detailed user manual as well as help to each function
10 predefined optimization options. Possibility to easy define and save new options
More detailed information about Genetic Algorithms and the provided here functions can be obtained by the user manual.
Manual-Bulgarian (PDF)
(N.B. The user manuals are typesetted with font 13, thus they can be printed in 2 pages per sheet, double sided and than folded as a book)
GAmin-Advanced (ZIP) Each function used in the genetic algorithms is in a separate file. This way it is easier for "Advanced" users to modify the functions and thus affect all of the genetic algorithms
GAmin-Basic (ZIP) The functions for each of the 4 genetic algorithms are included inside the file with the algorithm and thus make it easier and faster to use
GAmin-Demo (ZIP) Demonstration of the programs (you need to have some of the packages above to run it)
GAmin-Examples (ZIP) Functions and Programs used in the User Manual and Thesis work
HIFOOd represents a modification of HIFOO capable of H∞ synthesis for discrete-time systems, directly in discrete-time domain (i.e., without using a bilinear transformation).
HIFOO is a toolbox for gradient-based H∞ synthesis of controllers of fixed-order or/and fixed-structure. More information about HIFOO, as well as download of the HIFOO toolbox (distributed under GPL) is available at http://www.cs.nyu.edu/overton/software/hifoo/
>> opt = combineOpt(userOpt, defaultOpt)
Combines the elements of 2 Matlab/Octave structures, whereas the elements of userOpt are overwriting the elements of defaultOpt. Thus the function is well suited for option's structures: the all the specified by the user options are used, and the rest are set to the default values given in defaultOpt.
The FormAtion Simulation Tool - FAST - is a tool for Matlab primarily developed in [Ro09a] for the purpose of performing realistic simulations of multi-agent systems. FAST allows simulating linear and non-linear discrete-time agents, that communicate with each other. The communication links can be additionally subject to time-delays, range restrictions and obstacles. FAST is developed and tested under Matlab 2009a.
As by now, Feb 2010, FAST provides the following functionality.
Simulation of MAS with discrete-time dynamics.
Linear and non-linear agent dynamics (the non-linear will require manually specifying the dynamics).
Adding/Removing agents during the simulation - requires pre-specifying the time of change and the agents to be added/removed.
Changing the communication topology during the simulation - requires pre-specifying the time of change and the new topology.
Defining communication obstacles with ball or parallelogram shape.
Fixed communication delays with or without delayed own outputs of the agents.
Specifying communication range, i.e., distance dependent communication.
Graphical User Interface (GUI) for easy control and visualization.
Path tools provides 2 easy functions to manage your toolboxes/folders.
needs: allows adding and removing toolboxes to the Matlab path. goto: allows changing the current folder to a specified toolbox.
The toolboxes are specified by name, identifier and path in defTBX.m file. Optional 'info' field provides overview, when evoking needs() or goto()
needs('TBX1','TBX2','-TBX3') adds 'TBX1' and 'TBX2' to the Matlab path and removes 'TBX3' from the path (if there).
Alternatively use needs TBX1 TBX2 -TBX3 or needs(n1,n2,-n3) where n1 is the identifier of toolbox TBX1, etc.
needs(100:120) loads all toolboxes with identifiers from 100 to 120.
goto('TBX1') changes the current folder to the one of toolbox TBX1. Altrnatively use goto TBX1 or goto n1
extracthelp extracts the help lines of all .M files in the current folder and writes them in files (with corresponding names) in a sub-folder 'phelp'.
The function is very useful in combination with the 'pcode'. Whereas pcode creates a pre-parsed .P files, that can be distributed to users, that shouldn't have access to the original code, the .P files do not preserve the help information of the functions. The 'extracthelp' function does exactly this.
extracthelp % creates the .\phelp folder and the help files for all files in the current folder pcode *.m % convert all .M files to .P files movefile('*.p','.\phelp') % moves the .P files to the phelp folder, which now contains files you safely distribute
Creating LaTeX documents can be done with any text editor, but the specialized LaTeX editors ease the process a lot. Maybe the best one I have come so far is LEd, which includes preview of the DVI file, hints for the LaTeX functions and auto-completion, to name a few.
While working on your thesis work, article or book (with LaTeX) you will probably need to cite many references. Good way to keep track of them when working with LaTeX is by using BiBTeX. JabRef is a great tool, helping you keep track and organize the references.
Many scientists use LaTeX as a document typesetting software, because of the good quality of output PDF files, relative easiness to write complicated formulas and of course - freeware. Preparing a presentation with LaTeX can significantly reduce the preparation time (no need to rewrite formulas, equations, etc.). A Detailed list of different LaTeX packages for presentations is available at the link below.
At the moment I am using the beamer package, because of the many options and styles it offers.
Even before I added this entry to my website many people were ending here, while searching for a way to write LaTeX documents in Bulgarian language. So I decided that I could at least offer some help. The following file bgtex.tex contains an example with the packages that work for me. As a first step make sure you can compile the file. If you use MikTeX it should offer to download any missing package. More information about LaTeX in general and Bulgarian language can be found at
A very nice PDF viewer, that besides all standard viewing and printing options allows commenting and drawing in existing PDF files and saving the resulting PDF file.
A good and high quality way to produce quality PDF files is using LaTeX. However, when one has already documents in other formats a fast and easy way to convert them to PDF is using using pdfConvertor
If you are unsatisfied with MS Office or just want a freeware product for your personal needs a program to be tried is OpenOffice. The Writer and Calc tools offer similar functionality as the MS Office programs, but to my experience are better in the fine adjustments of the page layout. The presentation tool lacks only some of the animation possibilities of PowerPoint. In 2010 the project has split in two: OpenOffice and LibreOffice. Which one will turn out to be the better only the time will show.
Sometimes one needs to run some lenghty computations. In those cases I found a good idea to start a computation and set the computer to shut down automatically after several hours (enough to finish the computation). Don't forget to save your results!