Skip to main content

ProteusDS Solar Platform Generator

This repository contains a CLI tool, pds-solar-gen, that generates floating solar platforms for DSA's ProteusDS. The goal of this tool is to reduce the tediousness of writing ProteusDS simulation files for large floating solar platforms.

This tool generates a series of simulation files containing the specifications and parameters of individual floats, the connections between them, and/or thrusters to drive the platform. It does not generate the ProteusDS executable (.PDSi), summary (.PDSp) files, or the custom meshes for the individual floats.

This tool is designed to be used per the following workflow:

  1. Open ProteusDS and save a blank simulation
  2. Copy the "config.yaml" into the simulation folder and edit as necessary
  3. Open a command terminal or Anaconda prompt, "cd" to the current working folder, and run
    pds-solar-gen generate <n_rows> <n_cols> config.yaml .
    
  4. This will generate an array of the entered rows and columns and save the files in the current working folder
  5. Reopen the simulation executable
  6. Run the simulation to allow the array to settle
  7. When the initial simulation has completed, export the results to a new simulation
  8. In the new simulation, edit environment and simulation time parameters in the ProteusDS GUI as desired
  9. Run the new simulation

Usage

To use this tool, you must first have Conda (Anaconda or Miniconda) and Git installed on your local machine.

  1. Pip install the repository from the github repository:

    pip install "git+https://github.com/jmcvey3/pds-solar-gen.git@main#egg=pds-solar-gen"
    
  2. Run the tool with:

    pds-solar-gen generate <nrows> <ncols> <path/to/config_file.yaml> <path/to/simulation/folder>
    

Full usage instructions can be obtained using the --help flag:

>>> pds-solar-gen generate --help

Usage: pds-solar-gen generate [OPTIONS] NROWS NCOLS CONFIG_FILE OUTPUT_PATH

╭─ Arguments ─────────────────────────────────────────────────────────────────────────────────────────────╮
│ *    nrows   INT  Number of rows, i.e. rows of solar panels, to create for the platform. Dictates number│
│                   of long and small floats to use.                                                      │
│                       [default: 3]                                                                      │
│                       [required]                                                                        │
│ *    ncols   INT  Number of columns, i.e. columns of solar panels, to create for the platform. Dictates │
│                   number of main floats and solar panels, in the platform to create.                    │
│                       [default: 3]                                                                      │
│                       [required]                                                                      │
│ *    config_file   PATH  Path to the configuration file that that should be used to generate the array. │
│                              [default: config.yaml]                                                     │
│                              [required]                                                                 │
│ *    output_path   PATH  Path to the folder that the generation simulation files should be saved.       │
│                              [default: pds_sim]                                                         │
│                              [required]                                                                 │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ───────────────────────────────────────────────────────────────────────────────────────────────╮
│ --help                                                                Show this message and exit.       │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────╯

Setting Thruster Locations

There are several thruster parameters than can be edited in the yaml configuration file ("config.yaml").

  • The thruster model
  • Number of thrusters
  • Thruster location
  • Thruster angle
  • RPM setpoint

The thruster model is specified via the name and body keys. Currently the Blue Robotics T200 and T500 are programmed into the sourcecode, with the default set to use 4 BlueRobotics T200 thrusters.

To add thrusters,

  1. First set n to the total number in use.

  2. Next, pair the thruster with the float you plan to attach it to in float_pairs. The keys should be in numerical order, starting from "0", and the items are the float names, either "Small_Float#", "Main_Float#", or "Long_Float#", where "#" is the float number.

  3. To locate the thrusters in space, set the distance in cartesian coordinates (x, y, z) from the center of the float to the thruster in float_location. These are ordered in the same order as float_pairs. For a small float, setting a thruster at the edge of its shorter side is [0, -0.2, 0.16]. Note that +Z is down in ProteusDS.

  4. Set the angle you want each thruster to point towards with angle. Setting this to 90 means that the thruster is facing along the +Y axis (the row axis) in ProteusDS, directing thrust in the -Y direction.

  5. Finally, we can set the RPM setpoint. This ultimately determines the thruster speed. ProteusDS uses the thrust and torque coefficients in the thruster library file to determine speed from RPM.

Metadata

Release files for pds-solar-gen 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pds-solar-gen 0.1.2
File Size Uploaded
pds_solar_gen-0.1.2.tar.gz 16.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pds-solar-gen 0.1.2
File Interpreter ABI Platform
pds_solar_gen-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 31.3 kB

Release files / pds_solar_gen-0.1.2.tar.gz

Download URL pds_solar_gen-0.1.2.tar.gz
Size 16.6 kB
Tags Source
SHA-256 checksum
How to use checksums
18f503d19f629f12f1681f2b2dddb542127f127f858d7bc1809ef33021ad4f65
BLAKE2b-256 checksum
How to use checksums
60cc3904ae0ccf756623c885821f6f5acb5c6cd6e6ccddc001a3e9baee36f99d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.9.19

Release files / pds_solar_gen-0.1.2-py3-none-any.whl

Download URL pds_solar_gen-0.1.2-py3-none-any.whl
Size 14.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
510c8dd95794790e7f77bd925f3b00ca9a7531fe1725528afe9b591c395f243b
BLAKE2b-256 checksum
How to use checksums
1f42b97706686e30f0dd9aff70aeeac1eeb0f6c708f69afb9e18021d2ffc5318
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.9.19

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page