<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel rdf:about="https://community.wolfram.com">
    <title>Community RSS Feed</title>
    <link>https://community.wolfram.com</link>
    <description>RSS Feed for Wolfram Community showing any discussions tagged with Industrial Engineering sorted by active.</description>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/3771885" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2030260" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2399810" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1029674" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/2069703" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/503981" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1907652" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1566977" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1173244" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1163322" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/1054178" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/498745" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/884936" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/773256" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/745784" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/556117" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/552520" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/552479" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/547687" />
        <rdf:li rdf:resource="https://community.wolfram.com/groups/-/m/t/538452" />
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/3771885">
    <title>Efficiency of a heating System with and without bypasses</title>
    <link>https://community.wolfram.com/groups/-/m/t/3771885</link>
    <description>I conducted a study on the energy efficiency of a heating system with bypasses in a row house community with the aim of convincing the co-owners that the bypasses between the supply and return lines need to be removed. However, since most of them aren’t familiar with math and physics&amp;#x2014;and therefore can’t really evaluate the study&amp;#x2014;I thought there might be some engineers here who could share their opinion on it, as a sort of endorsement. I would then send the co-owners the link to this forum. Maybe that could help convince them. So, what do you think of this study?</description>
    <dc:creator>Ulrich Utiger</dc:creator>
    <dc:date>2026-08-01T20:17:53Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2030260">
    <title>[WSS20] ThermodynamicCycle: for parameters &amp;amp; properties at each state</title>
    <link>https://community.wolfram.com/groups/-/m/t/2030260</link>
    <description>![enter image description here][1]&#xD;
&#xD;
&amp;amp;[Wolfram Notebook][2]&#xD;
&#xD;
&#xD;
  [1]: https://community.wolfram.com//c/portal/getImageAttachment?filename=CapturadeTela2020-11-20a%CC%80s18.42.07.png&amp;amp;userId=2029333&#xD;
  [2]: https://www.wolframcloud.com/obj/64ef0cca-d762-4a13-81fa-609012f78f17</description>
    <dc:creator>Gino Andrade</dc:creator>
    <dc:date>2020-07-14T17:20:46Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2399810">
    <title>The problem was solved, I mistyped something!</title>
    <link>https://community.wolfram.com/groups/-/m/t/2399810</link>
    <description>Sorry! i don&amp;#039;t know how to delete this post.</description>
    <dc:creator>Max Brown</dc:creator>
    <dc:date>2021-11-03T18:55:20Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1029674">
    <title>Use SPI protocol with Arduino &amp;amp; ADC?</title>
    <link>https://community.wolfram.com/groups/-/m/t/1029674</link>
    <description>Hi, I&amp;#039;m interested in how I use SPI protocol.&#xD;
In Mathematics documentation has information that might somehow use the SPI library in Arduino.&#xD;
I have an Arduino Uno, and I want to connect ADC such as MAX 6675, with SPI protocol.&#xD;
MAX 6675 is the ADC for temperature measurement using SPI protocol for sharing information, and there are several skeches to gather information from it.&#xD;
&#xD;
I can not imagine how.&#xD;
&#xD;
I am interested in whether someone has sample code to work with SPI protocol.</description>
    <dc:creator>Bohdan Romanchuk</dc:creator>
    <dc:date>2017-03-12T23:08:59Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/2069703">
    <title>Geometry of the Progressing Cavity or Moineau Pump</title>
    <link>https://community.wolfram.com/groups/-/m/t/2069703</link>
    <description>During all of history, people have looked for better ways to move water from one place to the other. [This F.A.O. website][1] gives an overview of the many screw pumps invented over the centuries. Some interesting examples are the [Archimedes screw pump][2] (left) from the 3rd century BC and the  [Moineau pump][3] (right) patented in 1930.&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
The Moineau pump is a significant improvement over the Archimedes screw. The pump is called a &amp;#034;progressing cavity&amp;#034; pump. This means the pumped fluid is moving, without deformation through the pump .This leads to many applications in the food- and petroleum industry or where where exactly metered quantities are required.&#xD;
The Moineau pump is also a gem of 3D geometry for both its shape and its hypocycloid transmission. All of this makes it a  perfect exercise to be explored with Mathematica! We look in detail at the two significant features of the pump: geometry and transmission. At the end, we put the two together in a working pump!&#xD;
&#xD;
**1. Geometry of the pump**&#xD;
&#xD;
The Moineau pump consists of two helical objects that can be defined as implicit regions:&#xD;
&#xD;
1. A static, hollow, helical casing with a stadium shaped cross section, called the **stator**. &#xD;
&#xD;
        stator = ImplicitRegion[&#xD;
                Element[{x, y}, Disk[{0, 0}, 5]] &amp;amp;&amp;amp; &#xD;
                Not[Element[{x, y}, &#xD;
                StadiumShape[2 {AngleVector[.5 z], AngleVector[.5 z + Pi]}, &#xD;
                2]]], {{x, -5, 5}, {y, 0, 5}, {z, 0, 12 Pi}}];&#xD;
                RegionPlot3D[stator, PlotPoints -&amp;gt; 50, &#xD;
                PlotStyle -&amp;gt; Lighter[Gray, .25], Boxed -&amp;gt; False, &#xD;
                ViewVertical -&amp;gt; {1, 0, 0}]&#xD;
&#xD;
This is the complete stator and a longitudinal cross cut showing an opened half of the stator:&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
2, Inside the stator is the **rotor** or a rotating helix with a circular cross section and with a pitch half that of the stator.&#xD;
&#xD;
        RegionPlot3D[{stator, rotor}, PlotPoints -&amp;gt; 50, &#xD;
         PlotStyle -&amp;gt; {Directive[Opacity[.99], Lighter[Gray, .05]], &#xD;
           Lighter[Red, .25]}, ViewVertical -&amp;gt; {1, 0, 0}, Boxed -&amp;gt; False]&#xD;
&#xD;
This shows how the rotor fits perfectly within the stator.&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
3, The **cavities** enclosed between stator and rotor are lenticular in shape and during operation, they will move in a helical motion and stay undeformed from inlet to outlet providing a uniform flow.&#xD;
&#xD;
&#xD;
        cavity = ImplicitRegion[&#xD;
           Element[{x, y}, &#xD;
             StadiumShape[2 {AngleVector[.5 z], AngleVector[.5 z + Pi]}, 2]] &amp;amp;&amp;amp;&#xD;
             Not[Element[{x, y}, Disk[{1, 0} + AngleVector[z], 2]]], {{x, -4, &#xD;
             4}, {y, -4, 4}, {z, 0, 12 Pi}}];&#xD;
        RegionPlot3D[cavity, PlotStyle -&amp;gt; Lighter[Green, .5], &#xD;
         ViewVertical -&amp;gt; {1, 0, 0}, Boxed -&amp;gt; False]&#xD;
