Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .eleventy.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ module.exports = function(eleventyConfig) {
return collection.getFilteredByGlob('_site/html/*.md').reverse();
});

eleventyConfig.addCollection("postsAscending", (collection) =>
collection.getFilteredByGlob("_posts/*.md").sort((a, b) => {
if (a.data.title > b.data.title) return -1;
else if (a.data.title < b.data.title) return 1;
else return 0;
})
);

eleventyConfig.addCollection("tagList", function (collection) {
let tagSet = new Set();
collection.getAll().forEach(function (item) {
Expand Down
64 changes: 64 additions & 0 deletions 10/boxmove.mac
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
X0 = ARG1
Y0 = ARG2
AMAX = ARG3
OMEGA = ARG4
!UXTAB = %ARG5%
!UYTAB = %ARG6%
!VXTAB = %ARG7%
!VYTAB = %ARG8%
!tables - sinusoidal displacements UX,UY
*DIM,%ARG5%,TABLE,6,11,1
%ARG5%(0,0,1) = 0.0,-999, 1, X0 , Y0 ,AMAX,0.0
%ARG5%(0,1,1) = 1.0,-1 , 0, 1.0 , 27 , 2 , 17 !x-x0
%ARG5%(0,2,1) = 0.0,-2 , 0, 1.0 , 28 , 2 , 18 !y-y0
%ARG5%(0,3,1) = 0.0,-3 , 0, 1.0 ,-2 ,18 ,-1 !Angle=atan(y-y0/x-x0)
%ARG5%(0,4,1) = 0.0,-4 , 0, 1.0 ,-1 , 3 ,-1 !(x-x0)**2
%ARG5%(0,5,1) = 0.0,-5 , 0, 1.0 ,-2 , 3 ,-2 !(y-y0)**2
%ARG5%(0,6,1) = 0.0,-6 , 0, 1.0 ,-4 , 1 ,-5 !add last 2
%ARG5%(0,7,1) = 0.0,-7 , 16, 1.0 ,-6 , 0 ,0.0 !radius
%ARG5%(0,8,1) = 0.0,-8 , 9,OMEGA, 1 , 3 , 19 !theta=amax*sinwt
%ARG5%(0,9,1) = 0.0,-9 , 0, 1.0 ,-8 , 1 , -3 !angle+theta
%ARG5%(0,10,1) = 0.0,-10, 10, 1.0 ,-9 , 3 , -7 !radius*cos(angle+theta)
%ARG5%(0,11,1) = 0.0, 99, 0, 1.0 ,-10 , 2 , -1 !previous - (x-x0)
*DIM,%ARG6%,TABLE,6,11,1
%ARG6%(0,0,1) = 0.0,-999, 1, X0 , Y0 ,AMAX,0.0
%ARG6%(0,1,1) = 1.0,-1 , 0, 1.0 , 27 , 2 , 17 !x-x0
%ARG6%(0,2,1) = 0.0,-2 , 0, 1.0 , 28 , 2 , 18 !y-y0
%ARG6%(0,3,1) = 0.0,-3 , 0, 1.0 ,-2 ,18 ,-1 !Angle=atan(y-y0/x-x0)
%ARG6%(0,4,1) = 0.0,-4 , 0, 1.0 ,-1 , 3 ,-1 !(x-x0)**2
%ARG6%(0,5,1) = 0.0,-5 , 0, 1.0 ,-2 , 3 ,-2 !(y-y0)**2
%ARG6%(0,6,1) = 0.0,-6 , 0, 1.0 ,-4 , 1 ,-5 !add last 2
%ARG6%(0,7,1) = 0.0,-7 , 16, 1.0 ,-6 , 0 ,0.0 !radius
%ARG6%(0,8,1) = 0.0,-8 , 9,OMEGA, 1 , 3 , 19 !theta=amax*sinwt
%ARG6%(0,9,1) = 0.0,-9 , 0, 1.0 ,-8 , 1 , -3 !angle+theta
%ARG6%(0,10,1) = 0.0,-10, 9, 1.0 ,-9 , 3 , -7 !radius*sin(angle+theta)
%ARG6%(0,11,1) = 0.0, 99, 0, 1.0 ,-10 , 2 , -2 !previous - (y-y0)
!tables - sinusoidal velocities VX,VY
*DIM,%ARG7%,TABLE,6,12,1
%ARG7%(0,0,1) = 0.0,-999, 1, X0 , Y0 ,AMAX,AMAX*OMEGA
%ARG7%(0,1,1) = 1.0,-1 , 0, 1.0 , 27 , 2 , 17 !x-x0
%ARG7%(0,2,1) = 0.0,-2 , 0, 1.0 , 28 , 2 , 18 !y-y0
%ARG7%(0,3,1) = 0.0,-3 , 0, 1.0 ,-2 ,18 ,-1 !Angle=atan(y-y0/x-x0)
%ARG7%(0,4,1) = 0.0,-4 , 0, 1.0 ,-1 , 3 ,-1 !(x-x0)**2
%ARG7%(0,5,1) = 0.0,-5 , 0, 1.0 ,-2 , 3 ,-2 !(y-y0)**2
%ARG7%(0,6,1) = 0.0,-6 , 0, 1.0 ,-4 , 1 ,-5 !add last 2
%ARG7%(0,7,1) = 0.0,-7 , 16, 1.0 ,-6 , 0 ,0.0 !radius
%ARG7%(0,8,1) = 0.0,-8 , 9,OMEGA, 1 , 3 , 19 !theta=amax*sinwt
%ARG7%(0,9,1) = 0.0,-9 , 0, 1.0 ,-8 , 1 , -3 !angle+theta
%ARG7%(0,10,1) = 0.0,-10, 9, 1.0 ,-9 , 3 , -7 !radius*sin(angle+theta)
%ARG7%(0,11,1) = 0.0,-11, 10,OMEGA, 1 , 3 , 20 !thetadot=omega*amax*coswt
%ARG7%(0,12,1) = 0.0, 99, 0,-1.0 ,-11 , 3 ,-10 !vx=-thetadot*radius*sin(a+t)
*DIM,%ARG8%,TABLE,6,12,1
%ARG8%(0,0,1) = 0.0,-999, 1, X0 , Y0 ,AMAX,AMAX*OMEGA
%ARG8%(0,1,1) = 1.0,-1 , 0, 1.0 , 27 , 2 , 17 !x-x0
%ARG8%(0,2,1) = 0.0,-2 , 0, 1.0 , 28 , 2 , 18 !y-y0
%ARG8%(0,3,1) = 0.0,-3 , 0, 1.0 ,-2 ,18 ,-1 !Angle=atan(y-y0/x-x0)
%ARG8%(0,4,1) = 0.0,-4 , 0, 1.0 ,-1 , 3 ,-1 !(x-x0)**2
%ARG8%(0,5,1) = 0.0,-5 , 0, 1.0 ,-2 , 3 ,-2 !(y-y0)**2
%ARG8%(0,6,1) = 0.0,-6 , 0, 1.0 ,-4 , 1 ,-5 !add last 2
%ARG8%(0,7,1) = 0.0,-7 , 16, 1.0 ,-6 , 0 ,0.0 !radius
%ARG8%(0,8,1) = 0.0,-8 , 9,OMEGA, 1 , 3 , 19 !theta=amax*sinwt
%ARG8%(0,9,1) = 0.0,-9 , 0, 1.0 ,-8 , 1 , -3 !angle+theta
%ARG8%(0,10,1) = 0.0,-10, 10, 1.0 ,-9 , 3 , -7 !radius*cos(angle+theta)
%ARG8%(0,11,1) = 0.0,-11, 10,OMEGA, 1 , 3 , 20 !thetadot=omega*amax*coswt
%ARG8%(0,12,1) = 0.0, 99, 0, 1.0 ,-11 , 3 ,-10 !vy= thetadot*radius*cos(a+t)
55 changes: 55 additions & 0 deletions 10/mvconn.mac
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
X0 = ARG1
Y0 = ARG2
AMAX = ARG3
OMEGA =ARG4
!TAB1 = %ARG5%
!TAB2 = %ARG6%
x1 = ARG7
y1 = ARG8
x2 = ARG9
y2 = AR10
lenth=1.0/(sqrt( (x1-x2)**2 + (y1-y2)**2 ) )
*DIM,%ARG5%,TABLE,6,20,1
%ARG5%(0,0,1) = 0.0,-999, 1, X0 , Y0 ,AMAX,1.0
%ARG5%(0,1,1) = 1.0,-1 , 0, X2 , 20 , 2 , 17 !x2-x0
%ARG5%(0,2,1) = 0.0,-2 , 0, Y2 , 20 , 2 , 18 !y2-y0
%ARG5%(0,3,1) = 0.0,-3 , 0, 1.0 ,-2 ,18 ,-1 !Angle=atan(y2-y0/x2-x0)
%ARG5%(0,4,1) = 0.0,-4 , 0, 1.0 ,-1 , 3 ,-1 !(x2-x0)**2
%ARG5%(0,5,1) = 0.0,-5 , 0, 1.0 ,-2 , 3 ,-2 !(y2-y0)**2
%ARG5%(0,6,1) = 0.0,-6 , 0, 1.0 ,-4 , 1 ,-5 !add last 2
%ARG5%(0,7,1) = 0.0,-7 , 16, 1.0 ,-6 , 0 ,0.0 !radius
%ARG5%(0,8,1) = 0.0,-8 , 9,OMEGA, 1 , 3 , 19 !theta=amax*sinwt
%ARG5%(0,9,1) = 0.0,-9 , 0, 1.0 ,-8 , 1 , -3 !angle+theta
%ARG5%(0,10,1) = 0.0,-10, 10, 1.0 ,-9 , 3 , -7 !radius*cos(angle+theta)
%ARG5%(0,11,1) = 0.0,-11, 0, 1.0 ,-10 , 2 , -1 !previous - (x2-x0)
%ARG5%(0,12,1) = 0.0,-12 , 0,-X1 , 20 , 1 , 27 !x-x1
%ARG5%(0,13,1) = 0.0,-13 , 0,-Y1 , 20 , 1 , 28 !y-y1
%ARG5%(0,14,1) = 0.0,-14 , 0,1.0 ,-12 , 3 ,-12 !x-x1)**2
%ARG5%(0,15,1) = 0.0,-15 , 0,1.0 ,-13 , 3 ,-13 !y-y1)**2
%ARG5%(0,16,1) = 0.0,-16 , 0,1.0 ,-14 , 1 ,-15 !add
%ARG5%(0,17,1) = 0.0,-17 , 16,1.0 ,-16 , 0 , 0.0 !sqrt((x-x1)**2 + (y-y1)**2)
%ARG5%(0,18,1) = 0.0,-18 , 0,lenth, 20 , 3 ,-17 !N2=L2/L
%ARG5%(0,19,1) = 0.0,-19 , 0,1.0 , 20 , 2 ,-18 !N1=1-N2
%ARG5%(0,20,1) = 0.0, 99 , 0,1.0 ,-18 , 3 ,-11 !N2*UX2
*DIM,%ARG6%,TABLE,6,20,1
%ARG6%(0,0,1) = 0.0,-999, 1, X0 , Y0 ,AMAX,1.0
%ARG6%(0,1,1) = 1.0,-1 , 0, X2 , 20 , 2 , 17 !x2-x0
%ARG6%(0,2,1) = 0.0,-2 , 0, Y2 , 20 , 2 , 18 !y2-y0
%ARG6%(0,3,1) = 0.0,-3 , 0, 1.0 ,-2 ,18 ,-1 !Angle=atan(y2-y0/x2-x0)
%ARG6%(0,4,1) = 0.0,-4 , 0, 1.0 ,-1 , 3 ,-1 !(x2-x0)**2
%ARG6%(0,5,1) = 0.0,-5 , 0, 1.0 ,-2 , 3 ,-2 !(y2-y0)**2
%ARG6%(0,6,1) = 0.0,-6 , 0, 1.0 ,-4 , 1 ,-5 !add last 2
%ARG6%(0,7,1) = 0.0,-7 , 16, 1.0 ,-6 , 0 ,0.0 !radius
%ARG6%(0,8,1) = 0.0,-8 , 9,OMEGA, 1 , 3 , 19 !theta=amax*sinwt
%ARG6%(0,9,1) = 0.0,-9 , 0, 1.0 ,-8 , 1 , -3 !angle+theta
%ARG6%(0,10,1) = 0.0,-10, 9, 1.0 ,-9 , 3 , -7 !radius*sin(angle+theta)
%ARG6%(0,11,1) = 0.0,-11, 0, 1.0 ,-10 , 2 , -2 !previous - (y2-y0)
%ARG6%(0,12,1) = 0.0,-12 , 0,-X1 , 20 , 1 , 27 !x-x1
%ARG6%(0,13,1) = 0.0,-13 , 0,-Y1 , 20 , 1 , 28 !y-y1
%ARG6%(0,14,1) = 0.0,-14 , 0,1.0 ,-12 , 3 ,-12 !x-x1)**2
%ARG6%(0,15,1) = 0.0,-15 , 0,1.0 ,-13 , 3 ,-13 !y-y1)**2
%ARG6%(0,16,1) = 0.0,-16 , 0,1.0 ,-14 , 1 ,-15 !add
%ARG6%(0,17,1) = 0.0,-17 , 16,1.0 ,-16 , 0 , 0.0 !sqrt((x-x1)**2 + (y-y1)**2)
%ARG6%(0,18,1) = 0.0,-18 , 0,lenth, 20 , 3 ,-17 !N2=L2/L
%ARG6%(0,19,1) = 0.0,-19 , 0,1.0 , 20 , 2 ,-18 !N1=1-N2
%ARG6%(0,20,1) = 0.0, 99 , 0,1.0 ,-18 , 3 ,-11 !N2*UY2
Binary file added 10/resvec.xls
Binary file not shown.
65 changes: 65 additions & 0 deletions 10/uitfin.f
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
C
C===========================================================================
C
C EXAMPLE OF A PID CONTROL SYSTEM IMPLEMENTED USING UITFIN
C
C October 2001
C ANSYS 5.7
C
C===========================================================================
C
C Dave Lindeman ddlindeman@mmm.com
C 3M SEMS Technology Center Tel: 651-733-6383
C 3M Center 235-1F-36 FAX: 651-736-7615
C St. Paul, MN 55144
C
C===========================================================================
SUBROUTINE UITFIN
EXTERNAL FORPUT,GETSTACKDISP,PAREVL
INTEGER GETSTACKDISP
DOUBLE PRECISION PAREVL
INTEGER KERR,NPID
DOUBLE PRECISION DISP,E0,E1,E2,F0,FORCE(2)
DOUBLE PRECISION KDIF,KINT,KPRP
DOUBLE PRECISION SUBC(3),TSTP,UY
CHARACTER*32 LABEL32
DATA E0,E1,E2,F0 /4*0.0D+00/
DATA SUBC /3*0.0D+00/
C===========================================================================
C Evaluate ANSYS parameter values
C===========================================================================
LABEL32 = 'DISP'
DISP = PAREVL(LABEL32,0,SUBC(1),2,KERR)
LABEL32 = 'KDIF'
KDIF = PAREVL(LABEL32,0,SUBC(1),2,KERR)
LABEL32 = 'KINT'
KINT = PAREVL(LABEL32,0,SUBC(1),2,KERR)
LABEL32 = 'KPRP'
KPRP = PAREVL(LABEL32,0,SUBC(1),2,KERR)
LABEL32 = 'NPID'
NPID = PAREVL(LABEL32,0,SUBC(1),2,KERR)
LABEL32 = 'TSTP'
TSTP = PAREVL(LABEL32,0,SUBC(1),2,KERR)
C===========================================================================
C Obtain displacement of mass
C===========================================================================
KERR = GETSTACKDISP(NPID,'UY ',UY)
C===========================================================================
C Calculate current and previous errors
C===========================================================================
E2 = E1
E1 = E0
E0 = DISP-UY
C===========================================================================
C Update nodal force
C===========================================================================
FORCE(1) = F0 + KPRP*(((1.0D+00+(KDIF/TSTP)+(TSTP/KINT))*E0)
+ -((1.0D+00+2.0D+00*(KDIF/TSTP))*E1)+((KDIF/TSTP)*E2))
FORCE(2) = 0.0D+00
CALL FORPUT(NPID,2,FORCE(1))
F0 = FORCE(1)
RETURN
END
C===========================================================================
C End of UITFIN
C===========================================================================
Binary file added 10/vortex.zip
Binary file not shown.
Loading