📄 xianshi.asv
字号:
function init_FigureContent( h )
handles = guidata( h ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
if isempty( T_SimulationData )
T_SimulationData = T_youhua( 'Get_DefaultT_SimulationData' ) ;
% save the data .
setappdata( handles.xianshi, 'T_SimulationData', T_SimulationData ) ;
end
% get the T_SimulationData .
x1=T_SimulationData.Position_yh(1).x1;
x2=T_SimulationData.Position_yh(1).x2;
x3=T_SimulationData.Position_yh(1).x3;
x4=T_SimulationData.Position_yh(1).x4;
x5=T_SimulationData.Position_yh(1).x5;
x6=T_SimulationData.Position_yh(1).x6;
x7=T_SimulationData.Position_yh(1).x7;
x8=T_SimulationData.Position_yh(1).x8;
x9=T_SimulationData.Position_yh(1).x9;
x10=T_SimulationData.Position_yh(1).x10;
x11=T_SimulationData.Position_yh(1).x11;
x12=T_SimulationData.Position_yh(1).x12;
xb=T_SimulationData.Position_yh(1).xb;
yb=T_SimulationData.Position_yh(1).yb;
xc=T_SimulationData.Position_yh(1).xc;
yc=T_SimulationData.Position_yh(1).yc;
xm=T_SimulationData.Position_yh(1).xm;
ym=T_SimulationData.Position_yh(1).ym;
axes(handles.ax_plot);
ax=[x3 xb];ay=[x4 yb];
bx=[x5 xc];by=[x6 yc];
cx=[x1 xb xc x1];cy=[x2 yb yc x2];
plot(ax,ay,'LineWidth',3);hold on;
plot(bx,by,'LineWidth',3);hold on;
plot(cx,cy,'LineWidth',3);hold on;
plot(0,0,'LineWidth',3); hold on;
plot(x1,x2,'bo','color','r','MarkerSize',6);hold on;
plot(xb,yb,'bo','color','r','MarkerSize',6);hold on;
plot(xc,yc,'bo','color','r','MarkerSize',6);hold on;
plot(xm,ym,'bo','color','r','MarkerSize',6);hold on;
text(x1-20,x2+20,'\fontsize{16} \fontname{隶书}A');
text(xb,yb-15,'\fontsize{16} \fontname{隶书}B');
text(xc,yc+30,'\fontsize{16} \fontname{隶书}C');
text(xm-30,ym,'\fontsize{16} \fontname{隶书}M');
plot(x3,x4,'r*','color','r','MarkerSize',8);hold on;
plot(0,0,'r*','color','r','MarkerSize',8);hold on;
plot(x5,x6,'r*','color','r','MarkerSize',8);hold on;
text(x3,x4,'\fontsize{16} \fontname{隶书}O1');
text(x5,x6,'\fontsize{16} \fontname{隶书}O2');
text(0,0,'\fontsize{16} \fontname{隶书}O');
grid on;hold off;
set(handles.ax_plot,'XDir','reverse','YAxisLocation','right','XLim',[-200 xb+500],'YLim',[x6-100 x2+200]);
xlabel('\fontsize{10} \bfx(毫米) \leftarrow')
ylabel('\fontsize{10} \bfy(毫米) \rightarrow')
title('\it T型自卸汽车示例图')
% --------------------------------------------------------------------------
function PreviousButton_Callback( h )
handles = guidata( h ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
% return the simulate figure .
yichuan( T_SimulationData ) ;
% close the current figure .
pause(0) ;
close( handles.xianshi ) ;
% --------------------------------------------------------------------------
function SaveResult_Callback(h)
handles = guidata( h ) ;
PromptString = '保存结果文件.' ;
MessageString = '保存结果文件成功。 ' ;
[ FileName , PathName ] = uiputfile( {'*.fig','结果文件(*.fig)'}, PromptString ) ;
if FileName == 0
return ;
else
[TempPathName, FileName, FileTypeName, Version] = fileparts( FileName ) ;
if ~strcmp( FileTypeName, '.fig' ) ;
FileTypeName = '.fig' ;
else
end
SaveFile = fullfile( PathName, [FileName, FileTypeName, Version] ) ;
end
% save the result file .
hgsave( handles.ax_plot, SaveFile ) ;
msgbox( MessageString ) ;
%-----------------------------------------------------------
function DataLoadResult_Callback( h )
handles = guidata( h ) ;
PromptString = '选择数据文件.' ;
WarningString1 = '文件格式出错。 ' ;
WarningString2 = '选择的文件不是正确的数据文件。 ' ;
[ FileName , PathName ] = uigetfile( {'*.mat','数据文件(*.mat)'}, PromptString ) ;
if FileName == 0
return ;
else
[TempPathName, FileName, FileTypeName, Version] = fileparts( FileName ) ;
if ~strcmp( FileTypeName, '.mat' ) ;
warndlg( WarningString1, '警告', 'modal' ) ;
return ;
end
SaveFile = fullfile( PathName, [FileName, FileTypeName, Version] ) ;
end
T_SimulationData = [] ;
try
load( SaveFile, 'T_SimulationData' ) ;
catch
end
if isempty( T_SimulationData ) | ~isstruct( T_SimulationData );
warndlg( WarningString1, '警告', 'modal' ) ;
return ;
end
% save the data .
setappdata( handles.xianshi, 'T_SimulationData', T_SimulationData ) ;
% display the new data .
init_FigureContent( h ) ;
%-----------------------------------------------------------
function DataSaveResult_Callback( h )
handles = guidata( h ) ;
% get the T_SimulationData .
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
PromptString = '保存数据文件.' ;
MessageString = '保存数据文件成功。 ' ;
[ FileName , PathName ] = uiputfile( {'*.mat','数据文件(*.mat)'}, PromptString ) ;
if FileName == 0
return ;
else
[TempPathName, FileName, FileTypeName, Version] = fileparts( FileName ) ;
if ~strcmp( FileTypeName, '.mat' ) ;
FileTypeName = '.mat' ;
else
end
SaveFile = fullfile( PathName, [FileName, FileTypeName, Version] ) ;
end
if strcmp( lower( FileName ), 'imagedata' ) ;
warndlg( '不能覆盖系统文件:ImageData.mat。', '警告', 'modal' ) ;
return ;
end
% save the result file .
save( SaveFile, 'T_SimulationData' ) ;
msgbox( MessageString ) ;
% --------------------------------------------------------------------------
function NextButton_Callback( h )
handles = guidata( h ) ;
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
% open the next figure .
zuihou( T_SimulationData ) ;
% close the current figure .
pause(0) ;
close( handles.xianshi ) ;
%--------------------------------------------------------------------------
function pushbotton1_Callback( h )
handles = guidata( h ) ;
%get the T_SimulationData .
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
angel = T_SimulationData.Jiaodu;
Zhongliang = T_SimulationData.Zhongliang;
for i=1:(angel+1);
x(i)=Zhongliang*T_SimulationData.Position(i).fj ;
end
t=0:angel;
axes(handles.ax_plot);
plot(t,x);
hold on;grid on;hold on;
%------------------------------------------------------
for i=1:(angel+1);
y(i)=Zhongliang*T_SimulationData.Position_yh(i).fj ;
end
plot(t,y,'color','r');
hold on;grid on;hold on;
[n,z]=max(x);
m=z-1;
ystr=['Fomax = ',sprintf('%1.4g',n)];
tstr=['t = ',sprintf('%1.4g',m)];
text(m,n,{ystr;tstr},'color','b')
plot((z-1),n,'ro','color','b','MarkerSize',6);hold on;
[n,z]=max(y);
m=z-1;
ystr=['Fomax = ',sprintf('%1.4g',n)];
tstr=['t = ',sprintf('%1.4g',m)];
text(m,n-30000,{ystr;tstr},'color','r')
plot((z-1),n,'ro','color','r','MarkerSize',6);hold off;
xlabel('\fontsize{10} \bft(度) \rightarrow')
ylabel('\fontsize{10} \bfFo(牛顿) \rightarrow')
title('\it 举升机构举升力曲线')
legend('优化前','优化后');
%--------------------------------------------------------------------------
function pushbotton2_Callback( h )
handles = guidata( h ) ;
%get the T_SimulationData .
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
angel = T_SimulationData.Jiaodu;
Zhongliang = T_SimulationData.Zhongliang;
for i=1:(angel+1);
x(i)=Zhongliang*T_SimulationData.Position(i).fa ;
end
t=0:angel;
axes(handles.ax_plot);
plot(t,x);
hold on;grid on;hold on;
%------------------------------------------------------
for i=1:(angel+1);
y(i)=Zhongliang*T_SimulationData.Position_yh(i).fa ;
end
plot(t,y,'color','r');
hold on;grid on;hold on;
[n,z]=max(x);
m=z-1;
ystr=['Famax = ',sprintf('%1.4g',n)];
tstr=['t = ',sprintf('%1.4g',m)];
text(m,n,{ystr;tstr},'color','b')
plot((z-1),n,'ro','color','b','MarkerSize',6);hold on;
[n,z]=max(y);
m=z-1;
ystr=['Famax = ',sprintf('%1.4g',n)];
tstr=['t = ',sprintf('%1.4g',m)];
text(m,n-30000,{ystr;tstr},'color','r')
plot((z-1),n,'ro','color','r','MarkerSize',6);hold off;
xlabel('\fontsize{10} \bft(度) \rightarrow')
ylabel('\fontsize{10} \bfFa(牛顿) \rightarrow')
title('\it 拉杆力受力曲线')
legend('优化前','优化后');
%--------------------------------------------------------------------------
function pushbotton3_Callback( h )
handles = guidata( h ) ;
%get the T_SimulationData .
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
angel = T_SimulationData.Jiaodu;
Zhongliang = T_SimulationData.Zhongliang;
for i=1:(angel+1);
x(i)=Zhongliang*T_SimulationData.Position(i).fo ;
end
t=0:angel;
axes(handles.ax_plot);
plot(t,x);
hold on;grid on;hold on;
%------------------------------------------------------
for i=1:(angel+1);
y(i)=Zhongliang*T_SimulationData.Position_yh(i).fo ;
end
plot(t,y,'color','r');
hold on;grid on;hold on;
[n,z]=max(x);
m=z-1;
ystr=['Fjmax = ',sprintf('%1.4g',n)];
tstr=['t = ',sprintf('%1.4g',m)];
text(m,n,{ystr;tstr},'color','b')
plot((z-1),n,'ro','color','b','MarkerSize',6);hold on;
[n,z]=max(y);
m=z-1;
ystr=['Fjmax = ',sprintf('%1.4g',n)];
tstr=['t = ',sprintf('%1.4g',m)];
text(m,n-30000,{ystr;tstr},'color','r')
plot((z-1),n,'ro','color','r','MarkerSize',6);hold off;
xxx=0:50;
yyy=[xxx*Zhongliang*T_SimulationData.Position_yh(1).fo;
plot(,yyy);
xlabel('\fontsize{10} \bft(度) \rightarrow')
ylabel('\fontsize{10} \bfFj(牛顿) \rightarrow')
title('\it 液压缸受力曲线')
legend('优化前','优化后');
%--------------------------------------------------------------------------
function pushbotton4_Callback( h )
handles = guidata( h ) ;
%get the T_SimulationData .
T_SimulationData = getappdata( handles.xianshi, 'T_SimulationData' ) ;
angel = T_SimulationData.Jiaodu;
Zhongliang = T_SimulationData.Zhongliang;
for i=1:(angel+1);
x(i)=Zhongliang*T_SimulationData.Zhizuo(i).ffa;
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -