Hemuppgift 3, ALTERNATIV A, SF1861 Optimeringslära för T

Hemuppgift 3, ALTERNATIV A, SF1861 Optimeringslära för T, VT 2015
Examinator: Krister Svanberg, [email protected].
Assistenter: Johan Markdahl, [email protected],
Hildur Æsa Oddsdóttir, [email protected].
Lämnas in till någon av oss senast måndag 18 maj 2015 kl 15:00.
I denna uppgift är samarbete tillåtet i grupper om högst två personer.
Endast en rapport per grupp skall lämnas in. Matlabkod och utskrifter ska bifogas.
Svaren på frågorna skall finnas i rapporten, inte i Matlabkoden eller i utskrifter.
Det är inte tillåtet att kopiera någon annans rapport eller matlabkod.
Ange namn, personnummer och e-postadress på rapportens framsida.
Rapporten, utskriven (eller prydligt handskriven) på papper, lämnas in senast
måndag 18 maj 2015 kl 15:00.
Vissa studenter kommer att väljas ut för enskild muntlig redovisning av uppgifterna.
Kallelse sker via e-post, så kontrollera regelbundet denna. Korrekt löst och redovisad
uppgift ger fyra hemtalspoäng.
Denna hemuppgift ger dels en fortsatt introduktion till strukturoptimering, dels träning i
att modellera och lösa ickelinjära optimeringsproblem med hjälp av Matlab.
I Hemuppgift 2A (Hem2A) dimensionerades fackverksstrukturer så att de blev optimala
med hänsyn taget enbart till ett givet lastfall. (Lastvektorn p ändrades visserligen mellan
de olika deluppgifterna, men det var alltid bara ett lastfall som beaktades när strukturen
skulle dimensioneras.)
I denna Hemuppgift 3A (Hem3A) ska vi dimensionera fackverksstrukturer så att de blir optimala med hänsyn taget till flera olika lastfall. Visserligen appliceras bara ett i taget av de
givna lastfallen, men poängen är att fackverket måste dimensioneras så att spänningarna
i stängerna håller sig mellan givna gränser för vart och ett av dessa lastfall.
Vi använder samma beteckningar som i Hem2A, speciellt är x en vektor med de n st
stängernas tvärsnittsareor. Vidare är
p(1) , p(2) , . . . p(q) de givna lastvektorerna för de q olika lastfallen,
u(1) , u(2) , . . . u(q) motsvarande nodförskjutningvektorer och
f (1) , f (2) , . . . f (q) motsvarande stångkraftsvektorer.
Då kan problemet att minimera strukturens vikt under kravet att spänningarna inte blir
för stora skrivas på följande form, där variablerna är x, u(`) och f (`) .
Jämför formuleringen med problemet (7) i Hem2A:
minimera
n
X
ρLj xj
j=1
då
Rf (`) = p(`) ,
f (`)
f (`)
−f (`)
` = 1, . . . , q,
=
D(x)RT u(`) ,
` = 1, . . . , q
≤
σ max x,
` = 1, . . . , q
≤
σ max x,
` = 1, . . . , q
x ≥ 0.
1
(1)
Sid 2 av ??
Hemuppgift 3A, Strukturoptimering med hjälp av NLP
SF1861
Eftersom vi nu har fler än ett lastfall (q > 1) så kan vi inte längre ta bort de ickelinjära
bivillkoren f (`) = D(x)RT u(`) och hoppas på att i efterhand kunna bestämma vektorer
u(`) så att de borttagna bivillkoren blir uppfyllda. Det kommer inte att fungera! I stället
använder vi dessa bivillkor för att eliminera vektorerna f (`) ur problemformuleringen, så
att följande problem erhålls, där variablerna är x och u(`) , och där vi infört vektorn
L = (L1 , . . . , Ln )T med stängernas längder.
minimera
ρ LT x
då RD(x)RT u(`) = p(`) ,
D(x)RT u(`)
≤
σ max x,
` = 1, . . . , q,
` = 1, . . . , q
(2)
−D(x)RT u(`) ≤ σ max x, ` = 1, . . . , q
x ≥ 0.
För att underlätta lösningen inför vi nu mycket små positiva undre gränser ε > 0 på
alla tvärsnittsareor. Detta medför dels att styvhetsmatrisen K(x) = RD(x)RT alltid blir
positivt definit (och därmed ickesingulär), dels att tvärsnittsareorna xj kan divideras bort
i de ickelinjära olikhetsbivillkoren ovan, så att dessa blir linjära.
Vidare kan vi ta bort den konstanta faktorn ρ från målfunktionen, ty den påverkar inte
den optimala lösningen, och i stället minimera volymen i stället för massan.
Problemet kan då skrivas på följande form, där G är en n×n diagonalmatris med diagonalelementen E/Lj medan vektorn 1 består av n st 1:or.
minimera
då
LT x
K(x)u(`) = p(`) ,
` = 1, . . . , q,
GRT u(`)
≤
σ max 1,
` = 1, . . . , q
≤
σ max 1,
` = 1, . . . , q
−GRT u(`)
(3)
x ≥ ε 1.
Man kan reducera problemet ytterligare: Eftersom K(x) är positivt definit för alla x > 0 så
medför bivillkoren K(x)u(`) = p(`) att man kan behandla vektorerna u(`) som funktioner
av tvärnittsareavektorn x (formellt uttryckt u(`) (x) = K(x)−1 p(`) ).
Då erhålls följande problemformulering med x som enda variabelvektor:
minimera
då
LT x
GRT u(`) (x) ≤ σ max 1, ` = 1, . . . , q
−GRT u(`) (x) ≤ σ max 1, ` = 1, . . . , q
(4)
x ≥ ε 1.
För given vektor x så erhålls här vektorn u(`) (x) som den entydiga lösningen till det linjära
ekvationssystemet K(x)u(`) = p(`) . Priset vi får betala för denna reduktion av problemet
är alltså att vi får mer komplicerade funktionsevalueringar: För att kunna evaluera bivillkorsfunktionerna GRT u(`) (x), för givet x, krävs att vi löser ett ekvationssystem med q
st högerled p(`) . Observera att spänningsbivillkoren är ickelinjära eftersom funktionerna
u(`) (x) är ickelinjära i x. Även om styvhetsmatrisen K(x) är linjär i x så är inversen
K(x)−1 inte linjär i x.
SF1861
Hemuppgift 3A, Strukturoptimering med hjälp av NLP
Sid 3 av ??
Din uppgift är att lösa de ovanstående problemen (3) och (4) för några olika strukturer
och lastfall, med hjälp av Matlabs lösare fmincon. Skriv kommandot help fmincon på
kommandoraden i Matlab, så får du hjälp med hur man gör.
Sätt ε = 0.01 mm2 , och använd i övrigt samma numeriska värden som i Hem2A på de
olika konstanterna. (E, σ max , etc.)
Om du vill ha en tillåten startpunkt till respektive problem kan du beräkna en sådan på
följande sätt:
1. Sätt x̃ = 1 (dvs alla tvärsnittsareor = 1).
2. Beräkna motsvarande förskjutningsvektorer ũ(`) , ur K(x̃)ũ(`) = p(`) .
3. Beräkna motsvarande stångspänningvektorer σ̃ (`) ur σ̃ (`) = GRT ũ(`) .
(`)
(`)
4. Sätt x0 = t x̃ och u0 = (1/t)ũ(`) , där t = max{ |σ̃j | }/σ max .
j,`
(1)
(q)
Nu är (x0 , u0 , . . . , u0 ) en tillåten startpunkt till problemet (3), eller hur?,
medan x0 är en tillåten startpunkt till problemet (4).
De strukturer och lastfall du ska behandla är följande:
Fackverksproblem 1.
Fackverket med 10 stänger från Hem2A, nu med de båda lastvektorerna
p(1) = (0, 0, 0, 0, 0, 0, 0, −10)T och
p(2) = (0, 0, 0, 0, 0, −10, 0, 0)T .
Fackverket ska alltså dimensioneras så att det klarar att bära såväl en
vertikal last i nedre högra noden som en vertikal last i övre högra noden.
Fackverksproblem 2.
Fackverket med 10 stänger från Hem2A, nu med de båda lastvektorerna
p(1) = (p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 )T och
p(2) = (p3 , −p4 , p1 , −p2 , p7 , −p8 , p5 , −p6 )T ,
där pi = 10 − ni , med ni = den i:te siffran i ditt personnummer.
Fackverksproblem 3.
Fackverket med 15 stänger från Hem2A(c), nu med de tre lastvektorerna
p(1) = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, −10)T ,
p(2) = (0, 0, 0, 0, 0, 0, 0, −10, 0, 0, 0, 0)T och
p(3) = (0, 0, 0, −10, 0, 0, 0, 0, 0, 0, 0, 0)T .
Fackverksproblem 4.
Fackverket med 15 stänger från Hem2A(d), dvs fixerat i bägge ändarna,
nu med de två lastvektorerna
p(1) = (0, 0, 0, 0, 0, 0, 0, −10)T och
p(2) = (0, 0, 0, −10, 0, 0, 0, 0)T .
På nästa sida följer dina konkreta arbetsuppgifter.
Sid 4 av ??
Hemuppgift 3A, Strukturoptimering med hjälp av NLP
SF1861
(a). (1 bonuspoäng)
Lös Fackverksproblemen 1–4 ovan formulerade som problem (4), dvs med ickelinjära olikhetsbivillkor men inga likhetsbivillkor.
Du behöver inte själv beräkna derivator av målfunktion och bivillkor, det kan du låta
fmincon göra numeriskt. Ange därför, före anropet av fmincon, bland annat följande:
options = optimset(’GradObj’,’off’,’GradConstr’,’off’,...
’Display’,’iter’,’Diagnostics’,’on’);
Redovisa, för varje problem, dina erhållna optimala tvärsnittsareor dels i plotbilder, dels
i en tabell med n st rader och q+1 st kolumner:
en kolumn med de optimala tvärsnittsareorna,
en kolumn med spänningarna under första lastfallet,
en kolumn med spänningarna under andra lastfallet,
och (för Fackverksproblem 3)
en kolumn med spänningarna under tredje lastfallet.
Ange även antal funktionsevalueringar som fmincon behöver utföra.
(b). (1 bonuspoäng)
Lös Fackverksproblemen 1–4 ovan formulerade som problem (3), dvs med ickelinjära likhetsbivillkor och linjära olikhetsbivillkor.
Du kan även nu låta fmincon numeriskt beräkna derivator av målfunktion och bivillkor.
Redovisa dina erhållna tvärsnittsareor och spänningar i tabeller som i (a) ovan.
Ange även antal funktionsevalueringar som fmincon behöver utföra.
(c). (2 bonuspoäng)
Använd det FEM-program, skrivet i Matlab av Carl Dahlberg, som användes i kursen
“SE1025 FEM för ingenjörstillämpningar” tidigare i vår, för att med fmincon lösa Fackverksproblemen 1 och 2 ovan, formulerade på formen
minimera LT x
då
(`)
σj (x) ≤ σ max , j = 1, . . . , n, ` = 1, . . . , q
(`)
−σj (x) ≤ σ max , j = 1, . . . , n, ` = 1, . . . , q
xj
≥ ε,
(5)
j = 1, . . . , n,
(`)
där alltså stångspänningarna σj (x) ska beräknas mha ovannämnda FEM-program.
Även nu kan du låta fmincon beräkna derivator av målfunktion och bivillkor numeriskt.
Kommentera resultaten. Blir det samma optimala strukturer?
Lycka till!