Skip to content

Commit 862048c

Browse files
authored
Merge pull request #20 from shanferns12/main
pretending bangbang is pid
2 parents 21b3c62 + 7c9d8b3 commit 862048c

File tree

2 files changed

+276
-0
lines changed

2 files changed

+276
-0
lines changed

tools/pid.graphml

Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
2+
<graphml xmlns="http://graphml.graphdrawing.org/xmlns" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns http://www.yworks.com/xml/schema/graphml/1.1/ygraphml.xsd" xmlns:y="http://www.yworks.com/xml/graphml">
3+
<key for="node" id="d6" yfiles.type="nodegraphics"/>
4+
<key for="edge" id="d10" yfiles.type="edgegraphics"/>
5+
<graph edgedefault="directed" id="1662583635302" projectName="autonomous">
6+
<node id="550865d1-28a3-40a9-9e25-d3b68ad277d6">
7+
<data key="d6">
8+
<y:ShapeNode>
9+
<y:Geometry height="50" width="148" x="245" y="85"/>
10+
<y:Fill color="#ffcc00" opacity="1"/>
11+
<y:BorderStyle color="#000" width="1"/>
12+
<y:NodeLabel>PZ:cardiac_pm.py</y:NodeLabel>
13+
<y:Shape type="rectangle"/>
14+
</y:ShapeNode>
15+
</data>
16+
</node>
17+
<node id="36b9f1df-7c84-4f07-8fce-c4a6f6462931">
18+
<data key="d6">
19+
<y:ShapeNode>
20+
<y:Geometry height="50" width="193" x="252" y="264"/>
21+
<y:Fill color="#ffcc00" opacity="1"/>
22+
<y:BorderStyle color="#000" width="1"/>
23+
<y:NodeLabel>CZ:shannon.py</y:NodeLabel>
24+
<y:Shape type="rectangle"/>
25+
</y:ShapeNode>
26+
</data>
27+
</node>
28+
<node id="4b860aae-05c9-4eb5-bc48-f8000ccb42a8">
29+
<data key="d6">
30+
<y:ShapeNode>
31+
<y:Geometry height="50" width="114" x="507" y="160"/>
32+
<y:Fill color="#ffcc00" opacity="1"/>
33+
<y:BorderStyle color="#000" width="1"/>
34+
<y:NodeLabel>XZ:plotym.py</y:NodeLabel>
35+
<y:Shape type="rectangle"/>
36+
</y:ShapeNode>
37+
</data>
38+
</node>
39+
<edge id="0" source="550865d1-28a3-40a9-9e25-d3b68ad277d6" target="4b860aae-05c9-4eb5-bc48-f8000ccb42a8">
40+
<data key="d10">
41+
<y:GenericEdge configuration="com.yworks.bpmn.Connection">
42+
<y:LineStyle color="#7c4dff" width="1" type="solid"/>
43+
<y:Arrows source="none" target="delta"/>
44+
<y:EdgeLabel>PYM</y:EdgeLabel>
45+
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
46+
<y:Point x="413" y="133.09160305343514"/>
47+
</y:Path>
48+
</y:GenericEdge>
49+
</data>
50+
</edge>
51+
<edge id="1" source="36b9f1df-7c84-4f07-8fce-c4a6f6462931" target="550865d1-28a3-40a9-9e25-d3b68ad277d6">
52+
<data key="d10">
53+
<y:GenericEdge configuration="com.yworks.bpmn.Connection">
54+
<y:LineStyle color="#f44336" width="1" type="solid"/>
55+
<y:Arrows source="none" target="delta"/>
56+
<y:EdgeLabel>CU</y:EdgeLabel>
57+
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
58+
<y:Point x="248.0111731843575" y="162"/>
59+
</y:Path>
60+
</y:GenericEdge>
61+
</data>
62+
</edge>
63+
<edge id="2" source="4b860aae-05c9-4eb5-bc48-f8000ccb42a8" target="36b9f1df-7c84-4f07-8fce-c4a6f6462931">
64+
<data key="d10">
65+
<y:GenericEdge configuration="com.yworks.bpmn.Connection">
66+
<y:LineStyle color="#1565c0" width="1" type="solid"/>
67+
<y:Arrows source="none" target="delta"/>
68+
<y:EdgeLabel>XYM</y:EdgeLabel>
69+
<y:Path sx="0.0" sy="0.0" tx="0.0" ty="0.0">
70+
<y:Point x="351" y="223.62352941176476"/>
71+
</y:Path>
72+
</y:GenericEdge>
73+
</data>
74+
</edge>
75+
<actionHistory>
76+
<tid>1644943336906</tid>
77+
<authorName>sanmi</authorName>
78+
<inverse>
79+
<actionName>DEL_NODE</actionName>
80+
<parameters>WyI1NTA4NjVkMS0yOGEzLTQwYTktOWUyNS1kM2I2OGFkMjc3ZDYiXQ==</parameters>
81+
</inverse>
82+
<equivalent>
83+
<actionName>ADD_NODE</actionName>
84+
<parameters>WyJQWjpjYXJkaWFjX3BtLnB5Iix7IndpZHRoIjoxNDgsImhlaWdodCI6NTAsInNoYXBlIjoicmVjdGFuZ2xlIiwib3BhY2l0eSI6MSwiYmFja2dyb3VuZENvbG9yIjoiI2ZmY2MwMCIsImJvcmRlckNvbG9yIjoiIzAwMCIsImJvcmRlcldpZHRoIjoxfSwib3JkaW4iLHsieCI6MjQ1LCJ5Ijo4NX0se30sIjU1MDg2NWQxLTI4YTMtNDBhOS05ZTI1LWQzYjY4YWQyNzdkNiJd</parameters>
85+
</equivalent>
86+
</actionHistory>
87+
<actionHistory>
88+
<tid>1644943355554</tid>
89+
<authorName>sanmi</authorName>
90+
<inverse>
91+
<actionName>DEL_NODE</actionName>
92+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiXQ==</parameters>
93+
</inverse>
94+
<equivalent>
95+
<actionName>ADD_NODE</actionName>
96+
<parameters>WyJDWjpkdW1teV9jb250cm9sbGVyLnB5Iix7IndpZHRoIjoxOTMsImhlaWdodCI6NTAsInNoYXBlIjoicmVjdGFuZ2xlIiwib3BhY2l0eSI6MSwiYmFja2dyb3VuZENvbG9yIjoiI2ZmY2MwMCIsImJvcmRlckNvbG9yIjoiIzAwMCIsImJvcmRlcldpZHRoIjoxfSwib3JkaW4iLHsieCI6MjUyLCJ5IjoyNjR9LHt9LCIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiXQ==</parameters>
97+
</equivalent>
98+
</actionHistory>
99+
<actionHistory>
100+
<tid>1644943358106</tid>
101+
<authorName>sanmi</authorName>
102+
<inverse>
103+
<actionName>SET_POS</actionName>
104+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsieCI6MTEwLCJ5IjoxMTB9LHsieCI6MTM0LCJ5IjoyNjZ9XQ==</parameters>
105+
</inverse>
106+
<equivalent>
107+
<actionName>SET_POS</actionName>
108+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsieCI6MTM0LCJ5IjoyNjZ9LHsieCI6MTEwLCJ5IjoxMTB9XQ==</parameters>
109+
</equivalent>
110+
</actionHistory>
111+
<actionHistory>
112+
<tid>1644943359494</tid>
113+
<authorName>sanmi</authorName>
114+
<inverse>
115+
<actionName>SET_POS</actionName>
116+
<parameters>WyI1NTA4NjVkMS0yOGEzLTQwYTktOWUyNS1kM2I2OGFkMjc3ZDYiLHsieCI6MTAwLCJ5IjoxMDB9LHsieCI6MjQ1LCJ5Ijo4NX1d</parameters>
117+
</inverse>
118+
<equivalent>
119+
<actionName>SET_POS</actionName>
120+
<parameters>WyI1NTA4NjVkMS0yOGEzLTQwYTktOWUyNS1kM2I2OGFkMjc3ZDYiLHsieCI6MjQ1LCJ5Ijo4NX0seyJ4IjoxMDAsInkiOjEwMH1d</parameters>
121+
</equivalent>
122+
</actionHistory>
123+
<actionHistory>
124+
<tid>1644943362210</tid>
125+
<authorName>sanmi</authorName>
126+
<inverse>
127+
<actionName>SET_POS</actionName>
128+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsieCI6MTM0LCJ5IjoyNjZ9LHsieCI6MjUyLCJ5IjoyNjR9XQ==</parameters>
129+
</inverse>
130+
<equivalent>
131+
<actionName>SET_POS</actionName>
132+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsieCI6MjUyLCJ5IjoyNjR9LHsieCI6MTM0LCJ5IjoyNjZ9XQ==</parameters>
133+
</equivalent>
134+
</actionHistory>
135+
<actionHistory>
136+
<tid>1644943375398</tid>
137+
<authorName>sanmi</authorName>
138+
<inverse>
139+
<actionName>DEL_NODE</actionName>
140+
<parameters>WyI0Yjg2MGFhZS0wNWM5LTRlYjUtYmM0OC1mODAwMGNjYjQyYTgiXQ==</parameters>
141+
</inverse>
142+
<equivalent>
143+
<actionName>ADD_NODE</actionName>
144+
<parameters>WyJYWjpwbG90eW0iLHsid2lkdGgiOjEwMCwiaGVpZ2h0Ijo1MCwic2hhcGUiOiJyZWN0YW5nbGUiLCJvcGFjaXR5IjoxLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJvcmRpbiIseyJ4Ijo1MDcsInkiOjE2MH0se30sIjRiODYwYWFlLTA1YzktNGViNS1iYzQ4LWY4MDAwY2NiNDJhOCJd</parameters>
145+
</equivalent>
146+
</actionHistory>
147+
<actionHistory>
148+
<tid>1644943378630</tid>
149+
<authorName>sanmi</authorName>
150+
<inverse>
151+
<actionName>SET_POS</actionName>
152+
<parameters>WyI0Yjg2MGFhZS0wNWM5LTRlYjUtYmM0OC1mODAwMGNjYjQyYTgiLHsieCI6MTAwLCJ5IjoxMDB9LHsieCI6NTA3LCJ5IjoxNjB9XQ==</parameters>
153+
</inverse>
154+
<equivalent>
155+
<actionName>SET_POS</actionName>
156+
<parameters>WyI0Yjg2MGFhZS0wNWM5LTRlYjUtYmM0OC1mODAwMGNjYjQyYTgiLHsieCI6NTA3LCJ5IjoxNjB9LHsieCI6MTAwLCJ5IjoxMDB9XQ==</parameters>
157+
</equivalent>
158+
</actionHistory>
159+
<actionHistory>
160+
<tid>1644943386853</tid>
161+
<authorName>sanmi</authorName>
162+
<inverse>
163+
<actionName>DEL_EDGE</actionName>
164+
<parameters>WyI0NzcwODQwZi04OGEwLTQ3NTItOWMxOS0yZTdmODlmOGZhNzkiXQ==</parameters>
165+
</inverse>
166+
<equivalent>
167+
<actionName>ADD_EDGE</actionName>
168+
<parameters>W3sic291cmNlSUQiOiI1NTA4NjVkMS0yOGEzLTQwYTktOWUyNS1kM2I2OGFkMjc3ZDYiLCJ0YXJnZXRJRCI6IjRiODYwYWFlLTA1YzktNGViNS1iYzQ4LWY4MDAwY2NiNDJhOCIsImxhYmVsIjoiUFlNIiwic3R5bGUiOnsidGhpY2tuZXNzIjoxLCJiYWNrZ3JvdW5kQ29sb3IiOiIjN2M0ZGZmIiwic2hhcGUiOiJzb2xpZCJ9LCJpZCI6IjQ3NzA4NDBmLTg4YTAtNDc1Mi05YzE5LTJlN2Y4OWY4ZmE3OSJ9XQ==</parameters>
169+
</equivalent>
170+
</actionHistory>
171+
<actionHistory>
172+
<tid>1644943394719</tid>
173+
<authorName>sanmi</authorName>
174+
<inverse>
175+
<actionName>DEL_EDGE</actionName>
176+
<parameters>WyI3ZjJiMWM0Yy04ZjJmLTQyZjQtYjU1Yy0xY2RlNzdiMWU4NTIiXQ==</parameters>
177+
</inverse>
178+
<equivalent>
179+
<actionName>ADD_EDGE</actionName>
180+
<parameters>W3sic291cmNlSUQiOiIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLCJ0YXJnZXRJRCI6IjU1MDg2NWQxLTI4YTMtNDBhOS05ZTI1LWQzYjY4YWQyNzdkNiIsImxhYmVsIjoiQ1UiLCJzdHlsZSI6eyJ0aGlja25lc3MiOjEsImJhY2tncm91bmRDb2xvciI6IiNmNDQzMzYiLCJzaGFwZSI6InNvbGlkIn0sImlkIjoiN2YyYjFjNGMtOGYyZi00MmY0LWI1NWMtMWNkZTc3YjFlODUyIn1d</parameters>
181+
</equivalent>
182+
</actionHistory>
183+
<actionHistory>
184+
<tid>1644943403841</tid>
185+
<authorName>sanmi</authorName>
186+
<inverse>
187+
<actionName>DEL_EDGE</actionName>
188+
<parameters>WyIyZDdlZjk4ZS04Y2E5LTRhZjMtYWQxOS1hYzM0MTQ2ZmZlYmYiXQ==</parameters>
189+
</inverse>
190+
<equivalent>
191+
<actionName>ADD_EDGE</actionName>
192+
<parameters>W3sic291cmNlSUQiOiI0Yjg2MGFhZS0wNWM5LTRlYjUtYmM0OC1mODAwMGNjYjQyYTgiLCJ0YXJnZXRJRCI6IjM2YjlmMWRmLTdjODQtNGYwNy04ZmNlLWM0YTZmNjQ2MjkzMSIsImxhYmVsIjoiWFlNIiwic3R5bGUiOnsidGhpY2tuZXNzIjoxLCJiYWNrZ3JvdW5kQ29sb3IiOiIjMTU2NWMwIiwic2hhcGUiOiJzb2xpZCJ9LCJpZCI6IjJkN2VmOThlLThjYTktNGFmMy1hZDE5LWFjMzQxNDZmZmViZiJ9XQ==</parameters>
193+
</equivalent>
194+
</actionHistory>
195+
<actionHistory>
196+
<tid>1644943683422</tid>
197+
<authorName>sanmi</authorName>
198+
<inverse>
199+
<actionName>UPDATE_NODE</actionName>
200+
<parameters>WyI0Yjg2MGFhZS0wNWM5LTRlYjUtYmM0OC1mODAwMGNjYjQyYTgiLHsid2lkdGgiOjEwMCwiaGVpZ2h0Ijo1MCwic2hhcGUiOiJyZWN0YW5nbGUiLCJvcGFjaXR5IjoxLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJYWjpwbG90eW0iLHRydWVd</parameters>
201+
</inverse>
202+
<equivalent>
203+
<actionName>UPDATE_NODE</actionName>
204+
<parameters>WyI0Yjg2MGFhZS0wNWM5LTRlYjUtYmM0OC1mODAwMGNjYjQyYTgiLHsid2lkdGgiOjExNCwiaGVpZ2h0Ijo1MCwic2hhcGUiOiJyZWN0YW5nbGUiLCJvcGFjaXR5IjoxLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJYWjpwbG90eW0ucHkiLHRydWVd</parameters>
205+
</equivalent>
206+
</actionHistory>
207+
<actionHistory>
208+
<tid>1662144313252</tid>
209+
<authorName>sanmi</authorName>
210+
<inverse>
211+
<actionName>UPDATE_NODE</actionName>
212+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsid2lkdGgiOjE5MywiaGVpZ2h0Ijo1MCwib3BhY2l0eSI6MSwic2hhcGUiOiJyZWN0YW5nbGUiLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJDWjpkdW1teV9jb250cm9sbGVyLnB5Iix0cnVlXQ==</parameters>
213+
</inverse>
214+
<equivalent>
215+
<actionName>UPDATE_NODE</actionName>
216+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsid2lkdGgiOjE5MywiaGVpZ2h0Ijo1MCwib3BhY2l0eSI6MSwic2hhcGUiOiJyZWN0YW5nbGUiLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJDWjpiYW5nbmJhbmcucHkiLHRydWVd</parameters>
217+
</equivalent>
218+
</actionHistory>
219+
<actionHistory>
220+
<tid>1662144436617</tid>
221+
<authorName>sanmi</authorName>
222+
<inverse>
223+
<actionName>UPDATE_NODE</actionName>
224+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsid2lkdGgiOjE5MywiaGVpZ2h0Ijo1MCwib3BhY2l0eSI6MSwic2hhcGUiOiJyZWN0YW5nbGUiLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJDWjpiYW5nbmJhbmcucHkiLHRydWVd</parameters>
225+
</inverse>
226+
<equivalent>
227+
<actionName>UPDATE_NODE</actionName>
228+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsid2lkdGgiOjE5MywiaGVpZ2h0Ijo1MCwib3BhY2l0eSI6MSwic2hhcGUiOiJyZWN0YW5nbGUiLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJDWjpiYW5nYmFuZy5weSIsdHJ1ZV0=</parameters>
229+
</equivalent>
230+
</actionHistory>
231+
<actionHistory>
232+
<tid>1662583658804</tid>
233+
<authorName>Shannon</authorName>
234+
<inverse>
235+
<actionName>UPDATE_NODE</actionName>
236+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsid2lkdGgiOjE5MywiaGVpZ2h0Ijo1MCwib3BhY2l0eSI6MSwic2hhcGUiOiJyZWN0YW5nbGUiLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJDWjpiYW5nYmFuZy5weSIsdHJ1ZV0=</parameters>
237+
</inverse>
238+
<equivalent>
239+
<actionName>UPDATE_NODE</actionName>
240+
<parameters>WyIzNmI5ZjFkZi03Yzg0LTRmMDctOGZjZS1jNGE2ZjY0NjI5MzEiLHsid2lkdGgiOjE5MywiaGVpZ2h0Ijo1MCwib3BhY2l0eSI6MSwic2hhcGUiOiJyZWN0YW5nbGUiLCJiYWNrZ3JvdW5kQ29sb3IiOiIjZmZjYzAwIiwiYm9yZGVyQ29sb3IiOiIjMDAwIiwiYm9yZGVyV2lkdGgiOjF9LCJDWjpzaGFubm9uLnB5Iix0cnVlXQ==</parameters>
241+
</equivalent>
242+
</actionHistory>
243+
</graph>
244+
</graphml>

tools/shannon.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import numpy as np
2+
import concore
3+
setpoint = 67.5
4+
5+
6+
def bangbang_controller(ym):
7+
amp = 0
8+
if ym[0]>setpoint +2.5:
9+
amp = 3
10+
elif ym[0]<setpoint -2.5:
11+
amp = 1
12+
13+
14+
ustar = np.array([amp,30])
15+
return ustar
16+
17+
18+
concore.default_maxtime(150)
19+
concore.delay = 0.02
20+
init_simtime_u = "[0.0, 0.0,0.0]"
21+
init_simtime_ym = "[0.0, 70.0,91]"
22+
u = np.array([concore.initval(init_simtime_u)]).T
23+
print("Shannon's PID controller: setpoint is "+str(setpoint))
24+
while(concore.simtime<concore.maxtime):
25+
while concore.unchanged():
26+
ym = concore.read(1,"ym",init_simtime_ym)
27+
ym = np.array(ym)
28+
29+
ustar = bangbang_controller(ym)
30+
31+
print(str(concore.simtime) + " u="+str(ustar) + "ym="+str(ym))
32+
concore.write(1,"u",list(ustar),delta=0)

0 commit comments

Comments
 (0)