This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
optimization [2018/09/18 10:28] mark.naves |
optimization [2022/01/12 13:41] (current) jan.dejong |
||
---|---|---|---|
Line 1: | Line 1: | ||
===== Example: Shape optimization of cross-hinge ===== | ===== Example: Shape optimization of cross-hinge ===== | ||
- | This example provides a shape optimization of a single cross flexure by using matlab' | + | This example provides a shape optimization of a single cross flexure by using matlab' |
The cost function of the optimization is defined by the inverse of the first eigenfrequency. Additionally, | The cost function of the optimization is defined by the inverse of the first eigenfrequency. Additionally, | ||
<code matlab run_sim.m> | <code matlab run_sim.m> | ||
- | function cost = run_sim(P, Silent)% EXAMPLE SCRIPT FOR RUNNING SPACAR LIGHT | + | function |
- | % This example simulates a simple cross flexure rotating due to an applied moment | + | |
if nargin == 1 | if nargin == 1 | ||
Silent = true; %run in silent mode when called by optimizer | Silent = true; %run in silent mode when called by optimizer | ||
Line 21: | Line 20: | ||
stressmax = 300e6; %Max stress [MPa] | stressmax = 300e6; %Max stress [MPa] | ||
Mmax = 2.5; %Max actuation moment [Nm] | Mmax = 2.5; %Max actuation moment [Nm] | ||
- | Stroke = 0.5; %Max stroke | + | Stroke = 0.5; %Max stroke |
%% NODE POSITIONS | %% NODE POSITIONS | ||
% x y z | % x y z | ||
- | nodes = [ 0 0 0; %node 1 | + | nodes = [ 0 0 0; %node 1 |
0 H 0; %node 2 | 0 H 0; %node 2 | ||
- | B H 0; %node 3 | + | B H 0; %node 3 |
B 0 0]; %node 4 | B 0 0]; %node 4 | ||
Line 61: | Line 60: | ||
eprops(1).orien | eprops(1).orien | ||
eprops(1).nbeams | eprops(1).nbeams | ||
- | eprops(1).flex | + | eprops(1).flex |
eprops(1).color | eprops(1).color | ||
eprops(1).opacity | eprops(1).opacity | ||
Line 99: | Line 98: | ||
end | end | ||
</ | </ | ||
+ | |||
+ | An example to conduct the optimization is provided below, taking into account additional boundary conditions on the design parameters of the cross-hinge. See matlab' | ||
+ | |||
+ | <code matlab optimization.m> | ||
+ | %filename | ||
+ | simulation = @run_sim; | ||
+ | |||
+ | %starting point | ||
+ | x0 = [0.1; 0.1; 50e-3; 0.2e-3]; | ||
+ | |||
+ | %constraints | ||
+ | b1 = [0.05; 0.05; 25e-3; 0.1e-3]; | ||
+ | b2 = [0.2; 0.2; 75e-3; 1e-3 ]; % Upper bound (x < b2) | ||
+ | |||
+ | A = [-eye(4); eye(4)]; | ||
+ | b = [-b1;b2]; | ||
+ | |||
+ | %optimization | ||
+ | x_opt = fmincon(simulation, | ||
+ | |||
+ | %show results | ||
+ | [cost, out] = run_sim(x_opt, | ||
+ | </ | ||
+ | //Note: prescribing input rotation is only supported for SPACAR light version 1.27 or higher.// |