调整基于不同的输入输出参数(获得最优值)

1视图(30天)
你好,
这段代码的主要目的是优化的角度(代码中的命名为角)和厚度(命名为t的代码)的层次结构。
如何让代码重复所有步骤?直到达到最优值也应该写在步骤5大于10,而不是更少然后8 ? ?
最后我想要正确的角度序列(角)和正确的厚度(t) ? ?
程序的流程图应该是:
我理解的代码看起来长但我想懂的如何做同样的事情吗? ?
如何实现它们在我的代码? ?
clearvars;
关闭所有;
clc;
%第一步
垫(1)= (1.4 e3 1.4 e3 .53e3 .35点.5385);
角= 0;%之间的角度应该是[0 + 45 -45 90]
t = .125;%(实施率达0.125。2)之间的厚度应
L = 0(长度(角),7);
i = 1:长度(角);
L(我:)=(垫(1:)角(i) t (i)];% % flipud翻转层压板结构(左)
结束
%第二步
S = 0(3, 3,长度(角));
Q = 0(3, 3,长度(角));
i = 1:长度(角);
(1,1,1)= 1 / L(我,1);
年代(1、2)= - L(我,4)/ L(我,1);
(2,1,我)=年代(1、2);
(2,2,i) = 1 / L(我,2);
年代(3 3 i) = 1 / L(我,3);
年代(:,:我);
问(:,:我)=发票(S (:,:, i));% %降低刚度矩阵
结束
%第三步
sigma1_c = 1500;
sigma2_c = 246;
sigma1_t = 1500;
sigma2_t = 40;
tau_12 = 68;
H1 = (1 / sigma1_t) - (1 / sigma1_c);
H11 = 1 / (sigma1_t * sigma1_c);
H2 = (1 / sigma2_t) - (1 / sigma2_c);
H22 = 1 / (sigma2_t * sigma2_c);
到H6 = 0;
H66 = 1 / (tau_12) ^ 2;
H12 = 1/2 * sqrt (1 / (sigma1_t * sigma1_c * sigma2_t * sigma2_c));
%第四步
i = 1:长度(角);
θ= L(我,6);
m = cos(θ);
n =罪(θ);
T_z_ (1, 1, i) = m ^ 2;
T_z_ (1、2、i) = n ^ 2;
T_z_ (1、3、i) = 2 * m * n;
T_z_ (2, 1, i) = n ^ 2;
T_z_ (2, 2, i) = m ^ 2;
T_z_ (2、3、i) = 2 * m * n;
T_z_ (3、1, i) = - m * n;
T_z_ (3 2 i) = m * n;
T_z_ (3 3 i) = m ^ 2 n ^ 2;
T_zinv (:,:, i) =(发票(T_z_(:,:我)))';
S_tran(:,:我)=发票(T_zinv(:,:我))* S (:,:, i) * T_z_(:,:我);
Q_tran(:,:我)=发票(S_tran(:,:我));% %降低刚度矩阵
结束;
t_k = 0;
i = 1:长度(角)
t_k = t_k + t(我);
结束
Z = 0(长度(角)+ 1,- 1);
mid_s = t_k / 2;
Z (1) = -mid_s;
t_k = 0;
i = 1:长度(角)
t_k = t_k + t(我);
Z (i + 1) = t_k-mid_s;
结束
i = 1:长度(角)
Z_e = [Z(1:长度(角))”;Z(1:长度(角))+ (t (i) / 2)];% %每个板包括最高位置,中间,和底部
结束
如果长度(角)= = 1
Z_an = [Z_e (:), Z(长度(角)+ 1:结束)];% %所有层压板的位置
其他的
Z_a = [Z_e (:), Z(长度(角)+ 1:结束)];
指数= 1(大小(Z_a));
指数(3:2:长度(指数)1)= 2;
Z_an = repelem (Z_a、指标);
结束
一个= 0 (3、3);
j = 1:3
v = 1:3
i = 1:长度(角)
咱= Z - Z (i + 1)(我);
一个(j, v) = (j, v) + Q_tran (j, v, i) *咱;
结束
结束
结束
B = 0 (3、3);
j = 1:3
v = 1:3
i = 1:长度(角);
B (j, v) = B (j, v) + Q_tran (j, v, i) * (Z (i + 1) ^ 2 Z(我)^ 2)* (1/2);
结束
结束
结束
D = 0 (3,3);
j = 1:3
v = 1:3
i = 1:长度(角);
zd Z (i + 1) = ^ 3 Z (i) ^ 3;
D (j, v) = D (j, v) + Q_tran (j, v, i) * zd * 1/3;
结束
结束
结束
M = [B, B D];
F = [0, 0, 0, 0, 0; 10];%添加应用力
% F = [N_x; N_y; N_xy M_x; M_y; M_xy;】
E =发票(M) * F;%应变
e = e (1:3);
k (1:3) = E(4:结束);%曲率
str_sigma_1 = 1000;
str_sigma_2 = 100;
str_t_12 = 150;
% STEPFIVE
tsai_wu = H1 * str_sigma_1 + H2 * str_sigma_2 +类推* str_t_12 + H11 * (str_sigma_1) ^ 2 +
H22 * (str_sigma_2) ^ 2 + H66 * (str_t_12 ^ 2) + 2 * H12 * str_sigma_1 * str_sigma_2;
如果tsai_wu > 10
disp (“输出”)
其他的
disp (“不”)
结束% %然后如何让它重复自我,直到达到正确的角度和厚度? ?

答案(0)

类别

找到更多的在非线性方程组帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!