<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.opensourceecology.org/index.php?action=history&amp;feed=atom&amp;title=CEB_Press%2FResearch_Development%2FController_Design%2FPlot_Script</id>
	<title>CEB Press/Research Development/Controller Design/Plot Script - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opensourceecology.org/index.php?action=history&amp;feed=atom&amp;title=CEB_Press%2FResearch_Development%2FController_Design%2FPlot_Script"/>
	<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CEB_Press/Research_Development/Controller_Design/Plot_Script&amp;action=history"/>
	<updated>2026-04-16T17:49:25Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CEB_Press/Research_Development/Controller_Design/Plot_Script&amp;diff=50319&amp;oldid=prev</id>
		<title>ChuckH: Created page with &quot; &lt;nowiki&gt; ## Gnu Octave script to draw illustration of the OSE CEB Press operation cycle  ## There are 15 identified events in the cycle ##  listed here with times in seconds eve...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CEB_Press/Research_Development/Controller_Design/Plot_Script&amp;diff=50319&amp;oldid=prev"/>
		<updated>2011-12-29T06:54:25Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot; &amp;lt;nowiki&amp;gt; ## Gnu Octave script to draw illustration of the OSE CEB Press operation cycle  ## There are 15 identified events in the cycle ##  listed here with times in seconds eve...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &amp;lt;nowiki&amp;gt;&lt;br /&gt;
## Gnu Octave script to draw illustration of the OSE CEB Press operation cycle&lt;br /&gt;
&lt;br /&gt;
## There are 15 identified events in the cycle&lt;br /&gt;
##  listed here with times in seconds&lt;br /&gt;
events{1} = &amp;quot;Secondary cylinder begins extending&amp;quot;;&lt;br /&gt;
evt(1) = 0;&lt;br /&gt;
events{2} = &amp;quot;Main cylinder starts down&amp;quot;;&lt;br /&gt;
evt(2) = 0.5;&lt;br /&gt;
events{3} = &amp;quot;Secondary cylinder completes extending (full left)&amp;quot;;&lt;br /&gt;
evt(3) = 1;&lt;br /&gt;
events{4} = &amp;quot;Main cylinder completes downstroke (full down)&amp;quot;;&lt;br /&gt;
evt(4) = evt(2) + 2.5;&lt;br /&gt;
events{5} = &amp;quot;Shaker motor start&amp;quot;;&lt;br /&gt;
evt(5) = max(evt(3), evt(4));&lt;br /&gt;
events{6} = &amp;quot;Shaker motor stop&amp;quot;;&lt;br /&gt;
evt(6) = evt(5) + 2;&lt;br /&gt;
events{7} = &amp;quot;Secondary cylinder begins first retraction&amp;quot;;&lt;br /&gt;
evt(7) = evt(6) + 0.5;&lt;br /&gt;
events{8} = &amp;quot;Secondary cylinder completes move (middle position)&amp;quot;;&lt;br /&gt;
evt(8) = evt(7) + 0.5;&lt;br /&gt;
events{9} = &amp;quot;Main cylinder starts upward (compression stroke)&amp;quot;;&lt;br /&gt;
evt(9) = evt(8);&lt;br /&gt;
events{10} = &amp;quot;Main cylinder starts down (release stroke)&amp;quot;;&lt;br /&gt;
evt(10) = evt(8) + 2;&lt;br /&gt;
events{11} = &amp;quot;Main cylinder stops&amp;quot;;&lt;br /&gt;
evt(11) = evt(10) + 1;&lt;br /&gt;
events{12} = &amp;quot;Secondary cylinder begins second retraction&amp;quot;;&lt;br /&gt;
evt(12) = evt(11);&lt;br /&gt;
events{13} = &amp;quot;Secondary cylinder completes retraction (full right)&amp;quot;;&lt;br /&gt;
evt(13) = evt(12) + 1;&lt;br /&gt;
events{14} = &amp;quot;Main cylinder starts up&amp;quot;;&lt;br /&gt;
evt(14) = evt(13);&lt;br /&gt;
events{15} = &amp;quot;Main cylinder completes upstroke&amp;quot;;&lt;br /&gt;
evt(15) = evt(14) + 2;&lt;br /&gt;
global evt;&lt;br /&gt;
&lt;br /&gt;
function t = eventTime(i)&lt;br /&gt;
  global evt;&lt;br /&gt;
  if i &amp;lt;= 0&lt;br /&gt;
    t = 0;&lt;br /&gt;
  else&lt;br /&gt;
    t = evt(i);&lt;br /&gt;
  endif&lt;br /&gt;
