Add flexible mirror. And dimension of mirror
This commit is contained in:
		
							
								
								
									
										
											BIN
										
									
								
								mat/conf_log.mat
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mat/conf_log.mat
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								mat/stages.mat
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								mat/stages.mat
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -1076,9 +1076,11 @@ The output =mirror_center= corresponds to the center of the Sphere and is the po | |||||||
| :END: | :END: | ||||||
| #+begin_src matlab | #+begin_src matlab | ||||||
|   arguments |   arguments | ||||||
|     args.type        char   {mustBeMember(args.type,{'none', 'rigid'})} = 'rigid' |       args.type        char   {mustBeMember(args.type,{'none', 'rigid', 'flexible'})} = 'rigid' | ||||||
|       args.shape       char   {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical' |       args.shape       char   {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical' | ||||||
|       args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg] |       args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg] | ||||||
|  |       args.mass  (1,1) double {mustBeNumeric, mustBePositive} = 10 % [kg] | ||||||
|  |       args.freq  (6,1) double {mustBeNumeric, mustBeNonnegative} = 200*ones(6,1) % [Hz] | ||||||
|   end |   end | ||||||
| #+end_src | #+end_src | ||||||
|  |  | ||||||
| @@ -1101,10 +1103,43 @@ First, we initialize the =mirror= structure. | |||||||
|       mirror.type = 0; |       mirror.type = 0; | ||||||
|     case 'rigid' |     case 'rigid' | ||||||
|       mirror.type = 1; |       mirror.type = 1; | ||||||
|  |     case 'flexible' | ||||||
|  |       mirror.type = 2; | ||||||
|   end |   end | ||||||
| #+end_src | #+end_src | ||||||
|  |  | ||||||
| ** Material and Geometry | ** Mass and Inertia | ||||||
|  | :PROPERTIES: | ||||||
|  | :UNNUMBERED: t | ||||||
|  | :END: | ||||||
|  |  | ||||||
|  | #+begin_src matlab | ||||||
|  |   mirror.mass = args.mass; | ||||||
|  |   mirror.freq = args.freq; | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | ** Stiffness and Damping properties | ||||||
|  | :PROPERTIES: | ||||||
|  | :UNNUMBERED: t | ||||||
|  | :END: | ||||||
|  |  | ||||||
|  | #+begin_src matlab | ||||||
|  |   mirror.K = zeros(6,1); | ||||||
|  |   mirror.K(1:3) = mirror.mass * (2*pi*mirror.freq(1:3)).^2; | ||||||
|  |  | ||||||
|  |   mirror.C = zeros(6,1); | ||||||
|  |   mirror.C(1:3) = 0.2 * sqrt(mirror.K(1:3).*mirror.mass); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | ** Equilibrium position of the each joint. | ||||||
|  | :PROPERTIES: | ||||||
|  | :UNNUMBERED: t | ||||||
|  | :END: | ||||||
|  | #+begin_src matlab | ||||||
|  |   mirror.Deq = zeros(6,1); | ||||||
|  | #+end_src | ||||||
|  |  | ||||||
|  | ** Geometry | ||||||
| :PROPERTIES: | :PROPERTIES: | ||||||
| :UNNUMBERED: t | :UNNUMBERED: t | ||||||
| :END: | :END: | ||||||
| @@ -1115,7 +1150,7 @@ We define the geometrical values. | |||||||
|  |  | ||||||
|   mirror.thickness = 0.025; % Thickness of the plate supporting the sample [m] |   mirror.thickness = 0.025; % Thickness of the plate supporting the sample [m] | ||||||
|  |  | ||||||
|   mirror.hole_rad = 0.120; % radius of the hole in the mirror [m] |   mirror.hole_rad = 0.125; % radius of the hole in the mirror [m] | ||||||
|  |  | ||||||
|   mirror.support_rad = 0.1; % radius of the support plate [m] |   mirror.support_rad = 0.1; % radius of the support plate [m] | ||||||
|  |  | ||||||
| @@ -1125,15 +1160,13 @@ We define the geometrical values. | |||||||
|       mirror.jacobian = 0.20; |       mirror.jacobian = 0.20; | ||||||
|     case 'rigid' |     case 'rigid' | ||||||
|       mirror.jacobian = 0.20 - mirror.h; |       mirror.jacobian = 0.20 - mirror.h; | ||||||
|  |     case 'flexible' | ||||||
|  |       mirror.jacobian = 0.20 - mirror.h; | ||||||
|   end |   end | ||||||
|  |  | ||||||
|   mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m] |   mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m] | ||||||
| #+end_src | #+end_src | ||||||
|  |  | ||||||
| #+begin_src matlab |  | ||||||
|   mirror.density = 2400; % Density of the material [kg/m3] |  | ||||||
| #+end_src |  | ||||||
|  |  | ||||||
| #+begin_src matlab | #+begin_src matlab | ||||||
|   mirror.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point |   mirror.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point | ||||||
| #+end_src | #+end_src | ||||||
| @@ -1142,7 +1175,7 @@ Now we define the Shape of the mirror. | |||||||
| We first start with the internal part. | We first start with the internal part. | ||||||
| #+begin_src matlab | #+begin_src matlab | ||||||
|   mirror.shape = [... |   mirror.shape = [... | ||||||
|       0 mirror.h-mirror.thickness |       mirror.support_rad+5e-3 mirror.h-mirror.thickness | ||||||
|       mirror.hole_rad mirror.h-mirror.thickness; ... |       mirror.hole_rad mirror.h-mirror.thickness; ... | ||||||
|       mirror.hole_rad 0; ... |       mirror.hole_rad 0; ... | ||||||
|       mirror.rad 0 ... |       mirror.rad 0 ... | ||||||
| @@ -1166,7 +1199,7 @@ Then, we define the reflective used part of the mirror. | |||||||
|  |  | ||||||
| Finally, we close the shape. | Finally, we close the shape. | ||||||
| #+begin_src matlab | #+begin_src matlab | ||||||
|   mirror.shape = [mirror.shape; 0 mirror.h]; |   mirror.shape = [mirror.shape; mirror.support_rad+5e-3 mirror.h]; | ||||||
| #+end_src | #+end_src | ||||||
|  |  | ||||||
| ** Save the Structure | ** Save the Structure | ||||||
| @@ -1234,7 +1267,7 @@ The =mirror= structure is saved. | |||||||
|       args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3 |       args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3 | ||||||
|       args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1 |       args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1 | ||||||
|       args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3 |       args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3 | ||||||
|       args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 100e-3 |       args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 120e-3 | ||||||
|       % initializeCylindricalStruts |       % initializeCylindricalStruts | ||||||
|       args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1 |       args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1 | ||||||
|       args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3 |       args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3 | ||||||
|   | |||||||
| @@ -1,9 +1,11 @@ | |||||||
| function [] = initializeMirror(args) | function [] = initializeMirror(args) | ||||||
|  |  | ||||||
| arguments | arguments | ||||||
|   args.type        char   {mustBeMember(args.type,{'none', 'rigid'})} = 'rigid' |     args.type        char   {mustBeMember(args.type,{'none', 'rigid', 'flexible'})} = 'rigid' | ||||||
|     args.shape       char   {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical' |     args.shape       char   {mustBeMember(args.shape,{'spherical', 'conical'})} = 'spherical' | ||||||
|     args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg] |     args.angle (1,1) double {mustBeNumeric, mustBePositive} = 45 % [deg] | ||||||
|  |     args.mass  (1,1) double {mustBeNumeric, mustBePositive} = 10 % [kg] | ||||||
|  |     args.freq  (6,1) double {mustBeNumeric, mustBeNonnegative} = 200*ones(6,1) % [Hz] | ||||||
| end | end | ||||||
|  |  | ||||||
| mirror = struct(); | mirror = struct(); | ||||||
| @@ -13,13 +15,26 @@ switch args.type | |||||||
|     mirror.type = 0; |     mirror.type = 0; | ||||||
|   case 'rigid' |   case 'rigid' | ||||||
|     mirror.type = 1; |     mirror.type = 1; | ||||||
|  |   case 'flexible' | ||||||
|  |     mirror.type = 2; | ||||||
| end | end | ||||||
|  |  | ||||||
|  | mirror.mass = args.mass; | ||||||
|  | mirror.freq = args.freq; | ||||||
|  |  | ||||||
|  | mirror.K = zeros(6,1); | ||||||
|  | mirror.K(1:3) = mirror.mass * (2*pi*mirror.freq(1:3)).^2; | ||||||
|  |  | ||||||
|  | mirror.C = zeros(6,1); | ||||||
|  | mirror.C(1:3) = 0.2 * sqrt(mirror.K(1:3).*mirror.mass); | ||||||
|  |  | ||||||
|  | mirror.Deq = zeros(6,1); | ||||||
|  |  | ||||||
| mirror.h = 0.05; % Height of the mirror [m] | mirror.h = 0.05; % Height of the mirror [m] | ||||||
|  |  | ||||||
| mirror.thickness = 0.025; % Thickness of the plate supporting the sample [m] | mirror.thickness = 0.025; % Thickness of the plate supporting the sample [m] | ||||||
|  |  | ||||||
| mirror.hole_rad = 0.120; % radius of the hole in the mirror [m] | mirror.hole_rad = 0.125; % radius of the hole in the mirror [m] | ||||||
|  |  | ||||||
| mirror.support_rad = 0.1; % radius of the support plate [m] | mirror.support_rad = 0.1; % radius of the support plate [m] | ||||||
|  |  | ||||||
| @@ -29,16 +44,16 @@ switch args.type | |||||||
|     mirror.jacobian = 0.20; |     mirror.jacobian = 0.20; | ||||||
|   case 'rigid' |   case 'rigid' | ||||||
|     mirror.jacobian = 0.20 - mirror.h; |     mirror.jacobian = 0.20 - mirror.h; | ||||||
|  |   case 'flexible' | ||||||
|  |     mirror.jacobian = 0.20 - mirror.h; | ||||||
| end | end | ||||||
|  |  | ||||||
| mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m] | mirror.rad = 0.180; % radius of the mirror (at the bottom surface) [m] | ||||||
|  |  | ||||||
| mirror.density = 2400; % Density of the material [kg/m3] |  | ||||||
|  |  | ||||||
| mirror.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point | mirror.cone_length = mirror.rad*tand(args.angle)+mirror.h+mirror.jacobian; % Distance from Apex point of the cone to jacobian point | ||||||
|  |  | ||||||
| mirror.shape = [... | mirror.shape = [... | ||||||
|     0 mirror.h-mirror.thickness |     mirror.support_rad+5e-3 mirror.h-mirror.thickness | ||||||
|     mirror.hole_rad mirror.h-mirror.thickness; ... |     mirror.hole_rad mirror.h-mirror.thickness; ... | ||||||
|     mirror.hole_rad 0; ... |     mirror.hole_rad 0; ... | ||||||
|     mirror.rad 0 ... |     mirror.rad 0 ... | ||||||
| @@ -56,6 +71,6 @@ else | |||||||
|     error('Shape should be either conical or spherical'); |     error('Shape should be either conical or spherical'); | ||||||
| end | end | ||||||
|  |  | ||||||
| mirror.shape = [mirror.shape; 0 mirror.h]; | mirror.shape = [mirror.shape; mirror.support_rad+5e-3 mirror.h]; | ||||||
|  |  | ||||||
| save('./mat/stages.mat', 'mirror', '-append'); | save('./mat/stages.mat', 'mirror', '-append'); | ||||||
|   | |||||||
| @@ -22,7 +22,7 @@ arguments | |||||||
|     args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3 |     args.Fpr (1,1) double {mustBeNumeric, mustBePositive} = 150e-3 | ||||||
|     args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1 |     args.Mpm (1,1) double {mustBeNumeric, mustBePositive} = 1 | ||||||
|     args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3 |     args.Mph (1,1) double {mustBeNumeric, mustBePositive} = 10e-3 | ||||||
|     args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 100e-3 |     args.Mpr (1,1) double {mustBeNumeric, mustBePositive} = 120e-3 | ||||||
|     % initializeCylindricalStruts |     % initializeCylindricalStruts | ||||||
|     args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1 |     args.Fsm (1,1) double {mustBeNumeric, mustBePositive} = 0.1 | ||||||
|     args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3 |     args.Fsh (1,1) double {mustBeNumeric, mustBePositive} = 50e-3 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user