以一种非常直观的方式展示预应变施加过程
单腔手指预应变可以明显增强手指的弯曲变形能力,那么实际预应变的方式以及预应变的形状对其弯曲能力的影响时的研究就显得非常重要。本程序将介绍一种动态展示的方式,更直观的介绍预应变的施加过程。
clc
close all
clear all
%% 参数输入
%% 可变
N=5; % %腔体个数
sss=0.01; % %变形速度
%% 不可变
o=200; % %细化个数
dd=500; % %圆形描画精细程度
RR=[1,2;2,1]; % %几个圆的半径
%% 主程序
%% 前期数据准备
X=[8,8,0,0];
Y=[8,0,0,8];%%手指指尖出数据
A11=[0 0 -4 -4 -4 -3.992106914 -3.968458805 -3.929149003 -3.874332645 -3.804226065 -3.719105944 -3.61930821 -3.50522672 -3.377311702 -3.236067977 -3.082052971 -2.91587451 -2.738188424 -2.549695959 -2.351141009 -2.14330718 -1.927014696 -1.703117166 -1.472498211 -1.236067977 -0.994759549 -0.749525258 -0.501332934 -0.251162078 2.44929E-16 6.12323E-17 -0.06279052 -0.125333234 -0.187381315 -0.248689887 -0.309016994 -0.368124553 -0.425779292 -0.481753674 -0.535826795 -0.587785252 -0.63742399 -0.684547106 -0.728968627 -0.770513243 -0.809016994 -0.844327926 -0.87630668 -0.904827052 -0.929776486 -0.951056516 -0.968583161 -0.982287251 -0.992114701 -0.998026728 -1 -1 -0.998026728 -0.992114701 -0.982287251 -0.968583161 -0.951056516 -0.929776486 -0.904827052 -0.87630668 -0.844327926 -0.809016994 -0.770513243 -0.728968627 -0.684547106 -0.63742399 -0.587785252 -0.535826795 -0.481753674 -0.425779292 -0.368124553 -0.309016994 -0.248689887 -0.187381315 -0.125333234 -0.06279052 -1.83697E-16
1.5 0 0 4 4 4.251162078 4.501332934 4.749525258 4.994759549 5.236067977 5.472498211 5.703117166 5.927014696 6.14330718 6.351141009 6.549695959 6.738188424 6.91587451 7.082052971 7.236067977 7.377311702 7.50522672 7.61930821 7.719105944 7.804226065 7.874332645 7.929149003 7.968458805 7.992106914 8 7 6.998026728 6.992114701 6.982287251 6.968583161 6.951056516 6.929776486 6.904827052 6.87630668 6.844327926 6.809016994 6.770513243 6.728968627 6.684547106 6.63742399 6.587785252 6.535826795 6.481753674 6.425779292 6.368124553 6.309016994 6.248689887 6.187381315 6.125333234 6.06279052 6 2.5 2.43720948 2.374666766 2.312618685 2.251310113 2.190983006 2.131875447 2.074220708 2.018246326 1.964173205 1.912214748 1.86257601 1.815452894 1.771031373 1.729486757 1.690983006 1.655672074 1.62369332 1.595172948 1.570223514 1.548943484 1.531416839 1.517712749 1.507885299 1.501973272 1.5];
A12=[0 0 4 4 1 1 0
1.5 0 0 3 3 1.5 1.5];
A13=[0 4 4 1 1 0.998026728 0.992114701 0.982287251 0.968583161 0.951056516 0.929776486 0.904827052 0.87630668 0.844327926 0.809016994 0.770513243 0.728968627 0.684547106 0.63742399 0.587785252 0.535826795 0.481753674 0.425779292 0.368124553 0.309016994 0.248689887 0.187381315 0.125333234 0.06279052 6.12323E-17
8 8 5 5 6 6.06279052 6.125333234 6.187381315 6.248689887 6.309016994 6.368124553 6.425779292 6.481753674 6.535826795 6.587785252 6.63742399 6.684547106 6.728968627 6.770513243 6.809016994 6.844327926 6.87630668 6.904827052 6.929776486 6.951056516 6.968583161 6.982287251 6.992114701 6.998026728 7];
%%手指指端出数据
d=5/o; %%每步下压长度
r1=RR(1,1);r2=RR(1,2);
r3=RR(2,1);r4=RR(2,2);
figure(1)
%% 预设各腔体绘图空间
for ij=1:N
h1(ij)=fill([0 1 1 0 0],[0,0,1,1,0],'b');hold on
h2(ij)=rectangle('Position',[4-r1,9-r1,2*r1,2*r1],'Curvature',[1,1],'facecolor','r');%%绘制拟合后的圆形
h3(ij)=fill([0 1 1 0 0],[0,0,1,1,0],'w');hold on
end
for ii=0:N
rectangle('Position',[ii*8-r4,6-r4,2*r4,2*r4],'Curvature',[1,1],'facecolor','c');hold on%%绘制拟合后的圆形
end
HH=[1,1,0.5,0.45,0.35,0.32,0.28,0.23,0.21,0.2,0.2,0.2,0.2];
axis([-5,N*8+5,-1,10])
set(gcf,'Unit','normalized','Position',[0,0,1,HH(N)])
%% 画出指尖和指端
fill(A11(1,:),A11(2,:),'b');hold on
fill(A12(1,:)+N*8,A12(2,:),'b');hold on
fill(A13(1,:)+N*8,A13(2,:),'b');hold on
title('施加预应变的演示')
%% 循环画图
for i=0:o
H=d*i;%%当前步下移长度
%% 绘制外侧边缘形状
fai=asin(r2/(((16+(-2+H)^2)^0.5)*(r2/(r1+r2))))+atan((H-3)/4);
fai1=fliplr(pi()/2-fai:pi()/dd:pi()/2);%%第一段圆弧角度
fai2=-pi()/2-fai:pi()/dd:-pi()/2+fai;%%第二段圆弧角度
fai3=fliplr(0:pi()/dd:fai)+pi()/2;%%第一段圆弧角度
A1=[2*cos(fai1);6+2*sin(fai1)];
A2=[4+cos(fai2);9-H+sin(fai2)];
A3=[8+2*cos(fai3);6+2*sin(fai3)];
X1=[X,A1(1,:),A2(1,:),A3(1,:),X(1)];
Y1=[Y,A1(2,:),A2(2,:),A3(2,:),Y(1)];
for ji=1:N
set(h1(ji),'Xdata',X1+(ji-1)*8,'Ydata',Y1);
set(h2(ji),'Position',[4+(ji-1)*8-r1,9-H-r1,2*r1,2*r1])
end
%% 绘制内侧边缘形状
fai11=asin(r2/(((16+(-2+H)^2)^0.5)*(r2/(r1+r2))))+atan((H-3)/4);
fai12=fliplr(pi()/2-fai11:pi()/dd:pi()/2);%%第一段圆弧角度
fai22=-pi()/2-fai11:pi()/dd:-pi()/2+fai11;%%第二段圆弧角度
fai32=fliplr(0:pi()/dd:fai11)+pi()/2;%%第一段圆弧角度
A12=[cos(fai12);6+sin(fai12)];
A22=[4+2*cos(fai22);9-H+2*sin(fai22)];
A32=[8+cos(fai32);6+sin(fai32)];
X12=[X,A12(1,:),A22(1,:),A32(1,:),X(1)];
Y12=[Y+1.5,A12(2,:),A22(2,:),A32(2,:),Y(1)+1.5];
for ji=1:N
set(h3(ji),'Xdata',X12+(ji-1)*8,'Ydata',Y12);
end
%% 时间延迟
if i==0
pause(2)
else
pause(sss)
end
end
预应变施加效果如图:(绿色为固定圆,红色为下压圆,蓝色为手指腔壁)