Комплексный расчет элементов строительных конструкций в среде MATLAB. Карпов В.В - 49 стр.

UptoLike

Составители: 

96 97
for k = 1:nf
yr = yr + C(k)*fi(k);
end
xp = [0:0.01:L]';
w0 = 0*xp;
w = subs(yr, x, xp);
w_max = max(max(w));
set(gcf,'Color','w');
gr = plot(xp,(-1)*w, xp,w0);
set(gr(1),'Color','b','LineWidth',4) ;
set(gr(2),'Color','k','LineWidth',2,'LineStyle','--');
set(gca,'YLim', [-w_max*4 w_max], 'XLim', [0 L]);
X(1) = 0;
Y(1) = 0;
X(2) = L;
Y(2) = 0;
switch ends
case 0
gr2 = line(X(1),Y(1));
set(gr2,'Marker','o','MarkerFaceColor',
'w','MarkerEdgeColor','k','Markersize',8)
gr3 = line(X(2),Y(2));
set(gr3,'Marker','o','MarkerFaceColor',
'w','MarkerEdgeColor','k','Markersize',8)
case 1
gr2 = line(X(1),Y(1));
set(gr2,'Marker','s','MarkerFaceColor',
'k','MarkerEdgeColor','k','Markersize',8)
gr3 = line(X(2),Y(2));
set(gr3,'Marker','s','MarkerFaceColor',
'k','MarkerEdgeColor','k','Markersize',8)
end
axis off
Для доступа к этим функциям разместим в окне приложения
две кнопки с именами btnW и btnDEF и напишем тексты функций
обработчиков событий btnW_Callback и btnDEF_Callback (листинги 3.12
и 3.13).
Листинг 3.12
function btnW_Callback(hObject, eventdata, handles)
fig_w(handles.L,handles.H,handles.C,handles.nf,handles.ends)
Листинг 3.13
function btnDEF_Callback(hObject, eventdata, handles)
fig_def(handles.L,handles.C,handles.nf,handles.ends)
Для сохранения входных параметров и результатов расчёта в тек-
стовом файле с именем beam_lin_elast.txt создадим функцию
print_FW.m (листинг 3.14).
Листинг
3.14
function print_FW(L,H,E,mu,ends,q, nf,C)
% ВЫВОД ВХОДНЫХ ПАРАМЕТРОВ И ЗНАЧЕНИЙ ФУНКЦИИ
ПРОГИБА
% В ТЕКСТОВОМ ФАЙЛЕ beam_in_elast.txt
switch length(q)
case 1
fx = 'q(1)';
case 2
fx = 'q(1) + (q(2)-q(1))*x/L';
case 3
mxq = [0 L/2 L];
ps = polyfit(mxq, q, 2);
fx = 'ps(1)*L^2*(x/L)^2+ps(2)*L*(x/L) + ps(3)';
end
%-----------------------------------------------------------------------------------
filename = 'beam_lin_elast.txt';
disp(результаты расчета сохраняются в текстовом файле')
disp('beam_in_elast.txt')
[FW, mes] = fopen(filename, 'w');
fprintf(FW,'-------------------------------------------------------------------\n');
fprintf(FW, расчет балки прямоугольного сечения по методу Ритца\n');
fprintf(FW, линейно-упругая задача\n');