Jump to content

russm

Members
  • Posts

    45
  • Joined

  • Last visited

Reputation

20 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I'd been meaning to ask about this - I've assumed the scale factor is applied to the score on how badly a constraint is failed, so eg. doubling every scale factor in a case changes nothing (or perhaps makes the solver try harder to satisfy all constraints before it cares about optimising1?), and doubling one constraint makes the solver try harder to satisfy that constraint wrt all the others. Is that correct-ish? 1. yeah I get this isn't how the optimiser really works
  2. So with LVD, rather than setting events as "go until $target_state and minimise $thing", it's better to pull the error in state into the objective function and do something like "go until $time and minimise $thing + |$state - $target_state|" and let it figure out what $time works best for that?
  3. Oh, right, that's the bit I was missing. Cheers! For sure, I get this 100% - I live and work in the open source software world where volunteer time and energy is one of the limiting resources for a lot of things. I hope I'm not coming across as "this is bad, you need to do $things to make it good". Any suggestions or requests I make are offered to @Arrowstar in the absolute knowledge that they're to do with as he pleases, and if that's deciding that they're not something he wants to put any effort into then that's absolutely fine and his call to make. And where possible I try to reduce the effort required to implement any request I make, eg once I understood that the problem with duplicating events is that it requires a deep copy of the object graph and Matlab doesn't have a supported way to do that, I found a (possible) workaround. I don't know Matlab so I'm not in a position to evaluate how feasible or desirable that workaround is, so if that makes the feature easy/trivial to implement then that's good, and if @Arrowstar decides he doesn't want to do it for whatever reason then that's absolutely fine too.
  4. Ah, OK so Matlab doesn't provide a deep copy. There appears to be a workaround if you're willing to use undocumented functions. If that doesn't work in this app or you'd rather not colour outside Matlab's lines then give it a miss - doing a deep copy manually is a recipe for the functionality to break in strange ways the next time you extend one of those objects and forget to update the copier.
  5. Hey @Arrowstar, some LVD-n00b questions/suggestions/feature requests: Is it possible to import/export LVD cases to anything other than .mat, or to versions of .mat that other things can read or write? a JSON dump? Octave? (Octave errors out when trying to load an LVD case file .mat, I'm guessing it can't handle some feature used in the ones you're creating) Given the increased detail in LVD, it'd be really nice to be able to eg. import part info for vehicle specification, or copy parts of a flight from one case to another without having to click and type it all in the GUI. It would also solve my other pain points below Is there a way to find which optimisation variables are at/near their limits? The bar chart in the optimiser shows this, but I see no way to easily work out "variable Y is the event duration termination condition for event X". Is it possible to disable the automatic propagation after editing an event? When trying to find variables at their limits having to wait a few seconds after closing one event before being able to open the next is a right pain. Is there (or can there be) a "duplicate event" control? When adding a bunch of identical events like initial pitch profile ones, it'd be nice to not have to click and type through a bunch of GUI windows and make sure they're all done right instead of doing one and then just duplicating a bunch more. But yeah, LVD looks pretty good. Thanks for the cool tool! Edit: OK, scipy.io will happily read those case files, but just gives me a MatlabOpaque and a giant array of uint8 which isn't entirely helpful. I'll have a poke around and see if I can turn this into something I can work with. But if Matlab gives you an easy way to export/import the workspace data as JSON or some other portable structured form instead that'd be nice. (fwiw I wouldn't expect you to support messing around inside case files in any way, but since you don't break them from release to release I'm assuming the internal data is at least stable )
  6. Oh, sweet! Last time I used KSPTOT, LVD was only just starting to get features beyond launch. Guess it's time to learn a new tool Is MA effectively deprecated these days?
  7. presumably the right way to do this is to fix Kerbin departure on the vehicle's phase angle wrt the Mun and then have the optimised variable be the Mun's position in its orbit, but obviously that's not possible to express in MA...
  8. I've picked up KSPTOT (and KSP) again after a while away, and there's a mission plan I'm trying to do but I can't work out how to express it in MA. Any suggestions on how to do this? I'm trying to get MA to plan a Kerbin > Mun powered flybuy > Jool flight. The high-level tools (porkchop &c) give me a general Kerbin > Jool, my current problem is getting the optimiser to then find a good Kerbin departure time - this depends on a shorter timescale on the craft's position around Kerbin to get to the Mun, and on a longer timescale on the Mun's position around Kerbin to usefully help me get to Jool. I'm setting initial Kerbin departure time to the value out of Compute Departure with optimiser boundaries half a month in either direction, to try and find the best time in the Mun's orbit to do the flyby, then initially minimising distance to Jool at Sun apoapsis after a couple of next-soi coasts. But presumably the objective function has *many* local minima (finding the right point in the craft's Kerbin orbit to depart to the Mun and on to Jool throughout the month), but finding the *best* of these minima (where the Mun is optimally placed in its own orbit for this plan) isn't something I've figured out how to do. Is it even possible to get MA to deal with this? In my experimentation so far, I either get garbage plans, or occasionally the MA optimiser spends literal hours at 100% CPU without completing even a single optimisation step - I sorta assume it's just jumping between local minima and getting super confused that the objective function makes no sense at all.
  9. ah sorry, yes I had to update it with a filename that macOS would be happy with. I've updated the link in the original post, also here or magnet link (can't figure out how to make the forum accept it as clickable, should all be one item with no line-breaks): magnet:?xt=urn:btih:87b1012c30126330430d962f230531117fc8c40f&dn=KSPTOT%20LiveCD&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Fopentor.org%3A2710&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Ftracker.blackunicorn.xyz%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969
  10. The run script needs to be given the path to the Matlab/MCR install, and won't be in the user's PATH either. I'd phrase it like this: From within the directory where you unpacked KSPTOT, run "./run_KSPTrajectoryOptimizationTool.sh /usr/local/MATLAB/R2017b/" to launch KSPTOT. Otherwise those instructions look good to me.
  11. Nope, those should do it. For the install location/symlink thing, if you install MCR to the default location, this will create the required link: sudo ln -s ./MATLAB_Runtime/v93/ /usr/local/MATLAB/R2017b
  12. Possibly. Which windows are you having trouble with? What height would they need to be to be usable? It's already in there actually. MA Menu bar -> Script -> Execution Settings -> Parallelize Script Optimization It's the Edit State window for Initial State in particular - at 900px tall (minus window decorations &c) the top label is cropped but it's usable. In a VM, maximised but not fullscreen on a 900px tall display, the Set State Directly/Estimate Launch Trajectory controls are cropped out (https://imgur.com/a/vVKCZhD). At 1280x800 you can't select the departure body, and it gets worse from there on down (though supporting < 800px tall is probably not worth it anyway). I have NFI how the matlab GUI/forms interface stuff works, but if it's pretty much auto-layout in a specified window, can you just double the width of the Edit State popup and it'll reflow the content? (Edit: I mean reflow to 2 columns, just widening the existing column obvs wouldn't reduce the vertical space) (Argh, not sure how I missed the Parallelize Script Optimization menu option when I was trying the different optimizers to see if one of them could find my Eve approach. Thanks for the pointer )
  13. For any macOS users who don't know/care to do a Linux install for this, I've put together a LiveCD of Debian preconfigured for use under VirtualBox, with MCR pre-installed an a simple launcher for KSPTOT that will unpack one of @Arrowstar's distribution zipfiles (that you download from him and copy in), apply some required fixes to the files in the bundle, and then launch KSPTOT itself. Feel free to try it out and let me know if it works for you. (It should work exactly the same under VirtualBox on Windows, if anyone's feeling masochistic.) Download ksptot-20190122-092227.iso (bittorrent). This is ~1.6GB, abut the same size as the MCR installer itself. Create a VirtualBox VM with as much RAM and CPU as you can spare. Don't give it a hard disk. Set ksptot-20190122-092227.iso as the boot CD and check "Live CD/DVD" *IMPORTANT* For the VM, under Display > Screen > Graphics Controller you must change VMSVGA to VBoxVGA (I expect this to be fixed soon™) Boot the VM Under Devices > Drag and Drop, enable at least Host To Guest. Select Bidirectional if you want to save your files persistently Drag a KSPTOT distribution zipfile in to the VM desktop, it should appear below the KSPTOT icon Double-click the KSPTOT icon on the desktop (not the zipfile). It will unpack the distribution zipfile, fix what needs fixing, and launch the KSPTOT application THERE IS NO PERSISTENCE, so to keep your work just save it to the desktop and drag it out before shutting down the VM (I expect this to be fixed soon™) Every time you launch the VM you'll need to copy in the distribution zipfile, but there's no need to re-download the LiveCD when a new version of KSPTOT is released If you leave the LiveCD unattended the screenlocker will activate. To unlock the username is "user" and the password is "live" TODO: fix the vbox guest additions, this should just happen when vbox 6 graduates from Debian's "experimental" distribution in the next couple of weeks. figure out how to make VirtualBox shared folders integrate with the volume manager so saving files out of the VM doesn't require drag-n-drop ugliness. cosmetic polishing. I expect to finish this for my own use, and am happy to provide it to others for the forseeable future. @Arrowstar a couple of requests: 1. A bunch of the MA windows require a 900px tall screen to not be cropped - can these be squarified a bit so they're usable in less tall VMs? 2. Any chance of getting MA to use parallel workers like LVD when optimising?
  14. Ah, yeah, there's no point in baking KSPTOT itself into the livecd that would be *HUGE*. I was thinking of a CD with debian/MCR and a .desktop startup script that unpacks a (separately downloaded) KSPTOT zipfile and sets everything up correctly. I'll chuck something together to demo and if anybody likes it then so much the better.
×
×
  • Create New...