Grasshopper

algorithmic modeling for Rhino

Better optimizations in Galapagos by understanding maximum displacement, resulting force of gravity and internal elastic energy

Hello, the purpose of this post is to understand better the three basic outputs that the analyze component in Karamba mean, in order to use the right value in a Galapagos optimization.

First of all I would like to ask someone with patience, time and disposition for a definition of maximum displacement, resulting force of gravity and internal elastic energy. I know that these topics appear on the Karamba manual, however the explanation is quick and brief and I, and perhaps some others, can´t grasp completely what are they and how they work.

Secondly I would like to ask advice on how to deal the problem of minimizing the quantity of material used and keeping the structure strength in an acceptable range.

Those were my two questions. Now I  am going to explain the definition that I am working on in order to show how this relates to the problem I am trying to solve.

 I am trying to optimize a column made of plastic, which is intended to be fabricated in a 3D printer. I have created a grasshopper definition that lets me customize plenty of options (height, width, number of sides, number of divisions, type of interconnections, etc… ).

Image 1 can provide a quick look of what I am trying to do.

 I am using galapagos to fine-tune some of the values in order to achieve the best possible structure that can withstand a certain arbitrary weight (for example 100 Kg) within acceptable deformation values  and use the least possible material.

Perhaps the key values that I am letting Galapagos manipulate are the number of division in plan and section of the column.

The  problem arises  when I choose to optimize by minimizing the maximum displacement,  which is the most common case in tutorials and examples.

Galapagos naturally tends to divide the column in the maximum number of section that I allow (which is logical since it creates more beams and minimizes their lenght), image 2 provides an example of the minimum and maximum number of division that I am allowing.

This solution (empirically) seems wasteful.  I believe that the real solution to the problem (sustaining an arbitrary weight without failing and most importantly using the less possible material) must be between the two columns presented in image 2.

Thank you guys for your help and for reading such a long post.

Sincerely

Diego

Views: 1693

Attachments:

Replies to This Discussion

Hi Diego,

I am currently working on my dissertation optimization of trusses utilizing genetic algorithms.

I would be interested in discussing the topic with you.

From what you send it seams that the sections do not increase in size as you progress down self wieght is increasing.

Are using karamba to analyse the structure? if yes you can used the optimise section tool.

This is my email should you wish to discuss the topic further. sent as a message

Rgs 

Kane

Kane

Our projects seem to share a lot in common. I would be very nice to see what kind of project are you doing and exchange information.

I am going to explain very briefly my project:

I am from Venezuela. Here we suffer from a terrible housing deficit. One of the reasons for this is that there is a disproportion between the income of people and the price of building a house. Basically without the help of the government people cannot afford a decent house.

My thesis aims to reduce drastically the cost of building and also empower communities by given them the tools to manufacture on site with open source 3D printers.

I am developing columns, bearing walls and slabs made of polylactic acid (one of the most promising 3D printing materials) and doing steady progress on the parametric design of these.

However my main concern is that I feel that since I don´t understand fully the analysis that Karamba does I might be feeding the wrong input and therefor obtaining the wrong answer.

I am planing to create a post to show the Karamba community what I am doing and how I am tackling the problem. Their analysis and feedback would help me a lot. I expect to publish the information next week since this weekend I need improve the definitions in order to show them to my tutor on Monday. Also a nice and detailed post requires time to do a quality presentation and clean and document the definitions.

Again, it would be very nice to hear about your project, what are you doing, what are the main problems and how are you solving them. 

Regards

Diego

Regarding the optimize tool:

yes. At present time all beams are of a same arbitrary width (for example 6cm) inputed by me.

I agree with you that the optimize section tool could provide a more precise and efficient column. Right now I am in the process of acquiring a student license in order to have access to this tool.


Once I have the license and try the feature I would post the result.

Regards

Diego

Dear Diego,

What I am doing at present is finding ways to improve trusses by
following a similar thought process of an engineer, only automated and
enabled for parallel processing. Optimization of section will consider
stresses, limit states that define a structure as acceptable,
fabrication limitations (which in your case is very open to optimization due to
the flexibility of printed structures; change in section) and spacial considerations (defined by client)


At the same time there is the issue of MultiObjective design, that
creates tradeoff issues between different criteria such as (cost of
fabrication and weight of structure) that in traditional engineering
is replaced by engineering judgement. However I believe that
unconsciously as engineers  we are assigning values that assign
priority in the objective function of cost over weight or vice versa,
leading to a result instead of another one.

There are many variables involved typology, cross-section, spacing of
members, fabrication cost. Penalties will be assigned to direct the
algorithm to find a solution with limited different cross-sections
etc.

This study could be extended to column point layouts- which in-turn
will effect spans and also purlin layout and load distribution. There
are many other attributes that may be factored in but in reality the
only limit is processing power i.e processing time.

Hence what I hope to achieve is a flexible tool that will do the
parallel processing for the engineer to verify.

Your project interests me a lot. I dream of printed architecture, the
possibilities are endless. Karamba has a tool that examines stress
dispersal in the structure that can be used to guide a somewhat
organic structure to cater for the forces imposed, maybe if you could
define spacial limits and a minimum weight objective function for the
structural elements it might result in viable organic shaped members.
Very interesting application for that kind of technology.

Sorry for the long email... Would very much like to be updated on your progress.

Best of luck and Regards,

Kane

Hello,

interesting work you are doing with karamba. Please post some pictures if you have results :)

Is there anything left that we could clarify regarding karamba itself? I think your initial problem is caused by issues related to the optimizationi algorithm like a fitness pressure etc. 

In general you have to be very careful with Galapagos when formulating a problem, the weighting of different components of the final fitness value is very sensitive. E.g. if you use cross-section optimization (iteratively adaptive cross section dimensions for near-100% utilization), weight*displacement or weight*energy is a good indicator of the overall fitness of the structure. of course, the number of jointsalso can be incorporated like weight*displacement*noOfJoints.

let me know how i could help,

Best

Robert

Hello Kane,

I just realized you are doing similar things that I do.

What do mean with parallel processing? Karamba uses multiple cores for the main structural calculation. But do you intend to use / already use Grasshopper with a special looping technique that can be distributed? We implemented a component that evaluates a defined part of a GH-definition internally and therefore can distribute it to several cores / machines, but had some practical compatibility problems with it. Do you do something similar?

Do you also use multi-objective optimizatino algorithms in grasshopper? For my thesis topic, I implemented SPEA-2 for Grasshopper.

Maybe we could share experiences.. :)

Best

Robert

Hi Robert,

I was looking into subdivision, but the more my definition is taking shape the more I am realizing that geno type optimization becomes extremely efficient when you input some genes.(you give it a viable start point) that resemble what are the normal every day truss types, and you let it improve on the fitness on the function resulting in tilting of some members, in an effort to reduce displacement and weight (weight also limits the amount of joints) when loads aren't symmetric. 

Unfortunately my level of programming know how is limiting me at the moment, 

Yes I do use multi objective optimization but in a very crude format, the result may be optimal but the duration of a run still takes quite longer times then I wish. I read up on SPEA -2 and it seems promising, you used available sources or is it scripted by yourself.

I would be very interested in viewing your thesis, what was your thesis topic? 

What where the searches you used in it and how long they typically took to converge?

Best 

Kane

RSS

About

Translate

Search

Photos

  • Add Photos
  • View All

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service