I am trying to make a model which optimises the cross section for a steel portal frame. I have set up the optimisation in a linear way (i.e. it optimises rafters then columns and so on until the final model is made since I have different cross section lists I want each element group to use after each cross section optimiser I have an analyse model component). I have a few questions about how to analyse the results and any help and ideas would be greatly appreciated!
I am not experiencing any warning regarding the utilisation limits not being met but when I look at BeamView I am getting utilisations greater than 100% when I input all the load combinations - is this because of the linear method in which I am optimising? If so, how would you recommend overcoming this issue? - I was thinking of using a loop but not sure how to set this up.
Are the results from inputting the complete set of load combination rules into the ModelView and then inputting into the BeamView that it outputs the worst case results?
Is there a way to find the most critical load combination for the structure? I was thinking of using LCInd in the utilisation component but it is giving all zeros, is this because it does not consider load combinations? Otherwise, I was going to find the worst utilisation for each element group using the util output and find it manually.
Are the deflection limits inputted into the optimiser global deflections Do the beam deflections need to be looked at separately to the optimisation (i.e. use beam displacements to get the midspan deflection for the different elements)?
You can actually optimise the cross sections for your model in the same process, if you organise your cross sections properly - only cross sections within the same family will be used for the optimisation procedure, so for example an I profile will not be used for the CHS profile in this example below. The optimisation only looks at global displacement, so if you wish to view local displacement then you need to look into the beam displacements/nodal displacements and calculate them accordingly.
The Result Selector component allows you to select which Load combination you wish to view: 3.7.1.2 Result Selector | Karamba3D v3 and you can use it to select the min or max results from a load combination.
Thanks for the tip about using the same optimiser! How does the optimiser know which section to use if it is in a flattened list out of interest?
My model seems to be working now although slightly confused by the results. The utilisation component shows that no section exceeds the utilisation limit for any load combination but when looking at beam view it shows that some of the elements exceed 100%. Also what max deflections does the analyse component give since it is giving me 110 results but I have 60 nodes, 149 elements and 99 load combinations (I have manually listed all ULS and SLS load combinations and not done the subset one - if I wanted to do that do I just rename them all to be ULS instead of ULS_0, ULS_1 etc?) I have bracing which I have modelled as truss elements which may be causing the problem I am not sure… When I have it as 0.9 it says some elements dont converge when at 1 it converges fine - do you know why that would be?
If it would be easier to understand the issue let me know and I can attach my model.
Are you able to share the script so that it is easier to understand. However, the results relate to the different load cases/load combinations that you have, and they are the max displacement results for those load cases.
Attached is my model. I was trying to validate my model and I am a bit confused with how the cross section optimiser works since when manually setting up the model with the CSO suggested components and reducing the cross section sizes manually, it seems that the model still passes. Any guidance on this would be much appreciated! I am not sure if it is something wrong with the results json I made or something elsewhere.
Thank you for sharing the script, we are checking the cross section optmisation, and noticed that the diagonals themselves do not converge during the optimisation process. This might be due to the fact that some of these diagonals have very little tension or compressive forces during the different iterations of the model. You can see that the results of the utilisation show that the diagonals are the members over this utilisation threshold.