Main
~~----~~

!!!! APM Python Tutorial

* [[Attach:twobar_apm_python.zip | APM Python Two Bar Files]]

~~----~~

!!!! APM MATLAB Tutorial

* [[Attach:twobar_apm_matlab.zip | APM MATLAB Two Bar Files]]

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

----

----

!!!! APM Python Tutorial

* [[Attach:twobar_apm_python.zip | APM Python Two Bar Files]]

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/ah-Cbrim93I" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

----

!!!! APM MATLAB Tutorial

* [[Attach:twobar_apm_matlab.zip | APM MATLAB Two Bar Files]]

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

GEKKO is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

%width=300px%Attach:gekko.png

----

!!!! Python (GEKKO) Solution

(:source lang=python:)

import numpy as np

# import gekko, pip install if needed

try:

from gekko import GEKKO

except:

# pip install gekko

import pip

pip.main(['install','gekko'])

from gekko import GEKKO

# create new model

m = GEKKO()

# declare model parameters

width = m.Param(value=60)

thickness = m.Param(value=0.15)

density = m.Param(value=0.3)

modulus = m.Param(value=30000)

load = m.Param(value=66)

# declare variables and initial guesses

height = m.Var(value=30.00,lb=10.0,ub=50.0)

diameter = m.Var(value=3.00,lb=1.0,ub=4.0)

weight = m.Var()

# intermediate variables with explicit equations

leng = m.Intermediate(m.sqrt((width/2)**2 + height**2))

area = m.Intermediate(np.pi * diameter * thickness)

iovera = m.Intermediate((diameter**2 + thickness**2)/8)

stress = m.Intermediate(load * leng / (2*area*height))

buckling = m.Intermediate(np.pi**2 * modulus \

* iovera / (leng**2))

deflection = m.Intermediate(load * leng**3 \

/ (2 * modulus * area * height**2))

# implicit equations

m.Equation(weight==2*density*area*leng)

m.Equation(weight < 24)

m.Equation(stress < 100)

m.Equation(stress < buckling)

m.Equation(deflection < 0.25)

# minimize weight

m.Obj(weight)

# solve optimization

m.solve() # remote=False for local solve

print ('')

print ('--- Results of the Optimization Problem ---')

print ('Height: ' + str(height.value))

print ('Diameter: ' + str(diameter.value))

print ('Weight: ' + str(weight.value))

## Generate a contour plot

# Import some other libraries that we'll need

# matplotlib and numpy packages must also be installed

import matplotlib

import numpy as np

import matplotlib.pyplot as plt

# Constants

pi = 3.14159

dens = 0.3

modu = 30000.0

load = 66.0

# Analysis variables

wdth = 60.0

thik = 0.15

# Design variables at mesh points

x = np.arange(10.0, 30.0, 2.0)

y = np.arange(1.0, 3.0, 0.3)

hght, diam = np.meshgrid(x, y)

# Equations and Constraints

leng = ((wdth/2.0)**2.0 + hght**2)**0.5

area = pi * diam * thik

iovera = (diam**2.0 + thik**2.0)/8.0

wght = 2.0 * dens * leng * area

strs = load * leng / (2.0 * area * hght)

buck = pi**2.0 * modu * iovera / (leng**2.0)

defl = load * leng**3.0 / (2.0*modu * area * hght**2.0)

# Create a contour plot

# Visit https://matplotlib.org/examples/pylab_examples/contour_demo.html

# for more examples and options for contour plots

plt.figure()

# Weight contours

CS = plt.contour(hght, diam, wght)

plt.clabel(CS, inline=1, fontsize=10)

# Stress<100

