bentlybobcat wrote: ↑Tue Aug 23, 2022 8:22 am
To be brutally honest, buoyancy management on an ROV is a real challenge.
Trying to get a process to do it all for you in one fell swoop is going to be problematic if even possible.
ROV designers have extensive spreadsheets with all the various bits and bob and their weights, buoyancy, CB, CG, etc that they use to calculate the overall system configuration.
And then, typically, they will add 150 pounds of lead ballast to the system, as this whole process is a bit sketchy. In the field the operators will use the lead to trim the system and what you want at the end of the day is for the system to be very slightly positively buoyant.
Couple of reasons for this,
1) In the event of a dead sub, it floats to the surface and you can find and recover it. DAMHIKT.....
2) You want to be trusting down toward the bottom as opposed to up to the surface. Downthrust, when near the bottom stirs up the schmutz on the bottom and obscures visibility.
So, use my process to get the characteristics of the large assemblies, and then build your spread sheet.
I've worked in the ROV industry virtually my entire career. In 1997 I introduced solid modeling to the ROV industry at Offshore Intervention in New Orleans.
BTDT....
Yeah, I know it is complicated... My ROV is very small and light (I expect around ~5kg when finished, disregarding tether), so I won't need that much ballast
![Very Happy :D](./images/smilies/icon_e_biggrin.gif)
But the idea is the same. I try to err on the buoyant side so I can then compensate with lead until the thing is slightly neutrally buoyant. But I still want to minimize the amount of lead required.
By the way, off-topic question since you worked with ROVs for so long - I wonder how do you deal with water density gradient in different depths? Water is almost incompressible (and so is the ROV - hopefully!), but there is a slight difference. And the water temperature also changes deeper down, which affects density as well. Also I read that water salinity sometimes might change depending on depth as well. All these small factors combined could affect the buoyancy of the ROV. How do you account for these factors, and do you trim the ROVs buoyancy at the surface, or for the intended exploration depth?
Frederick_Law wrote: ↑Tue Aug 23, 2022 8:29 am
"So we're back to square one - unless I misunderstood what you guys are suggesting. I hope this additional explanation shows that I understand how buoyancy works, you don't need to explain that, I am just asking for suggestions how to implement this calculation in SW in a convenient, automated and rebuild-friendly way."
I say you don't need inside volume. Just outside volume.
Again, solid 1" cube vs hollow 1" cube. what volume of water do they displace?
Yes, mass is different.
You're way over thinking this.
Go take a bath in a bath tub.
With ice water.
Frederic, please read my previous post again. I KNOW that solid/hollow cube displaces the same amount. But SW doesn't know this, and if my 1" cube is hollow, it will not report it's volume as 1"^3, it will report as 0.1"^3. If there is some stuff inside the cube, it might report it something like 0.4"^3. But I need it to report it as 1"^3, and for that the rest of the space inside the cube needs to be filled with something that SW considers volumetric. I need SW to calculate this because my ROV is not just cube-shaped (which would be easy to calculate volume for manually), but has complex geometry. I am not sure my how many other ways I can explain this. I am sorry but you are under-thinking this.
AlexLachance wrote: ↑Tue Aug 23, 2022 8:30 am
It isn't really that big of a deal, it is something that SolidWorks already calculates in the background, wether you ask it to or not. The property is just something to call it out. You won't notice a difference IMO.
I draw trailers and we generate a BOM with over 40 custom properties on all components called out and extracted to our ERP. Obviously we didn't have that many when we started on SolidWorks but as time went by we added more and more and there never was an increase in rebuild time because of 'properties' being added to a document.
If you don't call out your weight in your document properties, are your documents weightless? Do they rebuild faster? The answer to both questions is no.
Heck, as someone stated, you could just pull-out a BOM as a spreadsheet and then do a quick equation from there to get your desired calculations. It wouldn't be that hard and wouldn't take that long to do(and re-do). Hardest part is being so far into the project and now just thinking about this and having to implement the volume in all your components properties.
Okay, following this idea, I think I came up with a solution that doesn't cause circular references and rebuilds quite fast. I did it without custom properties, but the idea is the same. Basically it works like this:
The Electronics Housing assembly has a virtual component called Volume. It references the geometry of the outside surfaces of that cylinder to re-create a fully solid shape of this compartment. This virtual component has an equation, Volume = "SW-Volume":
The Electronics Housing assembly has two equations - True Volume, which references the value of that previous equation, and Measured Volume, which uses SW-Volume for the whole Electronics Housing assembly. Measured Volume is, of course, incorrect here, because it includes all the little electronic components:
Now, the Electronics Housing assembly is inside another assembly called Top Assembly. This assembly also has an equation called Volume, which measures the total volume of this assembly, subtracts the Measured Volume of the Electronics Housing, and adds the True Volume of the Electronics Housing.
In other words, it replaces the volume SW measured with the volume of that virtual component.
There are other similar assemblies like Top Assembly, called Side Assembly, Lower Assembly, etc. They all have their own equations that measure volume, but since most of them don't have any air/vacuum gaps, these equations are simply Volume = "SW-Volume".
And now finally, at the top-level assembly (ROV v2.SLDASM), the values of each of these assemblies is added up, Total Volume = Volume@Side assembly * 2 + Volume@Topassembly + Volume@Lower assembly.
For convenience, there are two more equations - Total Mass, which just measures the mass of the entire ROV, and Buoyancy, which subtracts that Total Mass from the Total Volume, providing a displacement/mass differential. If it is positive, ROV ascends, if negative - it sinks.
Now, the reason why the Electronics Housing volume was calculated in such a complicated way, is so that I can add/remove new components to anywhere in this assembly, and the whole setup still works.
The downside is that I can't easily add new sub-assemblies to the top-level assembly - I need to remember to modify that Total Volume equation and add the volumes of these new sub-assemblies. That kind of limits the practical number of sub-assemblies in the top-level assembly. Then again, I do like to keep my assemblies small, and rather have more levels of sub-assemblies than one big assembly.
Also, re-organizing the project assemblies structure might get a bit confusing, as these equations might need to be modified. But for normal modelling, it is rather convenient. I am not aware of any way to suppress all these equations at once (except for a macro, which I'm too lazy to write), but the rebuild time for the top-level assembly is still decent (around 1.5 seconds on my machine), so maybe suppression is not needed.
Sometimes these equations get stuck a bit when opening the assembly for the first time (probably a SW bug), but doing a few forced rebuilds seems to fix it.
Attaching the whole project Pack&Go if anyone wants to take a look at how I set this up. Saved with SW 2021:
https://ufile.io/1vpcg1i6
So we can consider this question answered
![Smile :)](./images/smilies/icon_e_smile.gif)
This solution is nowhere near as convenient as simulating air/vacuum with Cavity feature, but it rebuilds a whole lot faster. Thanks a lot to Alex and everyone else who helped me figure this out. bentlybobcat, what do you think of this?
One more question while still on topic: what would be the easiest way to figure out the coordinates of the center of volume of this assembly? Basically it's like center of mass, but disregarding the different densities of different parts. The only way I am aware of is saving the whole assembly as a part which has just one material applied, and then checking it's center of mass - that will be the center of volume . However, saving assembly as part does not have a parametric link, and it takes quite a long time. Is there a more convenient way to get that center of volume?