Evolutionary System Design Converger The Evolutionary System Design Converger (ESDC) is a holistic spacecraft mission and system design tool aimed at accelerating Phase 0/A studies by leveraging heuristics and evolutionary algorithms. This tool automates the complex process of spacecraft design, addressing the large set of initial unknowns and intricate system interdependencies inherent to this task to achieve optimal S/C design.
Welcome to the installation guide for ESDC. This document will help you set up and run the software on your machine.
Before you begin, ensure you have met the following requirements:
- You have a Windows, macOS or Linux machine.
- You have a working internet connection.
- You have installed GNU Octave version 8.2. or above.
- You have installed the relevant IO package for GNU Octave.
- You have installed Java Runtime Environment on your system to use .jar files.
If you haven't already, install GNU Octave by following the instructions on the GNU Octave website.
Open GNU Octave and run the following command to install the IO package GNU Octave package install:
pkg install -forge io
To parse an XML file using the xmlread function, you need to add the Xerces Java library to your java_path. Octave does not ship with a Xerces library, so you must download and add the required .jar files.
from Xerces. For example use Xerces2 Java 2.12.2. The relevant .jar files are 'xercesImpl.jar' and 'xml-apis.jar'
Follow these steps to install [Your Software Name]:
Clone the repository to your local machine using Git:
git clone https://github.com/aerospaceresearch/ESDC.git
Or simply visit the ESDC GitHub repository.
The following steps are necessary for preparing GNU Octave to run the ESDC software.
Always load the IO package before using the software by running:
pkg load io
Add the downloaded `.jar` files to your Java path in Octave:
Replace /path/to/xerces-2_11_0/ with the actual path to the downloaded .jar files on your system.
On a UNIX System
javaaddpath("/path/to/xerces-2_11_0/xercesImpl.jar");
javaaddpath("/path/to/xerces-2_11_0/xml-apis.jar");
On a Windows System
javaaddpath("C:\\path\\to\\xerces-2_11_0\\xercesImpl.jar");
javaaddpath("C:\\path\\to\\xerces-2_11_0\\xml-apis.jar");
Use double backslashes (\) to escape them properly in this syntax.
If you use UNIX notation you will get the following error
error: javaaddpath: CLSPATH does not exist
If you get the following error
error: unable to find Java Runtime Environment
install JRE on your system.
Once you installed JRE on a Windows machine do add it to the environment variables:
C:\Program Files\Java\jre1.8.0_431\bin
Automate this by adding the respective commands to your .octave.rc
Launch the ESDC software by running in the repository root folder:
octave ESDC.m
The software will automatically use inputs provided within the files Input/ESDC_Input.xml
and Input/ESDC_Simulation_parameters.xml
. Adapt these accordingly.
The following extensions make development in VS Code effective and convenient:
- Octave Debugger
- Octave Language
MIT License
Copyright (c) 2024 AerospaceResearch
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.