&#xD;
![enter image description here][7]&#xD;
&#xD;
    Show[cav, &#xD;
     RegionPlot3D[stator, PlotPoints -&amp;gt; 50, &#xD;
      PlotStyle -&amp;gt; Lighter[Gray, .25], Boxed -&amp;gt; False, &#xD;
      ViewVertical -&amp;gt; {1, 0, 0}], &#xD;
     RegionPlot3D[rotor, PlotPoints -&amp;gt; 50, PlotStyle -&amp;gt; Lighter[Red, .25],&#xD;
       ViewVertical -&amp;gt; {1, 0, 0}, Boxed -&amp;gt; False]]&#xD;
&#xD;
his shows the cavities wrapped around the rotor (top) and how rotor and cavities fill up the space in the stator (bottom). For clarity, only half of the stator is shown:&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
**2. Hypocycloid Transmission**&#xD;
&#xD;
The rotor has to perform a hypocycloid rotation inside the stator. A point on a circle rolling inside another circle traces a hypocycloid. If the radius of rolling circle is half the radius of the larger circle, the hypocycloid becomes a straight line. If the tracing point is the center of another circle, this circle will move inside a stadium shape . Since the pump cross section is a stadium shape, this is exactly the mechanism we want.&#xD;
&#xD;
    Animate[Module[{ring, drive}, &#xD;
      ring = ParametricPlot3D[{2.01 Cos[u], 2.01 Sin[u], v}, {u, 0, &#xD;
          2 Pi}, {v, -.98, 0}, PlotStyle -&amp;gt; Green, PlotPoints -&amp;gt; 25, &#xD;
         PlotTheme -&amp;gt; &amp;#034;ThickSurface&amp;#034;][[1]]; &#xD;
      drive = {{Lighter[Blue, .6], Cylinder[{{1, 0, -1}, {1, 0, 0}}, 1]}, &#xD;
        Yellow, Cylinder[{{2, 0, 0}, {2, 0, .5}}, &#xD;
         1.75], {Lighter[Red, .15], &#xD;
         Cuboid[{3.75, -.1, -.075}, {1.75, .1, 0.525}], &#xD;
         Cuboid[{.9, -.1, -1.025}, {2, .1, +0.225}]}, {Lighter[&#xD;
          Yellow, .15], Cylinder[{{1, 0, 0}, {1, 0, .15}}, .35]}}; &#xD;
      Graphics3D[{ring, &#xD;
        Rotate[Rotate[{drive}, -phi, {0, 0, 1}, {1, 0, 0}], &#xD;
         phi/2, {0, 0, 1}]}, PlotRange -&amp;gt; {{-4, 4}, {-3, 3}, {-2, 2}}, &#xD;
       Boxed -&amp;gt; False]], {phi, 0, 4 Pi, .01}]&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
**3. Together as a working pump**&#xD;
&#xD;
We assemble the drive transmission with the pump and we see that the hypocycloid  movement of the rotor fits exactly inside the stator.&#xD;
&#xD;
    Animate[DynamicModule[{ring, drive, statorBody, rotor}, &#xD;
      statorBody = &#xD;
       RegionPlot3D[&#xD;
         ImplicitRegion[&#xD;
          Element[{x, y}, Disk[{0, 0}, 4.5]] &amp;amp;&amp;amp; &#xD;
           Not[Element[{x, y}, &#xD;
             StadiumShape[2 {AngleVector[.5 z], AngleVector[.5 z + Pi]}, &#xD;
              2]]], {{x, -5, 5}, {y, 0, 5}, {z, 0, 12 Pi}}], &#xD;
         PlotPoints -&amp;gt; 50, &#xD;
         PlotStyle -&amp;gt; Directive[Opacity[.99], Lighter[Gray, .05]], &#xD;
         Boxed -&amp;gt; False][[1]]; &#xD;
      rotor[t_] := &#xD;
       RegionPlot3D[&#xD;
         ImplicitRegion[&#xD;
          Element[{x, y}, &#xD;
           Disk[{Cos[z + phi/2] + Cos[phi/2], 2 Cos[(z + t)/2] Sin[z/2]}, &#xD;
            2]], {{x, -4., 4.}, {y, -4, 4.}, {z, -.05, 12 Pi}}], &#xD;
         PlotStyle -&amp;gt; Lighter[Red, .35], Boxed -&amp;gt; False][[1]]; &#xD;
      ring = ParametricPlot3D[{2.01 Cos[u], 2.01 Sin[u], v}, {u, 0, &#xD;
          2 Pi}, {v, -.98, 0}, PlotStyle -&amp;gt; Green, PlotPoints -&amp;gt; 25, &#xD;
         PerformanceGoal -&amp;gt; &amp;#034;Quality&amp;#034;, PlotTheme -&amp;gt; &amp;#034;ThickSurface&amp;#034;][[1]]; &#xD;
      drive = {{Lighter[Blue, .6], Cylinder[{{1, 0, -1}, {1, 0, 0}}, 1]}, &#xD;
        Yellow, Cylinder[{{2, 0, 0}, {2, 0, .15}}, 1.75], {Yellow, &#xD;
         Cuboid[{3.75, -.1, -.075}, {1.75, .1, 0.525}], Red, &#xD;
         Cuboid[{.9, -.1, -1.025}, {2, .1, +0.225}]}, {Lighter[&#xD;
          Yellow, .15], Cylinder[{{1, 0, 0}, {1, 0, .15}}, 0.35]}}; &#xD;
      Graphics3D[{ring, statorBody, rotor[phi], &#xD;
        Rotate[Rotate[{drive}, phi, {0, 0, 1}, {1, 0, 0}], -(phi/2), {0, &#xD;
          0, 1}]}, Boxed -&amp;gt; False]], {phi, 0, -4 Pi, -.01}] &#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
This is a ball moving through the pump showing the movement of fluid through the pump:&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
The trapped fluid will completely fill the cavities and this shows the pumping movement from left to right as the rotor rotates inside the stator in a hypocycloid motion:&#xD;
&#xD;
    cavity[phi_] := &#xD;
     RegionPlot3D[&#xD;
       ImplicitRegion[&#xD;
        Element[{x, y}, &#xD;
          StadiumShape[{{2 Cos[0.5` z], &#xD;
             2 Sin[0.5 z]}, {-2 Cos[0.5 z], -2 Sin[0.5 z]}}, 2]] &amp;amp;&amp;amp; &#xD;
         Not[Element[{x, y}, &#xD;
           Disk[{Cos[z + -phi/2] + Cos[-phi/2], &#xD;
             2 Cos[(z - phi)/2] Sin[z/2]}, 2.]]], {{x, -4., 4.}, {y, -4., &#xD;
          4.}, {z, 0, 12 Pi}}], PlotStyle -&amp;gt; Lighter[Green, .5]] // First&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
For those interested, here is a [short YouTube][13] of a real working pump in action:&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
&#xD;
  [1]: http://www.fao.org/tempref/docrep/fao/010/ah810e/AH810E06.pdf&#xD;
  [2]: https://en.wikipedia.org/wiki/Archimedes%27_screw&#xD;
  [3]: https://en.wikipedia.org/wiki/Progressive_cavity_pump&#xD;
  [4]: https://community.wolfram.com//c/portal/getImageAttachment?filename=introscrewpumps.gif&amp;amp;userId=68637&#xD;
  [5]: https://community.wolfram.com//c/portal/getImageAttachment?filename=statorsoloduo.png&amp;amp;userId=68637&#xD;
  [6]: https://community.wolfram.com//c/portal/getImageAttachment?filename=statorrotorduo.png&amp;amp;userId=68637&#xD;
  [7]: https://community.wolfram.com//c/portal/getImageAttachment?filename=rotatingcavities.gif&amp;amp;userId=68637&#xD;
  [8]: https://community.wolfram.com//c/portal/getImageAttachment?filename=assemblyduo.png&amp;amp;userId=68637&#xD;
  [9]: https://community.wolfram.com//c/portal/getImageAttachment?filename=3404hypopumpdrive.gif&amp;amp;userId=68637&#xD;
  [10]: https://community.wolfram.com//c/portal/getImageAttachment?filename=statorrotor.gif&amp;amp;userId=68637&#xD;
  [11]: https://community.wolfram.com//c/portal/getImageAttachment?filename=statorrotorballl.gif&amp;amp;userId=68637&#xD;
  [12]: https://community.wolfram.com//c/portal/getImageAttachment?filename=completeset.gif&amp;amp;userId=68637&#xD;
  [13]: https://www.youtube.com/watch?v=FX97BUQbD-c&#xD;
  [14]: https://community.wolfram.com//c/portal/getImageAttachment?filename=realpump-2.png&amp;amp;userId=68637</description>
    <dc:creator>Erik Mahieu</dc:creator>
    <dc:date>2020-09-02T14:35:58Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/503981">
    <title>Designed Experiment Support</title>
    <link>https://community.wolfram.com/groups/-/m/t/503981</link>
    <description>Mathematica does not seem to have support for Designed Experiments.&#xD;
&#xD;
Does anyone know if there are plans for this capability in future versions ?&#xD;
&#xD;
http://asq.org/learn-about-quality/data-collection-analysis-tools/overview/design-of-experiments.html</description>
    <dc:creator>Steve M</dc:creator>
    <dc:date>2015-05-26T14:44:07Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1907652">
    <title>Finite Elements FEM of a tea cup</title>
    <link>https://community.wolfram.com/groups/-/m/t/1907652</link>
    <description>Dear All, I recently saw a very nice example for the calculation of the Eigen-frequency of a tea cup, which made nice use of various Mathematica features, e.g. recording the sound on an iPhone and analyzing the audio. I would be very grateful, if somebody could provide me with a reference either here or or elsewhere. Thank you.</description>
    <dc:creator>Ernst H.K. Stelzer</dc:creator>
    <dc:date>2020-03-25T12:45:46Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1566977">
    <title>Implementation of topology optimization algorithms in Wolfram Mathematica</title>
    <link>https://community.wolfram.com/groups/-/m/t/1566977</link>
    <description>----------&#xD;
&#xD;
&#xD;
## One year ago ##&#xD;
One year ago I posted my first [publication][1] about implementation the topology optimization algorithms in Wolfram Mathematica by using my own finite element method. I want to continue this post by presenting new results, which I received during year.&#xD;
&#xD;
&#xD;
----------&#xD;
&#xD;
&#xD;
## Introduction ##&#xD;
It is really important problem in aircraft and spacecraft engineering. Why? Because the main goal of using topology optimization algorithms in such spheres is a decreasing the weight of any construction. As example - full optimization of the aircraft wing:![enter image description here][2]&#xD;
Results of this optimization presented by Niels Aage, Erik Andreassen, Boyan S. Lazarov and Ole Sigmund in their paper [&amp;#034;Giga-voxel computational morphogenesis for&#xD;
structural design&amp;#034;][3]. They achieived the 20-40% saving of weight with saving the durability with using SIMP (Solid Isotropical Material with Penalization) method. It is incredible result because of it is the first paper about optimizing object of such scale. It is important to say that now it is not fantastic idea to optimize multiscale objects or object with huge amount of components. Many commercial products realized their own algorithms.&#xD;
&#xD;
&#xD;
----------&#xD;
## What did I do? ##&#xD;
&#xD;
 - SIMP 2D algorithm (not my own)&#xD;
 - SIMP 2D modification (my own realization by **FindMinumum** function, but not effective in comparison with traditional algorithm, but I can use any type of elements)&#xD;
 - SIMP 3D algoritm (not my own)&#xD;
 - Level-set 2D algorithm (not my own)&#xD;
 - Level-set 3D algorithm based on 2D (my own)&#xD;
 - Modifications in methods for better quality of solutions (my own)&#xD;
&#xD;
SIMP 3D algorithm in Matlab was written by Kai Liu and Andres Tovar in paper [&amp;#034;An efficient 3D topology optimization code written in MATLAB&amp;#034;][4]. It should be mentioned that [Ole Sigmund][5] and [Martin Philip Bendsoe][6] were first men who published effective numerical algorithm of first topology optimization algorithms.&#xD;
&#xD;
Level-set 2D algorithm was written by Vivien J. Challis in paper [&amp;#034;A discrete level-set topology optimization code written in MATLAB&amp;#034;][7].&#xD;
&#xD;
It was a little sad that most of realizations of topology optimization algorithm were written in MATLAB. I found only one implementation of SIMP method in Wolfram Mathematica written by Vladimir Uskov. &#xD;
&#xD;
&#xD;
----------&#xD;
## SIMP ##&#xD;
&#xD;
So I realized these algorithms in Wolfram Mathematica. Both of them have a simple implementation of FEM. In 2D case we have quad elements with first order interpolation, and in 3D case - hexahedron elements with first order interpolation. It should be mentioned that also I realized not effective topology optimization algorithm based on Wolfram Mathematica function **FindMinimum** and **NDSolve\`FEM\`** module in Mathematica. This function has a solver for constrained optimization problem based on Interior point method of Narendra Karmarkar. Here some solutions of traditional topology optimization problem I received by using this function:&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
Graphical formulation of topology optimization problem.&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
First order element with first order penalty function&#xD;
&#xD;
![enter image description here][10]&#xD;
&#xD;
Second order element with first order penalty function&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
Second order element with second order penalty function&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
Second order quad element with second order penalty function&#xD;
&#xD;
All results and code you can look on my [GitHub][13] page in file **TopOpt2.nb**.&#xD;
&#xD;
SIMP 3D implementation results you can look below:&#xD;
&#xD;
![enter image description here][14]&#xD;
&#xD;
Algorithm realization you can look also on my [GitHub][15] page in file **SIMP3D.nb**.&#xD;
&#xD;
&#xD;
----------&#xD;
## Level-set ##&#xD;
&#xD;
I translated the educational code of Vivien J. Challis from MATLAB code to Wolfram Mathematica with saving the names of variables for better understanding by my readers. You can look all meanings of all variables in his publication [&amp;#034;A discrete level-set topology optimization code written in MATLAB&amp;#034;][16]. I decided that it will be good to make an animation for any future user of level-set topology optimization for clear understanding of the idea:&#xD;
&#xD;
![enter image description here][17]&#xD;
&#xD;
Here we can see the how we receive the solution of problem by level-set algorithm. It is interesing that the same method is used for receiving 3D model from Magnetic resonance imaging. Hamilton-Jacobi equation and volume constraints, which describe our optimization problem define by itself 3D surface in 2D case problem. In 3D problem it will be 4D surface. And algorithm only move the plane through this surface until it receives the correct solution. Below 3D case is presented:&#xD;
&#xD;
![enter image description here][18]&#xD;
&#xD;
Here you can see the possible solution of 3D case problem. But the main difference between SIMP and Level-set is a possibility to modify internal domain. Without topology sensitivites in 2D and 3D level-set method - internal domain modification forbidded. We can make an initial hole inside the body for overwhelming this forbid. FEM implementation of voxel mesh was taken from paper Kai Liu and Andres Tovar. Idea of realization 3D Level-set was taken from paper Vivien J. Challis. In my research I tried to change the algorithm of satisfying constrained optimization from Lagrange multiplier method to something heuristic algorithm. The main Idea was avoiding of seeking right values of Lagrange multipliers. Standard and modificated algorithms were realized and compared. I received the longer convergence of algorithm, but I need only 1 run for any optimization problem. Standard and modificated realization and comparison you also can look on [GitHub][13] page in file **Level-set3D.nb**.&#xD;
&#xD;
&#xD;
----------&#xD;
## Further Exploration ##&#xD;
Now is appeared a new implementation of Level-set algorithm based on reaction-diffusion equation. The main advantage of this is an independence level-set function on nucleation process. Possibly all implementations will be united in mini-extension of Wolfram Mathematica.&#xD;
&#xD;
&#xD;
----------&#xD;
## Acknowledgements ##&#xD;
I want to thank Dr. Vivien Challis from The University of Queensland for clear explanations and helpful conversation about 3D Level-set method implementation.&#xD;
&#xD;
  [1]: https://community.wolfram.com/groups/-/m/t/1163322&#xD;
  [2]: https://community.wolfram.com//c/portal/getImageAttachment?filename=%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [3]: https://www.nature.com/articles/nature23911&#xD;
  [4]: https://link.springer.com/article/10.1007/s00158-014-1107-x&#xD;
  [5]: http://www.dtu.dk/english/service/phonebook/person?id=2278&#xD;
  [6]: https://www.dtu.dk/english/service/phonebook/person?id=165&amp;amp;tab=1&#xD;
  [7]: https://link.springer.com/article/10.1007/s00158-009-0430-0&#xD;
  [8]: https://community.wolfram.com//c/portal/getImageAttachment?filename=10361%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [9]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1552%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [10]: https://community.wolfram.com//c/portal/getImageAttachment?filename=9214%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [11]: https://community.wolfram.com//c/portal/getImageAttachment?filename=2031%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [12]: https://community.wolfram.com//c/portal/getImageAttachment?filename=1927%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA.PNG&amp;amp;userId=1083954&#xD;
  [13]: https://github.com/AndreyKrotkikh/TopologyOptimization&#xD;
  [14]: https://community.wolfram.com//c/portal/getImageAttachment?filename=animate2.gif&amp;amp;userId=1083954&#xD;
  [15]: https://github.com/AndreyKrotkikh/TopologyOptimization&#xD;
  [16]: https://link.springer.com/article/10.1007/s00158-009-0430-0&#xD;
  [17]: https://community.wolfram.com//c/portal/getImageAttachment?filename=animate.gif&amp;amp;userId=1083954&#xD;
  [18]: https://community.wolfram.com//c/portal/getImageAttachment?filename=animate3.gif&amp;amp;userId=1083954</description>
    <dc:creator>Andrey Krotkikh</dc:creator>
    <dc:date>2018-12-07T00:06:08Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1173244">
    <title>Basic program for Control Systems</title>
    <link>https://community.wolfram.com/groups/-/m/t/1173244</link>
    <description>Aquí tienes una interfaz dinámica en la que puedes visualizar la respuesta temporal, el lugar de las raíces y el diagrama de Bode de tu sistema realimentado introduciendo sus funciones de transferencia. Puedes cambiar de una forma sencilla los parámetros de tu sistema para ver cómo varían las salidas en tiempo real.&#xD;
&#xD;
Here you have a dynamic interface in which you can visualize the temporal response, root locus plot and Bode diagram of your realimented system introducing the transfer functions. You can easily change the parameters of your system to see how the output changes in real time.&#xD;
&#xD;
&#xD;
&#xD;
![The Program][1]&#xD;
&#xD;
También tienes una guía que te ayudará a familiarizarte rápidamente con los controles.&#xD;
&#xD;
There is also a guide that will hep you get familiar with the controls quickly.&#xD;
&#xD;
NOTE: The program and the guide are in Spanish because I developed the project in this language as it is my mother tongue.&#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=1.2-Programa.png&amp;amp;userId=1078725</description>
    <dc:creator>Carlos Lapuente</dc:creator>
    <dc:date>2017-08-30T11:11:22Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1163322">
    <title>Topology Optimization in Stress-Strain problem</title>
    <link>https://community.wolfram.com/groups/-/m/t/1163322</link>
    <description>![Topology Optimization in Stress-Strain problem][1]&#xD;
&#xD;
## Introduction ##&#xD;
&#xD;
Good day for everyone.&#xD;
&#xD;
I want to represent one of my work in Wolfram Mathematica. The main idea was a creating of fast algorithm of topology optimization for solid objects. The most commons methods for this is a BESO (Bi-directional evolutionary structural optimization) and SIMP (Solid isotropic material with penalization). Both methods have the same idea: minimization of function like a full-strain energy in object or heat flow through the external surface of object ant etc. Optimization methods have used in aircraft/spacecraft engineering or automobile engineering. So I want to create my own algorithm in Wolfram Mathematica for topology optimization. I wll show some examples with different boundary conditions for proving that this work with different shapes and constraints.&#xD;
&#xD;
## Some examples ##&#xD;
Examples of this optimizations:&#xD;
&#xD;
Minimization of maximum of temperature in radiator: We have metal plate. We must create the shape of this plate which provide us the minimum of maximum temperature in this plate. But we have some constraints: we have a fixed amount of material. We can wisely redistribute all material in space for creating optimal shape. At the beginning of optimization process we have homogeneus structure. Then we apply two algorithms.&#xD;
&#xD;
**Initial** state:&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
**BESO** optimization:&#xD;
&#xD;
![enter image description here][3]&#xD;
&#xD;
**SIMP** Optimization:&#xD;
&#xD;
![enter image description here][4]&#xD;
&#xD;
As we see, those algorithms had as results the differents shapes. The main reason is a different types of redistribution of material in space. **BESO** can only move the mass in space, so we will have  the void in space. It marked as *black* regions on image. In **SIMP** method we can partially fill the space by material, so we will have *gray* regions. We can consider many examples of applications both of this methods. &#xD;
&#xD;
## Planning of the work ##&#xD;
But I want to show the main Idea of this topic: I wanted to realize SIMP method in Wolfram Mathematica and build my own method for topology optimization. I divided this plan in some steps:&#xD;
&#xD;
 - FEM modelling of 2D objects: plains, shells, beam, etc&#xD;
 - Reproducing the SIMP algorithm in Mathematica over 2D regions&#xD;
 - Checking the results&#xD;
 - FEM modelling of 3D object&#xD;
 - Reproducing the SIMP algorithm over 3D regions&#xD;
 - Checking the results&#xD;
 - Thinking about own idea of topology optimization for minimization of strain energy&#xD;
 - Realization of this idea&#xD;
 - Compairing new method with SIMP&#xD;
 - Optimization of new algorithm&#xD;
&#xD;
## First steps ##&#xD;
SIMP method based on FEM. It suppose to create virtual field of density. So we have a new parameter for each Finite Element: density. Then we try to find the value of each density which provide us a minimum of goal function. In Wolfram Mathematica we have big diversity of methods for discretization of regions and further analysis. We have a rectangle and discretize it by triangles:&#xD;
&#xD;
        Reg = DiscretizeRegion[Parallelogram[{0, 0}, {{0, a1}, {a2, 0}}], MeshCellLabel -&amp;gt; {0 -&amp;gt; &amp;#034;Index&amp;#034;}, &#xD;
           MaxCellMeasure -&amp;gt; .01];&#xD;
        Coord = MeshCoordinates[Reg];&#xD;
        Polys = MeshCells[Reg, 2];&#xD;
        ActionSquare = Show[Reg, ImageSize -&amp;gt; 600]&#xD;
&#xD;
![enter image description here][5]&#xD;
&#xD;
Polys contains all information about each Finite Element (Triangles), Coord contains all coordinates of all points. By this data we can construct the Stiffness Matrix of this object for solving the Stress-Strain problem. As the result of solving this problem we get the vectors of displacements, strains and stresses in each finite element. We can visualize it, as examples: von Mises stresses in axis-Symmetrical problem, red - biggest stresses, blue and violet - lowest stresses:&#xD;
&#xD;
![enter image description here][6]&#xD;
&#xD;
## 2D Solutions of SIMP method ##&#xD;
Then we can use SIMP method algorithm on this solution for redistributing the material in space, we move the material from non-stressed areas into area with big amount of stresses. SIMP - iterative method, so we will get a result after some steps. SIMP also have a big amount of control parameters: penalizing factor, continuum coefficient and etc.&#xD;
&#xD;
 - Big size of cells:&#xD;
![enter image description here][7]&#xD;
 - Small cells:&#xD;
&#xD;
![enter image description here][8]&#xD;
&#xD;
We can analyse the main criteria of optimization: ***full energy of strain***&#xD;
&#xD;
![enter image description here][9]&#xD;
&#xD;
**X-axis** is an iteration of SIMP method, so we get final solution at 12~13 step. Different dashing - different parameters of optimization, we see that it change only the &amp;#034;way&amp;#034; of optimization. We can see that energy decreases from step to step, so the main goal was completed. So I realized the SIMP method in WM. You can look at this on my [GitHub][10].&#xD;
## Main Part ##&#xD;
&#xD;
We must do the same things in 3D. I will skip all explanations in this part because they are the same as in 2D. I will show some examples of optimization:&#xD;
&#xD;
 - Initial conditions&#xD;
&#xD;
![enter image description here][11]&#xD;
&#xD;
 - Result of SIMP Optimization&#xD;
&#xD;
![enter image description here][12]&#xD;
&#xD;
&#xD;
But I must say that in case of 3D problem the level of computations grows very fast. So on my notebook it is very hard to analyse the big amount of Finite Elements for Topology optimization. I began to seek the to minimize my computations. We have only a hypothesis about existing only one global extremum point of our function. If we consider that it is ***true*** we have a very fast solution. We must construct a goal function of many arguments. &#xD;
&#xD;
    goalFunction = displacement.StifnessMatrix.displacement;&#xD;
    massEquation = &#xD;
      Sum[V[[k]]*density[[k]], {k, 1, Length[Tetras]}] == &#xD;
       Sum[V[[k]], {k, 1, Length[Tetras]}]*0.75;&#xD;
    densityEq = Thread[0.0 &amp;lt;= # &amp;lt;= 1 &amp;amp;[density]];&#xD;
&#xD;
The goal function is a strain energy in solid object. Arguments - densities of Finite Elements. And also we have some constraints, we can&amp;#039;t involve new mass in space, our elements can&amp;#039;t be overcrowded. ***displacement*** it is a vector of displacements of each points of our discretized object. We get it from solving Stress-Strain problem. StiffnessMatrix we get from the properties of our object. ***density*** is vector of density of each finite element.&#xD;
&#xD;
    sysOfEq = Flatten[{goalFunction, massEquation, Equation, densityEq}];&#xD;
    variables = Flatten[{density, DisplacementI}];&#xD;
&#xD;
Here we construct the system of equation for our problem and vector of our variables. I suppose to use **FindMinimum** function for finding the global minimum of our function. But we must define the initial point for seeking the minimum point.&#xD;
&#xD;
    initDis = Thread[{#, 0} &amp;amp;[DisplacementI]];&#xD;
    initDen = Thread[{#, 0.5} &amp;amp;[density]];&#xD;
    initCond = Flatten[{initDen, initDis}, 1];&#xD;
&#xD;
Then we try to run the FindMinimum with this initial conditions and equations:&#xD;
&#xD;
    resultFMin = &#xD;
       Quiet[FindMinimum[sysOfEq, initCond, &#xD;
         Method -&amp;gt; &amp;#034;InteriorPoint&amp;#034;]]; // AbsoluteTiming&#xD;
&#xD;
And after this, I got the incredible results. The vectors of density for **SIMP** method and **FindMinimum** ?oincide almost completely. I got the increasing of computation speed near x40 in compairing with SIMP algorithm. You can look at all result also on my [GitHub][13].&#xD;
&#xD;
## Conclusions ##&#xD;
&#xD;
 - FindMinimum give the same result as the SIMP method for stress-strain problem;&#xD;
 - It has a very big advantage in time in compairing with SIMP, SIMP/FindMinimumTime~40-50;&#xD;
 - I must prove the hypothesis about the one global minimum of the multidimensional function. If anyone can give me some advices about this.&#xD;
 - We can use this for constructing optimized models for 3D printing. It was introduced in WM v11.0.0&#xD;
&#xD;
![enter image description here][14]&#xD;
 &#xD;
## Further explorations ##&#xD;
&#xD;
 - In Mathematica we can find some FEM packages: NDSolve`FEM` or ACEFEM package from Korelc Joe. I want to try connect them in something.&#xD;
 - Create the CDF application for simpliest application of Topology Optimization.&#xD;
 - Further analysis of finding the global minimum of goal function.&#xD;
 - Improving the algorithm of constructing StiffnessMatrix and finding minimum. I mean construct own specialized function for this problem.&#xD;
&#xD;
## Questions ##&#xD;
&#xD;
 - How I can prove the existing only one minimum of multidimensional function with Mathematica.&#xD;
&#xD;
## Link for video ##&#xD;
&#xD;
[Video][15]&#xD;
&#xD;
&#xD;
  [1]: http://community.wolfram.com//c/portal/getImageAttachment?filename=45rtgdfw435wtrhgsdaf.gif&amp;amp;userId=11733&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=11.PNG&amp;amp;userId=1083954&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=22.PNG&amp;amp;userId=1083954&#xD;
  [4]: http://community.wolfram.com//c/portal/getImageAttachment?filename=33.PNG&amp;amp;userId=1083954&#xD;
  [5]: http://community.wolfram.com//c/portal/getImageAttachment?filename=44.PNG&amp;amp;userId=1083954&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=55.PNG&amp;amp;userId=1083954&#xD;
  [7]: http://community.wolfram.com//c/portal/getImageAttachment?filename=66.PNG&amp;amp;userId=1083954&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=77.PNG&amp;amp;userId=1083954&#xD;
  [9]: http://community.wolfram.com//c/portal/getImageAttachment?filename=88.PNG&amp;amp;userId=1083954&#xD;
  [10]: https://github.com/AndreyKrotkikh/TopologyOptimization&#xD;
  [11]: http://community.wolfram.com//c/portal/getImageAttachment?filename=99.PNG&amp;amp;userId=1083954&#xD;
  [12]: http://community.wolfram.com//c/portal/getImageAttachment?filename=111.PNG&amp;amp;userId=1083954&#xD;
  [13]: https://github.com/AndreyKrotkikh/TopologyOptimization&#xD;
  [14]: http://community.wolfram.com//c/portal/getImageAttachment?filename=122.jpg&amp;amp;userId=1083954&#xD;
  [15]: https://drive.google.com/open?id=0BwoYVUBhV8KJbGdwNmpKZWk4MWc</description>
    <dc:creator>Andrey Krotkikh</dc:creator>
    <dc:date>2017-08-11T19:08:54Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/1054178">
    <title>OPC UA Library for SystemModeler Released</title>
    <link>https://community.wolfram.com/groups/-/m/t/1054178</link>
    <description>It has never been easier to safely connect your Internet of Things devices to Wolfram SystemModeler. With the release of the new [OPCUA library][1] for SystemModeler, you can connect your devices through a SystemModeler client using the [OPC UA protocol][2].&#xD;
&#xD;
One example of usage is to set up a virtual prototype of a system that communicates through the OPC UA protocol to get a realistic scenario of an actual, real-world system.&#xD;
&#xD;
Another important use case involves connecting your sensors and devices directly to a SystemModeler simulation to run, for example, a control system. This can also be used in combination with the [ModelPlug library][3] for an easy connection to all ([Firmata][4]-compatible) devices.&#xD;
&#xD;
Read all about the OPCUA library in this [blog post][5].&#xD;
&#xD;
[![enter image description here][6]][5]&#xD;
&#xD;
&#xD;
  [1]: https://www.wolfram.com/system-modeler/libraries/opc-ua/&#xD;
  [2]: https://en.wikipedia.org/wiki/OPC_Unified_Architecture&#xD;
  [3]: https://www.wolfram.com/system-modeler/libraries/model-plug/&#xD;
  [4]: http://www.firmata.org/wiki/Main_Page&#xD;
  [5]: http://blog.wolfram.com/2017/03/28/communication-in-industry-4-0-with-wolfram-systemmodeler-and-opc-ua/&#xD;
  [6]: http://community.wolfram.com//c/portal/getImageAttachment?filename=SystemModelerOPCUA-Industry4point0.png&amp;amp;userId=580013</description>
    <dc:creator>Markus Dahl</dc:creator>
    <dc:date>2017-04-06T07:10:52Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/498745">
    <title>Converting data/graph into a 3D printable file (.stl or similar)</title>
    <link>https://community.wolfram.com/groups/-/m/t/498745</link>
    <description>Hello.&#xD;
&#xD;
I&amp;#039;m new to here. My name is Tomasz Klos and I&amp;#039;m a R&amp;amp;D Tech at IPG Photonics. I work with fiber-optic/diode lasers. Recently I came up with an idea to have a 3D printed model of a beam profile. I have a file (data) in the excel format that also shows a graph which is a illustration of the beam profile. Now I&amp;#039;m trying to convert that into a 3D model and further convert it to an .stl or similar file that a 3D printer will be able to print. &#xD;
&#xD;
![enter image description here][1]&#xD;
&#xD;
&#xD;
![enter image description here][2]&#xD;
&#xD;
&#xD;
  [1]: /c/portal/getImageAttachment?filename=Untitled.png&amp;amp;userId=498725&#xD;
  [2]: /c/portal/getImageAttachment?filename=Untitled_1.png&amp;amp;userId=498725</description>
    <dc:creator>Tomasz Klos</dc:creator>
    <dc:date>2015-05-18T15:37:31Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/884936">
    <title>Create an optimal mesh with enough precision?</title>
    <link>https://community.wolfram.com/groups/-/m/t/884936</link>
    <description>I development a software for optimizing the flat surface grinding. &#xD;
I create a mesh to calculate my Finite Elements and the numerical results are very good with the analytical solutions and experimental data. &#xD;
My question is that perphaps I create a mesh with too many elements and I try to look for a mesh with enough precision to calculate the results with the same precision (or  more or less a 1% of the desviation) to optimize the calculus time.&#xD;
What would be the best strategy for doing a convergence analysis?&#xD;
If anyone need an example please tell me!</description>
    <dc:creator>HECTOR ESPINOS-MORATO</dc:creator>
    <dc:date>2016-07-08T10:55:53Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/773256">
    <title>Why does Solve work on a sum with 34 terms but not 35 terms?</title>
    <link>https://community.wolfram.com/groups/-/m/t/773256</link>
    <description>Why does this work when M=34 but not when M=35?:&#xD;
&#xD;
Clear [n, M, confidence, k, p];&#xD;
n = 8;&#xD;
M = 34;&#xD;
confidence = 0.5;&#xD;
&#xD;
$ \text{Solve}\left[\sum&#xD;
_{k=n+1}^M \frac{M! p^k&#xD;
(1-p)^{M-k}}{(M-k)!&#xD;
k!}=\text{confidence},p,\mathbb{R}\right] $</description>
    <dc:creator>Michael H.</dc:creator>
    <dc:date>2016-01-14T01:40:47Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/745784">
    <title>Online Prediction Interface with SystemModeler and Mathematica</title>
    <link>https://community.wolfram.com/groups/-/m/t/745784</link>
    <description>Hi!&#xD;
&#xD;
Lately I have been working a lot with simulations within the process industry. There, process operators often rely on years upon years of practical experience to know which parameters to tune to get optimal system performance. The relationship between the control signals manipulated by the operators and the desired response signals are often dynamical in nature where time constants can be longer than an hour. This can make it very hard to get a feeling for how changes made in one time instant will affect the process down the line, especially when multiple signals are being manipulated simultaneously. &#xD;
&#xD;
Having a dynamical model that represents an industrial process can allow you to try out different scenarios before implementing them live. Using SystemModeler and Mathematica, one can take that process a step further and make continuous predictions based on updated values from the industrial process. These can both include predictions on where we are currently headed based on our current estimated system state and test based predictions where we manipulate a control signal and estimate how the system will evolve. Here, I will present a Mathematica notebook that is able to do just that, combined with a user interface that allows for testing of control signals. The Notebook and the Modelica models used can be downloaded at the bottom of this post.&#xD;
&#xD;
For demonstration purposes, I created a purely fictitious process where the response was modeled as a sum of five transfer function responses. Nasser M. Abbasi in [this thread][1] showed  an excellent way to generate transfer functions in a way that is compatible with the function RandomReal while allowing for only stable systems to be generated (i.e. only generating systems where poles have negative real parts). Simulations with a unit step input signal using OutputResponse were made to get a feeling for the different responses:&#xD;
&#xD;
![OutputResponse of transfer functions][2]&#xD;
&#xD;
Transfer functions (and state space models) that are created in Mathematica can be imported into SystemModeler using the WSMCreateModel function:&#xD;
&#xD;
    Needs[&amp;#034;WSMLink`&amp;#034;]&#xD;
    tf = {&#xD;
       TransferFunctionModel[{{{((2.8 (1.1 + s)) (6. + s)) (9. + s)}}, (((4.5 + s) (5.1 + s)) (5.7 + s)) (7.2 + s)}, s], &#xD;
       TransferFunctionModel[{{{(4.3 (1.5 + s)) (7.1 + s)}}, ((0.8 + s) (5.9 + s)) (8.8 + s)}, s], &#xD;
       TransferFunctionModel[{{{(3.1 (0.2 + s)) (3.3 + s)}}, ((5.1 + s) (8.2 + s)) (9. + s)}, s], &#xD;
       TransferFunctionModel[{{{(1.1 (4.2 + s)) (4.7 + s)}}, (5.9 + s) (8.6 + s)}, s], &#xD;
       TransferFunctionModel[{{{(1.4 (3.2 + s)) (5.6 + s)}}, (((1.1 + s) (3.5 + s)) (5.2 + s)) (6. + s)}, s]};&#xD;
    Table[WSMCreateModel[&amp;#034;PlantControl.Blocks.TransferFunction&amp;#034; &amp;lt;&amp;gt; ToString[i], tf[[i]]], {i,1, Length[tf]}]&#xD;
&#xD;
The components where connected together in SystemModeler and the total system response was set to be the sum of the individual transfer function responses, as mentioned earlier:&#xD;
&#xD;
![System model][3]&#xD;
&#xD;
The connections could also have been made directly from Mathematica using the WSMConnectComponents function.&#xD;
&#xD;
As the models are written in Modelica, we are of course not limited to simple block based models like these. Mechanical, electrical, thermal and/or, [biochemical][4] models are all a possibility. The free [SystemDynamics library][5] could also be a prime candidate.&#xD;
Neither do the models have to be linear, they can be nonlinear or hybrid. For the sake of simplicity and generality I will stick with my system of transfer functions! I do however invite the community to try out more specific areas of application. &#xD;
&#xD;
In Mathematica, a ScheduledTaskObject can be created so that, at each update instant the model is simulated using the newest available values and the predicted responses are stored together with the latest measured response. Two separate predictions were made, one (mainPrediction) predicted the system response based on the current estimated state and the current control signals, while the other used user defined control signals (testPrediction).&#xD;
&#xD;
As the system presented here is purely fictitious, the values could not be gathered &amp;#034;online&amp;#034;. Instead the system was excited beforehand using random, piece-wise constant input signals to generate a set of inputs and responses. Some measurement noise was also added to the input and response signals. The &amp;#034;online&amp;#034; part of the process then consisted of collecting these predefined data points, one at a time. For a real process, or a prototype process the signals could be gathered either via Mathematica and sent to the simulation as a parameter, or directly in the process model, for example using the [ModelPlug][6] or [OPC][7] Modelica libraries. In fact, I would love to try and set up my Arduino board at home doing something like this so if anyone has any ideas or suggestions for a hobby application of this, please let me know! &#xD;
&#xD;
Anyway, here is the code for the scheduled task:&#xD;
&#xD;
    updateFrequency = 15;&#xD;
    predictionLoop = CreateScheduledTask[&#xD;
       {mainPrediction = &#xD;
         WSMSimulate[&amp;#034;PlantControl.ControlModel&amp;#034;, {0, predictionLength},&#xD;
          WSMParameterValues -&amp;gt; Join[&#xD;
            Table[&amp;#034;controlSignal[&amp;#034; &amp;lt;&amp;gt; ToString[j] &amp;lt;&amp;gt; &amp;#034;].k&amp;#034; -&amp;gt; u[[j, i]], {j, 1,5}],&#xD;
            Table[&amp;#034;transferFunction&amp;#034; &amp;lt;&amp;gt; ToString[j] &amp;lt;&amp;gt; &amp;#034;.y_start&amp;#034; -&amp;gt; yindv[[j, i]], {j, 1, 5}]],&#xD;
          Method -&amp;gt; {&amp;#034;DASSL&amp;#034;, &amp;#034;InterpolationPoints&amp;#034; -&amp;gt; predictionLength*2}];&#xD;
        testPrediction = &#xD;
         WSMSimulate[&amp;#034;PlantControl.ControlModel&amp;#034;, {0, predictionLength},&#xD;
          WSMParameterValues -&amp;gt; Join[Table[&amp;#034;controlSignal[&amp;#034; &amp;lt;&amp;gt; ToString[j] &amp;lt;&amp;gt; &amp;#034;].k&amp;#034; -&amp;gt; &#xD;
              If[ContainsAny[unlinked, {j}], testInput[[j]], u[[j, i]]], {j, 1, 5}],&#xD;
            Table[&amp;#034;transferFunction&amp;#034; &amp;lt;&amp;gt; ToString[j] &amp;lt;&amp;gt; &amp;#034;.y_start&amp;#034; -&amp;gt; yindv[[j, i]], {j, 1, 5}]],&#xD;
          Method -&amp;gt; {&amp;#034;DASSL&amp;#034;, &#xD;
            &amp;#034;InterpolationPoints&amp;#034; -&amp;gt; predictionLength*2}];&#xD;
        mainPredictionData[[All, 2]] = Join[&#xD;
            mainPredictionData[[2 ;; historyLength + 1, 2]], mainPrediction[&amp;#034;y&amp;#034;, Range[0, predictionLength]]];&#xD;
        testPredictionData[[All, 2]] = testPrediction[&amp;#034;y&amp;#034;, Range[0, predictionLength]];&#xD;
        historyData[[All, 2]] = Append[historyData[[2 ;; -1, 2]], y[[i]]];&#xD;
        i++;}, {updateFrequency, Length[y] - 1}];&#xD;
&#xD;
Also included is an interface using dynamically updated cells and plots. By clicking on the &amp;#034;link&amp;#034; button you link or unlink the input signals to and from the &amp;#034;actual&amp;#034; process values, allowing you to specify your own input values. If all input values are linked to the process values, the &amp;#034;test prediction&amp;#034; and the &amp;#034;main prediction&amp;#034; will be the same. Here is an image of the control panel and plot:&#xD;
&#xD;
![Control bar and plot for online prediction][8]&#xD;
&#xD;
You can download the Notebook and model below and try it for yourself!&#xD;
&#xD;
If anyone is interested, here are some ideas how this could be expanded:&#xD;
 &#xD;
 - Application to a more realistic scenario. A good place to start could be the [SystemDynamics][9] library which contains some great examples that could be used for this purpose.&#xD;
 - The input signals specified by the user are simulated as being constant for the duration of the prediction. An alternative approach would be to use, for example, a delayed step between the current and new input value, a ramp or pulses. You can change the nature of the input signal by changing the corresponding block in the simulation model. Maybe the user could be allowed to choose from a number of different signal types from a drop down menu in Mathematica?&#xD;
 -  Replace the fictitious signals with real online signals from for example the [ModelPlug][10] Modelica library or maybe by connecting over TCP/IP using Mathematica!&#xD;
&#xD;
  [1]: http://community.wolfram.com/groups/-/m/t/334913?_19_redirect=http://community.wolfram.com/content?p_p_id=3&amp;amp;p_p_lifecycle=0&amp;amp;p_p_state=maximized&amp;amp;p_p_mode=view&amp;amp;_3_groupId=0&amp;amp;_3_keywords=transfer%2bfunction&amp;amp;_3_struts_action=%252Fsearch%252Fsearch&amp;amp;_3_redirect=%252Fweb%252Fcommunity%252Fcontent%253FcurTag%253Dsystem%252520modeler&amp;amp;_3_y=0&amp;amp;_3_x=0&#xD;
  [2]: http://community.wolfram.com//c/portal/getImageAttachment?filename=response.png&amp;amp;userId=554806&#xD;
  [3]: http://community.wolfram.com//c/portal/getImageAttachment?filename=smmodel.jpg&amp;amp;userId=554806&#xD;
  [4]: https://www.wolfram.com/system-modeler/libraries/biochem/&#xD;
  [5]: https://www.wolfram.com/system-modeler/libraries/system-dynamics/&#xD;
  [6]: https://www.wolfram.com/system-modeler/libraries/model-plug/&#xD;
  [7]: https://www.wolfram.com/system-modeler/libraries/opc-classic/&#xD;
  [8]: http://community.wolfram.com//c/portal/getImageAttachment?filename=ctrl.png&amp;amp;userId=554806&#xD;
  [9]: https://www.wolfram.com/system-modeler/libraries/system-dynamics/&#xD;
  [10]: https://www.wolfram.com/system-modeler/libraries/model-plug/</description>
    <dc:creator>Patrik Ekenberg</dc:creator>
    <dc:date>2015-11-27T12:31:15Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/556117">
    <title>Application of integration to a continuous list (xi,yi) of numbers; see nb.</title>
    <link>https://community.wolfram.com/groups/-/m/t/556117</link>
    <description>In the attached nb. is an illustration of numerical integration. I have an error in the syntax; can someone &#xD;
help me find it.&#xD;
&#xD;
thanks</description>
    <dc:creator>Luke Schutzenhofer</dc:creator>
    <dc:date>2015-08-30T02:14:54Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/552520">
    <title>Creating GUI for schedule programming</title>
    <link>https://community.wolfram.com/groups/-/m/t/552520</link>
    <description>I&amp;#039;m looking for any tutorial information or guidance to help me get started on a GUI program for creating a schedule programming system. I&amp;#039;m working with a partner, and we decided we would try to build the program on mathematica. While I don&amp;#039;t have much programming experience, I have some primitive experience with mathematica, and I figure now is as best a time as any to learn. What would be the best way to start learning the more advanced aspects?&#xD;
&#xD;
We are still trying to figure out the objective equation and associated constraints, but I would like to start learning more about mathematica to prepare for later.</description>
    <dc:creator>C McKinley</dc:creator>
    <dc:date>2015-08-24T02:12:16Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/552479">
    <title>How to incorporate crossover probability in my program?</title>
    <link>https://community.wolfram.com/groups/-/m/t/552479</link>
    <description>I am working with genetic algorithm for optimization. I feel problem in crossover of binary chromosomes. &#xD;
I actually succeeded in making code for crossover of chromosome but now I failed to incorporate crossover probability in it.&#xD;
I want crossover probability of 0.85 which; in my program means, about 3 binary sets (elements) out of 18 are copies as same without cross overing.&#xD;
Here, I share my program which I made until now; I need incorporation of cross over probability in it.&#xD;
&#xD;
    crossover[c1_List, c2_List] /; Length @ c1 == Length @ c2 := &#xD;
      Module[{cut, c1a, c1p, c2a, c2p}, &#xD;
        cut = RandomInteger[{2, Length @ c1 - 1}]; &#xD;
        {c1a, c1p} = {c1[[1 ;; cut]], c1[[cut + 1 ;; -1]]}; &#xD;
        {c2a, c2p} = {c2[[1 ;; cut]], c2[[cut + 1 ;; -1]]}; &#xD;
        {cut, Join[c1a, c2p], Join[c2a, c1p]}]; &#xD;
    &#xD;
    SeedRandom[42];&#xD;
    genome1 = RandomInteger[1, {6, 8}]&#xD;
    genome2 = RandomInteger[1, {6, 8}]&#xD;
    MapThread[crossover, {genome1, genome2}]&#xD;
&#xD;
Thanks in advance. :)</description>
    <dc:creator>mamoona arshad</dc:creator>
    <dc:date>2015-08-24T08:28:14Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/547687">
    <title>How to multiple a list?</title>
    <link>https://community.wolfram.com/groups/-/m/t/547687</link>
    <description>Given:&#xD;
L1 = {{x1,y1},{x2,y2},{x3,y3},{x4,y4},...........{xn,yn}}:  how is L2 below, obtain:&#xD;
&#xD;
L2 = {{ax1,y1},{ax2,y2},{ax3,y3},{ax4,y4}.....{axn,yn}}</description>
    <dc:creator>Luke Schutzenhofer</dc:creator>
    <dc:date>2015-08-15T01:10:50Z</dc:date>
  </item>
  <item rdf:about="https://community.wolfram.com/groups/-/m/t/538452">
    <title>Numerical Integration</title>
    <link>https://community.wolfram.com/groups/-/m/t/538452</link>
    <description>Given the following data,&#xD;
                   data1={{x1, y1},{x2, y2},{x3, y3},{x4, y4},............{xn, yn}}&#xD;
How do integrate data1 to get&#xD;
                Nintegrate[data1] = {{x1, y1?},{x2, y2?},{x3, y3?},{x4, y4?},............{xn, yn?}}</description>
    <dc:creator>Luke Schutzenhofer</dc:creator>
    <dc:date>2015-07-29T12:22:31Z</dc:date>
  </item>
</rdf:RDF>