CS = plt.contour(hght, diam, strs,[100.0],colors='k',linewidths=[4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Deflection<0.25

CS = plt.contour(hght, diam, defl,[0.25],colors='b',linewidths=[4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Stress-Buckling<0

CS = plt.contour(hght, diam, strs-buck,[0.0],colors='r',linewidths=[4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Add some labels

plt.title('Two Bar Optimization Problem')

plt.xlabel('Height')

plt.ylabel('Diameter')

# Save the figure as a PNG

plt.savefig('contour1.png')

# Create a new figure to see more detail

plt.figure()

# Weight contours

CS = plt.contour(hght, diam, wght)

plt.clabel(CS, inline=1, fontsize=10)

# Stress<100

CS = plt.contour(hght, diam, strs,[90.0,100.0],colors='k',linewidths=[0.5, 4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Deflection<0.25

CS = plt.contour(hght, diam, defl,[0.22,0.25],colors='b',linewidths=[0.5, 4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Stress-Buckling<0

CS = plt.contour(hght, diam, strs-buck,[-5.0,0.0],colors='r',linewidths=[0.5, 4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Add some labels

plt.title('Two Bar Optimization Problem')

plt.xlabel('Height')

plt.ylabel('Diameter')

# Save the figure as a PNG

plt.savefig('contour2.png')

# Show the plots

plt.show()

(:sourceend:)
~~<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>~~

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

* [[Attach:twobar_apm_python.zip | APM Python Two Bar Files]]

* [[Attach:twobar_apm_matlab.zip | APM MATLAB Two Bar Files]]

----

!!!! Objective Function Plot

One part of the assignment asks you to select width and load as variables for a 3d optimal surface plot and plot the solution of the optimization problem to minimize deflection at each of the width / load combinations. This tutorial example shows how to do this same activity but for the alternative problem of minimizing weight.

* [[Attach:twobar_obj_plot.zip | Two Bar Objective Plot Files]]
~~Attach:collaborative50.png This assignment can be completed in collaboration with others. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].~~
~~<br>~~
~~* [[Attach:twobar_excel.pdf | Two Bar Excel Tutorial]]~~
~~----~~

This assignment can be completed as a collaborative Attach:collaborative50.png assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

----

----

This assignment can be completed as a collaborative Attach:collaborative50.png assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

----
~~[[Attach:twobar.pdf | Two Bar Assignment]]~~

## Two Bar Truss Design

## Main.TwoBarTruss History

Hide minor edits - Show changes to output

Changed lines 24-27 from:

!!!! Python ([[https://gekko.readthedocs.io/en/latest/|GEKKO]]) Solution

[[https://gekko.readthedocs.io/en/latest/|GEKKO]] is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

[[https://gekko.readthedocs.io/en/latest/|GEKKO]] is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

to:

!!!! Python ([[https://gekko.readthedocs.io/en/latest/|GEKKO]]) Solution

[[https://gekko.readthedocs.io/en/latest/|GEKKO]] is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

[[https://gekko.readthedocs.io/en/latest/|GEKKO]] is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

Changed line 180 from:

<iframe width="560" height="315" src="https://www.youtube.com/embed/ah-Cbrim93I" frameborder="0" allowfullscreen></iframe>

to:

<iframe width="560" height="315" src="https://www.youtube.com/embed/ah-Cbrim93I" frameborder="0" allowfullscreen></iframe>

Changed line 190 from:

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

to:

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

Changed line 202 from:

<iframe width="560" height="315" src="https://www.youtube.com/embed/GB0NYz-k8ZM?rel=0" frameborder="0" allowfullscreen></iframe>

to:

<iframe width="560" height="315" src="https://www.youtube.com/embed/GB0NYz-k8ZM?rel=0" frameborder="0" allowfullscreen></iframe>

Changed line 219 from:

dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';

to:

dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';

Changed lines 223-224 from:

<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

to:

<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

Deleted lines 19-24:

!!!! APM Python Tutorial

* [[Attach:twobar_apm_python.zip | APM Python Two Bar Files]]

Changed line 21 from:

<iframe width="560" height="315" src="https://www.youtube.com/embed/~~ah~~-~~Cbrim93I~~" frameborder="0" allowfullscreen></iframe>

to:

<iframe width="560" height="315" src="https://www.youtube.com/embed/KwELgUu1u-E" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

Deleted lines 23-34:

!!!! APM MATLAB Tutorial

* [[Attach:twobar_apm_matlab.zip | APM MATLAB Two Bar Files]]

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

----

Added lines 172-191:

----

!!!! APM Python Tutorial

* [[Attach:twobar_apm_python.zip | APM Python Two Bar Files]]

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/ah-Cbrim93I" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

----

!!!! APM MATLAB Tutorial

* [[Attach:twobar_apm_matlab.zip | APM MATLAB Two Bar Files]]

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

Changed lines 42-44 from:

!!!! Python (GEKKO) Solution

GEKKO is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

GEKKO is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

to:

!!!! Python ([[https://gekko.readthedocs.io/en/latest/|GEKKO]]) Solution

[[https://gekko.readthedocs.io/en/latest/|GEKKO]] is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

[[https://gekko.readthedocs.io/en/latest/|GEKKO]] is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

Added lines 43-46:

GEKKO is optimization software for mixed-integer and differential algebraic equations. It is coupled with large-scale solvers for linear, quadratic, nonlinear, and mixed integer programming (LP, QP, NLP, MILP, MINLP).

%width=300px%Attach:gekko.png

Changed line 103 from:

!!!! ~~Generate~~ Contour Plot (Python)

to:

!!!! Solution Contour Plot (Python)

Changed line 103 from:

!!!! ~~Python Generates ~~Contour ~~Plots~~

to:

!!!! Generate Contour Plot (Python)

Changed lines 99-105 from:

to:

(:sourceend:)

----

!!!! Python Generates Contour Plots

(:source lang=python:)

----

!!!! Python Generates Contour Plots

(:source lang=python:)

Changed lines 22-23 from:

!!!! Python Tutorial

to:

!!!! APM Python Tutorial

Changed lines 32-33 from:

!!!! MATLAB Tutorial

to:

!!!! APM MATLAB Tutorial

Added lines 39-177:

----

!!!! Python (GEKKO) Solution

(:source lang=python:)

import numpy as np

# import gekko, pip install if needed

try:

from gekko import GEKKO

except:

# pip install gekko

import pip

pip.main(['install','gekko'])

from gekko import GEKKO

# create new model

m = GEKKO()

# declare model parameters

width = m.Param(value=60)

thickness = m.Param(value=0.15)

density = m.Param(value=0.3)

modulus = m.Param(value=30000)

load = m.Param(value=66)

# declare variables and initial guesses

height = m.Var(value=30.00,lb=10.0,ub=50.0)

diameter = m.Var(value=3.00,lb=1.0,ub=4.0)

weight = m.Var()

# intermediate variables with explicit equations

leng = m.Intermediate(m.sqrt((width/2)**2 + height**2))

area = m.Intermediate(np.pi * diameter * thickness)

iovera = m.Intermediate((diameter**2 + thickness**2)/8)

stress = m.Intermediate(load * leng / (2*area*height))

buckling = m.Intermediate(np.pi**2 * modulus \

* iovera / (leng**2))

deflection = m.Intermediate(load * leng**3 \

/ (2 * modulus * area * height**2))

# implicit equations

m.Equation(weight==2*density*area*leng)

m.Equation(weight < 24)

m.Equation(stress < 100)

m.Equation(stress < buckling)

m.Equation(deflection < 0.25)

# minimize weight

m.Obj(weight)

# solve optimization

m.solve() # remote=False for local solve

print ('')

print ('--- Results of the Optimization Problem ---')

print ('Height: ' + str(height.value))

print ('Diameter: ' + str(diameter.value))

print ('Weight: ' + str(weight.value))

## Generate a contour plot

# Import some other libraries that we'll need

# matplotlib and numpy packages must also be installed

import matplotlib

import numpy as np

import matplotlib.pyplot as plt

# Constants

pi = 3.14159

dens = 0.3

modu = 30000.0

load = 66.0

# Analysis variables

wdth = 60.0

thik = 0.15

# Design variables at mesh points

x = np.arange(10.0, 30.0, 2.0)

y = np.arange(1.0, 3.0, 0.3)

hght, diam = np.meshgrid(x, y)

# Equations and Constraints

leng = ((wdth/2.0)**2.0 + hght**2)**0.5

area = pi * diam * thik

iovera = (diam**2.0 + thik**2.0)/8.0

wght = 2.0 * dens * leng * area

strs = load * leng / (2.0 * area * hght)

buck = pi**2.0 * modu * iovera / (leng**2.0)

defl = load * leng**3.0 / (2.0*modu * area * hght**2.0)

# Create a contour plot

# Visit https://matplotlib.org/examples/pylab_examples/contour_demo.html

# for more examples and options for contour plots

plt.figure()

# Weight contours

CS = plt.contour(hght, diam, wght)

plt.clabel(CS, inline=1, fontsize=10)

# Stress<100

CS = plt.contour(hght, diam, strs,[100.0],colors='k',linewidths=[4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Deflection<0.25

CS = plt.contour(hght, diam, defl,[0.25],colors='b',linewidths=[4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Stress-Buckling<0

CS = plt.contour(hght, diam, strs-buck,[0.0],colors='r',linewidths=[4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Add some labels

plt.title('Two Bar Optimization Problem')

plt.xlabel('Height')

plt.ylabel('Diameter')

# Save the figure as a PNG

plt.savefig('contour1.png')

# Create a new figure to see more detail

plt.figure()

# Weight contours

CS = plt.contour(hght, diam, wght)

plt.clabel(CS, inline=1, fontsize=10)

# Stress<100

CS = plt.contour(hght, diam, strs,[90.0,100.0],colors='k',linewidths=[0.5, 4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Deflection<0.25

CS = plt.contour(hght, diam, defl,[0.22,0.25],colors='b',linewidths=[0.5, 4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Stress-Buckling<0

CS = plt.contour(hght, diam, strs-buck,[-5.0,0.0],colors='r',linewidths=[0.5, 4.0])

plt.clabel(CS, inline=1, fontsize=10)

# Add some labels

plt.title('Two Bar Optimization Problem')

plt.xlabel('Height')

plt.ylabel('Diameter')

# Save the figure as a PNG

plt.savefig('contour2.png')

# Show the plots

plt.show()

(:sourceend:)

Added line 49:

<iframe width="560" height="315" src="https://www.youtube.com/embed/GB0NYz-k8ZM?rel=0" frameborder="0" allowfullscreen></iframe>

Deleted line 44:

Added lines 43-46:

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

Added lines 21-23:

* [[Attach:twobar_apm_python.zip | APM Python Two Bar Files]]

Added lines 29-31:

* [[Attach:twobar_apm_matlab.zip | APM MATLAB Two Bar Files]]

Added lines 29-36:

----

!!!! Objective Function Plot

One part of the assignment asks you to select width and load as variables for a 3d optimal surface plot and plot the solution of the optimization problem to minimize deflection at each of the width / load combinations. This tutorial example shows how to do this same activity but for the alternative problem of minimizing weight.

* [[Attach:twobar_obj_plot.zip | Two Bar Objective Plot Files]]

Added line 15:

* [[Attach:twobar_matlab.pdf | Two Bar FMINCON MATLAB Tutorial]]

Changed line 17 from:

* [[Attach:twobar_~~matlab~~.pdf | Two Bar ~~FMINCON MATLAB~~ Tutorial]]

to:

* [[Attach:twobar_mathematica.pdf | Two Bar Mathematica Tutorial]]

Changed line 40 from:

var disqus_shortname = '~~Two_Bar_Truss_Optimization~~'; // required: replace example with your forum shortname

to:

var disqus_shortname = 'apmonitor'; // required: replace example with your forum shortname

Changed line 40 from:

var disqus_shortname = 'Two~~ ~~Bar~~ ~~Truss~~ ~~Optimization'; // required: replace example with your forum shortname

to:

var disqus_shortname = 'Two_Bar_Truss_Optimization'; // required: replace example with your forum shortname

Changed lines 30-51 from:

to:

Attach:collaborative50.png This assignment can be completed in collaboration with others. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

----

----

(:html:)

<div id="disqus_thread"></div>

<script type="text/javascript">

/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */

var disqus_shortname = 'Two Bar Truss Optimization'; // required: replace example with your forum shortname

/* * * DON'T EDIT BELOW THIS LINE * * */

(function() {

var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;

dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';

(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);

})();

</script>

<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

(:htmlend:)

----

----

(:html:)

<div id="disqus_thread"></div>

<script type="text/javascript">

/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */

var disqus_shortname = 'Two Bar Truss Optimization'; // required: replace example with your forum shortname

/* * * DON'T EDIT BELOW THIS LINE * * */

(function() {

var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;

dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js';

(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);

})();

</script>

<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>

<a href="https://disqus.com" class="dsq-brlink">comments powered by <span class="logo-disqus">Disqus</span></a>

(:htmlend:)

Added line 19:

!!!! Python Tutorial

Changed lines 22-25 from:

to:

(:htmlend:)

!!!! MATLAB Tutorial

(:html:)

!!!! MATLAB Tutorial

(:html:)

Added lines 21-22:

<br>

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

<iframe width="560" height="315" src="https://www.youtube.com/embed/uOTdLfvgYHU" frameborder="0" allowfullscreen></iframe>

Added lines 19-22:

(:html:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/ah-Cbrim93I" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

<iframe width="560" height="315" src="https://www.youtube.com/embed/ah-Cbrim93I" frameborder="0" allowfullscreen></iframe>

(:htmlend:)

Changed line 24 from:

Attach:collaborative50.png This assignment can be completed in collaboration with others. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

to:

Attach:collaborative50.png This assignment can be completed in collaboration with others. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

Changed lines 13-14 from:

* [[Attach:twobar_~~apmonitor~~.pdf | Two Bar APM MATLAB Tutorial]]

to:

* [[Attach:twobar_apm_matlab.pdf | Two Bar APM MATLAB Tutorial]]

* [[Attach:twobar_apm_python.pdf | Two Bar APM Python Tutorial]]

* [[Attach:twobar_apm_python.pdf | Two Bar APM Python Tutorial]]

Added line 14:

* [[Attach:twobar_isight.pdf | Two Bar Isight Tutorial]]

Changed lines 13-14 from:

* [[Attach:twobar_apmonitor.pdf | Two Bar ~~APMonitor~~ Tutorial]]

* [[Attach:twobar_matlab.pdf | Two Bar MATLAB Tutorial]]

* [[Attach:twobar_matlab.pdf | Two Bar MATLAB Tutorial]]

to:

* [[Attach:twobar_apmonitor.pdf | Two Bar APM MATLAB Tutorial]]

* [[Attach:twobar_matlab.pdf | Two Bar FMINCON MATLAB Tutorial]]

* [[Attach:twobar_matlab.pdf | Two Bar FMINCON MATLAB Tutorial]]

Deleted line 13:

Changed lines 11-16 from:

This introductory assignment is designed as a means of demonstrating the optimization capabilities of a number of software packages. Below are tutorials for solving this problem with a number of software tools.

to:

This introductory assignment is designed as a means of demonstrating the optimization capabilities of a number of software packages. Below are tutorials for solving this problem with a number of software tools. Below are a few step-by-step tutorials.

* [[Attach:twobar_apmonitor.pdf | Two Bar APMonitor Tutorial]]

* [[Attach:twobar_excel.pdf | Two Bar Excel Tutorial]]

* [[Attach:twobar_matlab.pdf | Two Bar MATLAB Tutorial]]

* [[Attach:twobar_optdesX.pdf | Two Bar OptdesX Tutorial]]

* [[Attach:twobar_apmonitor.pdf | Two Bar APMonitor Tutorial]]

* [[Attach:twobar_excel.pdf | Two Bar Excel Tutorial]]

* [[Attach:twobar_matlab.pdf | Two Bar MATLAB Tutorial]]

* [[Attach:twobar_optdesX.pdf | Two Bar OptdesX Tutorial]]

Changed line 14 from:

Attach:collaborative50.png This assignment can be completed ~~as a collaborative assignment~~. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

to:

Attach:collaborative50.png This assignment can be completed in collaboration with others. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

Changed line 1 from:

(:title Two Bar ~~Optimization Problem~~:)

to:

(:title Two Bar Truss Design:)

Changed line 14 from:

This assignment can be completed as a collaborative~~ Attach:collaborative50.png~~ assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

to:

Attach:collaborative50.png This assignment can be completed as a collaborative assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

Deleted lines 4-7:

This assignment can be completed as a collaborative Attach:collaborative50.png assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

----

Changed lines 11-14 from:

This introductory assignment is designed as a means of demonstrating the optimization capabilities of a number of software packages. Below are tutorials for solving this problem with a number of software tools.

to:

This introductory assignment is designed as a means of demonstrating the optimization capabilities of a number of software packages. Below are tutorials for solving this problem with a number of software tools.

----

This assignment can be completed as a collaborative Attach:collaborative50.png assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

----

This assignment can be completed as a collaborative Attach:collaborative50.png assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

Added lines 4-7:

----

This assignment can be completed as a collaborative Attach:collaborative50.png assignment. Additional guidelines on individual, collaborative, and group assignments are provided under the [[Main/CourseStandards | Expectations link]].

----

Added lines 7-8:

[[Attach:twobar.pdf | Two Bar Assignment]]

Changed line 11 from:

to:

This introductory assignment is designed as a means of demonstrating the optimization capabilities of a number of software packages. Below are tutorials for solving this problem with a number of software tools.

Added lines 1-9:

(:title Two Bar Optimization Problem:)

(:keywords nonlinear, optimization, engineering optimization, two-bar optimization, engineering design, interior point, active set, differential, algebraic, modeling language, university course:)

(:description Engineering design of a two-bar structure to support a load. Optimization principles are used to design the system.:)

A design of the truss is specified by a unique set of values for the analysis variables: height (H), diameter, (d), thickness (t), separation distance (B), modulus of elasticity (E), and material density (rho). Suppose we are interested in designing a truss that has a minimum weight, will not yield, will not buckle, and does not deflect "excessively,” and so we decide our model should calculate weight, stress, buckling stress and deflection.

Attach:twobar.png

[[Attach:twobar.pdf | Two Bar Assignment]]

(:keywords nonlinear, optimization, engineering optimization, two-bar optimization, engineering design, interior point, active set, differential, algebraic, modeling language, university course:)

(:description Engineering design of a two-bar structure to support a load. Optimization principles are used to design the system.:)

A design of the truss is specified by a unique set of values for the analysis variables: height (H), diameter, (d), thickness (t), separation distance (B), modulus of elasticity (E), and material density (rho). Suppose we are interested in designing a truss that has a minimum weight, will not yield, will not buckle, and does not deflect "excessively,” and so we decide our model should calculate weight, stress, buckling stress and deflection.

Attach:twobar.png

[[Attach:twobar.pdf | Two Bar Assignment]]