-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcontrol-block-diagram-syntax.html
231 lines (205 loc) · 12.9 KB
/
control-block-diagram-syntax.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<!-- 2022-W11-4 02:12 -->
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Control Block Diagram Syntax</title>
<meta name="author" content="Inanna" />
<meta name="description" content="An overview of the syntax used on the site for control diagrams." />
<meta name="generator" content="Org Mode" />
<link href="/site.css" rel="stylesheet" type="text/css" /><link href="images/website-icon.png" rel="icon" />
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
displayAlign: "center",
displayIndent: "0em",
"HTML-CSS": { scale: 100,
linebreaks: { automatic: "false" },
webFont: "TeX"
},
SVG: {scale: 100,
linebreaks: { automatic: "false" },
font: "TeX"},
NativeMML: {scale: 100},
TeX: { equationNumbers: {autoNumber: "AMS"},
MultLineWidth: "85%",
TagSide: "right",
TagIndent: ".8em"
}
});
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS_HTML"></script>
</head>
<body>
<div id="preamble" class="status">
<div><a href="/index.html"><img alt="An abstract logo representing a series of three assembly line stamping machines with the words CONS, DEV, and embalzoned in white on each machine." id="site-logo" src="/images/website-logo.png" /></a></div>
</div>
<div id="content" class="content">
<h1 class="title">Control Block Diagram Syntax</h1>
<div id="table-of-contents" role="doc-toc">
<h2>Table of Contents</h2>
<div id="text-table-of-contents" role="doc-toc">
<ul>
<li><a href="#org11ab20d">Introduction</a></li>
<li><a href="#orgea124f9">Nodes</a></li>
<li><a href="#orgba26e13">Edges</a>
<ul>
<li><a href="#orgecbe72e">Process Nodes</a></li>
</ul>
</li>
<li><a href="#org36ce269">Text</a></li>
<li><a href="#orgd0b5181">Example Diagrams</a>
<ul>
<li><a href="#org4a016db">Thermostat</a></li>
<li><a href="#orgeba1788">Sailboat</a></li>
</ul>
</li>
</ul>
</div>
</div>
<div id="outline-container-org11ab20d" class="outline-2">
<h2 id="org11ab20d">Introduction</h2>
<div class="outline-text-2" id="text-org11ab20d">
<p>
Control diagrams are a useful tool for representing control systems. However, there doesn't appear to be any standard for syntax highlighting . Therefore, I have decided to come up with a little syntax highlighting document of sorts, as well as a standardized
</p>
</div>
</div>
<div id="outline-container-orgea124f9" class="outline-2">
<h2 id="orgea124f9">Nodes</h2>
<div class="outline-text-2" id="text-orgea124f9">
<dl class="org-dl">
<dt>actuators</dt><dd><p>
red and in boxes
</p>
<div id="org9aae874" class="figure">
<p><img src="images/block-diagram-actuator_96ae0f8e-df0f-4160-8f38-5fa3281a3ae3.png" alt="block-diagram-actuator_96ae0f8e-df0f-4160-8f38-5fa3281a3ae3.png" />
</p>
</div></dd>
<dt>inputs and disturbances</dt><dd>Inputs and disturbances are indicated with red font that describes the input or disturbance <label class="sidenote-number" for="1"><sup>1</sup></label><input checked="checked" id="1" style="display:none" type="checkbox" /><span class="sidenote"><span class="sidenote-number"> 1</span> Disturbances may be simply labeled 'disturbances'.</span> on a white background. Similarly to actuators these are to indicate action</dd>
</dl>
<pre class="example">
</pre>
<dl class="org-dl">
<dt>summing / product points</dt><dd><p>
Summing points and other similar regions (where multiple signals are added together) should be indicated with a \(\Sigma\) in a circle rather than a circle. Likewise, if an alternative function is being used, such as multiplication, use the \(\Pi\) symbol to indicate a product.
</p>
<p>
Likewise, other similar, simple functions with multiple inputs can be drawn similarly.
</p>
<div id="orgfcf35c2" class="figure">
<p><img src="./images/actuator-input-edges_0d80255a-8ff5-4e31-9d0c-10eec4ff5efc.png" alt="actuator-input-edges_0d80255a-8ff5-4e31-9d0c-10eec4ff5efc.png" />
</p>
</div></dd>
<dt>comparators</dt><dd>For certain electric circuts</dd>
</dl>
<dl class="org-dl">
<dt>bang-bang controllers</dt><dd>Bang-bang controllers are indicated with a simple bang-bang controller symbol alongside the threshold values to transfer between the two states.</dd>
</dl>
</div>
</div>
<div id="outline-container-orgba26e13" class="outline-2">
<h2 id="orgba26e13">Edges</h2>
<div class="outline-text-2" id="text-orgba26e13">
<dl class="org-dl">
<dt>actuator and input edges</dt><dd>red, similarly to actuators, to indicate action</dd>
</dl>
<div id="orgfda108e" class="figure">
<p><img src="./images/actuator-input-edges_0d80255a-8ff5-4e31-9d0c-10eec4ff5efc.png" alt="actuator-input-edges_0d80255a-8ff5-4e31-9d0c-10eec4ff5efc.png" />
</p>
</div>
</div>
<div id="outline-container-orgecbe72e" class="outline-3">
<h3 id="orgecbe72e">Process Nodes</h3>
<div class="outline-text-3" id="text-orgecbe72e">
<p>
Process nodes are
</p>
</div>
</div>
</div>
<div id="outline-container-org36ce269" class="outline-2">
<h2 id="org36ce269">Text</h2>
<div class="outline-text-2" id="text-org36ce269">
<p>
This is a collection of .
</p>
<dl class="org-dl">
<dt>variable names</dt><dd><i>italics</i></dd>
<dt>function names</dt><dd><b><i>bolded italics</i></b></dd>
<dt>transfer functions</dt><dd>regular font</dd>
</dl>
<p>
Along with color schemes, the font choices also impact the control diagram. Names in <i>italics</i> are to be taken as variable names, whereas names in <b><i>bolded italics</i></b> are function names.
</p>
</div>
</div>
<div id="outline-container-orgd0b5181" class="outline-2">
<h2 id="orgd0b5181">Example Diagrams</h2>
<div class="outline-text-2" id="text-orgd0b5181">
</div>
<div id="outline-container-org4a016db" class="outline-3">
<h3 id="org4a016db">Thermostat</h3>
<div class="outline-text-3" id="text-org4a016db">
<div class="org-src-container">
<pre class="src src-dot" id="orge3d36c1"><span style="color: #E53935; font-style: italic;">digraph</span> <span style="font-weight: bold; font-style: italic;">feedback</span> <span style="color: #494949;">{</span>
<span style="font-style: italic;">splines=</span>ortho;
<span style="font-style: italic;">size=</span><span style="color: #494949;">"15,15!"</span>;
<span style="font-style: italic;">fontpath=</span><span style="color: #494949;">"~/.local/share/fonts"</span>;
<span style="color: #E53935; font-style: italic;">node</span><span style="color: #bbb;">[</span><span style="font-style: italic;">shape=</span><span style="color: #E53935;">record</span>,
<span style="font-style: italic;">fontname=</span><span style="color: #494949;">"Jura"</span>
<span style="font-style: italic;">penwidth=</span>0,
<span style="font-style: italic;">style=</span><span style="color: #E53935;">filled</span>,
<span style="font-style: italic;">fillcolor=</span><span style="color: #494949;">"</span><span style="color: #000000; background-color: #f5f5f5;">#f5f5f5</span><span style="color: #494949;">"</span><span style="color: #bbb;">]</span>;
<span style="color: #E53935; font-style: italic;">edge</span><span style="color: #bbb;">[</span><span style="font-style: italic;">penwidth=</span>3<span style="color: #bbb;">]</span>;
<span style="color: #bbb;">{</span>
<span style="color: #E53935; font-style: italic;">node</span><span style="color: #494949;">[</span><span style="font-style: italic;">fillcolor=</span><span style="color: #494949;">white</span>, <span style="font-style: italic;">fontcolor=</span><span style="color: #494949;">"</span><span style="color: #ffffff; background-color: #e53935;">#e53935</span><span style="color: #494949;">"</span><span style="color: #494949;">]</span>;
disturbances;
sp<span style="color: #494949;">[</span><span style="font-style: italic;">label=</span><span style="color: #494949;">"\{...1,0,1...\}"</span>, <span style="font-style: italic;">fontname=</span><span style="color: #494949;">"Jura Italic"</span><span style="color: #494949;">]</span>;
<span style="color: #bbb;">}</span>
out<span style="color: #bbb;">[</span><span style="font-style: italic;">fillcolor=</span><span style="color: #494949;">white</span>, <span style="font-style: italic;">label=</span><span style="color: #494949;">"output"</span><span style="color: #bbb;">]</span>;
conn<span style="color: #bbb;">[</span><span style="font-style: italic;">shape=</span><span style="color: #E53935;">point</span>, <span style="font-style: italic;">fillcolor=</span><span style="color: #494949;">"</span><span style="color: #ffffff; background-color: #000000;">#000000</span><span style="color: #494949;">"</span> <span style="font-style: italic;">penwidth=</span>3<span style="color: #bbb;">]</span>;
comp<span style="color: #bbb;">[</span><span style="font-style: italic;">shape=</span><span style="color: #E53935;">circle</span>, <span style="font-style: italic;">label=</span><span style="color: #494949;">"Σ"</span>, <span style="font-style: italic;">fontname=</span><span style="color: #494949;">"Jura Italic Bold"</span><span style="color: #bbb;">]</span>;
actuator<span style="color: #bbb;">[</span><span style="font-style: italic;">fillcolor=</span><span style="color: #494949;">"</span><span style="color: #ffffff; background-color: #e53935;">#e53935</span><span style="color: #494949;">"</span>, <span style="font-style: italic;">fontcolor=</span><span style="color: #494949;">white</span>, <span style="font-style: italic;">label=</span><span style="color: #494949;">"heater"</span><span style="color: #bbb;">]</span>;
<span style="color: #bbb;">{</span>
<span style="font-style: italic;">rank=</span><span style="color: #E53935;">min</span>;
disturbances<span style="color: #bbb;">}</span>
<span style="color: #bbb;">{</span>
<span style="font-style: italic;">rank=</span><span style="color: #E53935;">same</span>;
sp->comp<span style="color: #494949;">[</span><span style="font-style: italic;">color=</span><span style="color: #494949;">"</span><span style="color: #ffffff; background-color: #E53935;">#E53935</span><span style="color: #494949;">"</span><span style="color: #494949;">]</span>
comp->actuator
actuator->process<span style="color: #494949;">[</span><span style="font-style: italic;">color=</span><span style="color: #494949;">"</span><span style="color: #ffffff; background-color: #e53935;">#e53935</span><span style="color: #494949;">"</span><span style="color: #494949;">]</span>
process -> conn <span style="color: #494949;">[</span><span style="font-style: italic;">arrowhead=</span><span style="color: #E53935;">none</span><span style="color: #494949;">]</span>
conn -> out
<span style="color: #bbb;">}</span>
<span style="color: #bbb;">{</span> <span style="font-style: italic;">rank=</span><span style="color: #E53935;">max</span>; sensor;
<span style="color: #bbb;">}</span>
disturbances-> process<span style="color: #bbb;">[</span><span style="font-style: italic;">color=</span><span style="color: #494949;">"</span><span style="color: #ffffff; background-color: #e53935;">#e53935</span><span style="color: #494949;">"</span><span style="color: #bbb;">]</span>
conn->sensor
sensor->comp
<span style="color: #494949;">}</span>
</pre>
</div>
<p>
Here we define a simple thermostat with a set point that
</p>
<div id="org527facc" class="figure">
<p><img src="./images/thermostaht-example_df43ffb6-638b-46e5-a46e-215e72f4cfcc.png" alt="thermostaht-example_df43ffb6-638b-46e5-a46e-215e72f4cfcc.png" />
</p>
</div>
</div>
</div>
<div id="outline-container-orgeba1788" class="outline-3">
<h3 id="orgeba1788">Sailboat</h3>
</div>
</div>
<!-- Footnotes --><!--
<div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara">Disturbances may be simply labeled 'disturbances'.</p></div></div>
--></div>
<div id="postamble" class="status">
<p class="date">Last Modified: 2021-W49-5 23:43</p><p class="creator">Generated Using: <a href="https://www.gnu.org/software/emacs/">Emacs</a> 27.2 (<a href="https://orgmode.org">Org</a> mode 9.4.6)</p><p class="license">Except where otherwise noted content on <a href="https://cons.dev">cons.dev</a> is licensed under a <a href="https://creativecommons.org/licenses/by-sa/4.0/" rel="license">Creative Commons Attribution-ShareAlike 4.0 International License</a>.</p>
</div>
</body>
</html>