小编Cai*_*max的帖子

lm_feasible算法的自由度数是否有限制?如果是这样,限制是什么?

我正在开发一种有限元软件,可最大程度地减少机械结构的能量。使用倍频程及其优化包,我遇到了一个奇怪的问题:当我使用300个以上的自由度(DoF)时,lm_feasible算法根本无法计算。另一种算法(sqp)执行计算,但是当我复杂化结构并且超出测试用例时,效果不佳。

使用lm_feasible算法的DoF数量是否有限制?

如果是这样,最大可能有多少个自由度?

概述和大致了解代码的工作原理:

[x,y] = geometryGenerator()

U = zeros(lenght(x)*2,1);
U(1:2:end-1) = x;
U(2:2:end) = y;

%Non geometric argument are not optimised, and fixed during calculation
fct =@(U)complexFunctionOfEnergyIWrap(U(1:2:end-1),U(2:2:end), variousMaterialPropertiesAndOtherArgs)

para = optimset("f_equc_idx",contEq,"lb",lb,"ub",ub,"objf_grad",dEne,"objf_hessian",d2Ene,"MaxIter",1000);
[U,eneFinale,cvg,outp] = nonlin_min(fct,U,para)
Run Code Online (Sandbox Code Playgroud)

完整示例:

clear

pkg load optim

function [x,y] = geometryGenerator(r,elts = 100)
  teta  = linspace(0,pi,elts = 100);
  x = r * cos(teta);
  y = r * sin(teta);
endfunction

function ene  = complexFunctionOfEnergyIWrap (x,y,E,P, X,Y)
  ene = 0;
  for i = 1:length(x)-1
    ene += E*(x(i)/X(i))^4+ E*(y(i)/Y(i))^4- P …
Run Code Online (Sandbox Code Playgroud)

octave nonlinear-optimization finite-element-analysis

8
推荐指数
1
解决办法
347
查看次数