endfunction&lt;br /&gt;
&lt;br /&gt;
## sensor positions&lt;br /&gt;
mainSensors = [1 4 7];&lt;br /&gt;
secSensors = [ 1 7 12];&lt;br /&gt;
senseWidth = .5;&lt;br /&gt;
&lt;br /&gt;
## movement points of the cylinders&lt;br /&gt;
mainPos = [0, 7.5; 2, 7.5; 4, 1; 9,1; 10,3.5; 11, 3; 14,3; 15, 7.5];&lt;br /&gt;
secPos = [0, 1; 1,1; 3, 13; 7, 13; 8, 7; 12, 7; 13, 1; 15, 1];&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## Now make the plot using the above data&lt;br /&gt;
&lt;br /&gt;
mainT = arrayfun(@eventTime, mainPos&amp;#039;(1, :));&lt;br /&gt;
secT = arrayfun(@eventTime, secPos&amp;#039;(1, :));&lt;br /&gt;
mt = max(evt);&lt;br /&gt;
timerange = [0 mt];&lt;br /&gt;
clf&lt;br /&gt;
subplot (2,1,1)&lt;br /&gt;
barh(mainSensors, [mt mt mt], senseWidth, &amp;quot;facecolor&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;edgecolor&amp;quot;, &amp;quot;c&amp;quot;);&lt;br /&gt;
hold on&lt;br /&gt;
plot(mainT, mainPos&amp;#039;(2, :), &amp;quot;linewidth&amp;quot;, 3)&lt;br /&gt;
axis([timerange 0 8]);&lt;br /&gt;
title(&amp;quot;Main Cylinder&amp;quot;);&lt;br /&gt;
xlabel(&amp;quot;time - sec&amp;quot;);&lt;br /&gt;
ylabel(&amp;quot;inch&amp;quot;);&lt;br /&gt;
text(evt(10), mainPos(lookup(mainPos&amp;#039;(1, :), 10), 2)+.5,&lt;br /&gt;
  &amp;quot;compression   release     .&amp;quot;, &lt;br /&gt;
  &amp;quot;horizontalalignment&amp;quot;, &amp;quot;center&amp;quot;);&lt;br /&gt;
text(-.5,0,&amp;quot;bottom&amp;quot;, &amp;quot;horizontalalignment&amp;quot;, &amp;quot;right&amp;quot;);&lt;br /&gt;
text(-.5,max(mainPos&amp;#039;(2,:)),&amp;quot;top&amp;quot;, &amp;quot;horizontalalignment&amp;quot;, &amp;quot;right&amp;quot;);&lt;br /&gt;
for i=1:length(secSensors)&lt;br /&gt;
  text(.25+1*i, mainSensors(i), cstrcat(&amp;quot;sensing zone &amp;quot;,int2str(i)));&lt;br /&gt;
endfor&lt;br /&gt;
hold off&lt;br /&gt;
&lt;br /&gt;
subplot (2,1,2)&lt;br /&gt;
barh(secSensors, [mt mt mt], senseWidth, &amp;quot;facecolor&amp;quot;, &amp;quot;c&amp;quot;, &amp;quot;edgecolor&amp;quot;, &amp;quot;c&amp;quot;);&lt;br /&gt;
hold on&lt;br /&gt;
plot(secT, secPos&amp;#039;(2, :), &amp;quot;linewidth&amp;quot;, 3)&lt;br /&gt;
title(&amp;quot;Secondary Cylinder&amp;quot;);&lt;br /&gt;
ylabel(&amp;quot;inch&amp;quot;);&lt;br /&gt;
text(-.5,0,&amp;quot;retract&amp;quot;, &amp;quot;horizontalalignment&amp;quot;, &amp;quot;right&amp;quot;);&lt;br /&gt;
text(-.5,max(secPos&amp;#039;(2,:)),&amp;quot;extend&amp;quot;, &amp;quot;horizontalalignment&amp;quot;, &amp;quot;right&amp;quot;);&lt;br /&gt;
for i=1:length(secSensors)&lt;br /&gt;
  text(.25+1*i, secSensors(i), cstrcat(&amp;quot;sensing zone &amp;quot;,int2str(i)));&lt;br /&gt;
endfor&lt;br /&gt;
axis([timerange 0 14]);&lt;br /&gt;
hold off&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>ChuckH</name></author>
	</entry>
</feed>