<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://icarusunimelb.github.io/personal-blogs/feed.xml" rel="self" type="application/atom+xml" /><link href="https://icarusunimelb.github.io/personal-blogs/" rel="alternate" type="text/html" /><updated>2025-05-04T06:00:22+00:00</updated><id>https://icarusunimelb.github.io/personal-blogs/feed.xml</id><title type="html">Being Bayesian, even just a bit</title><subtitle>A space to share insights on deep learning, with a focus on Bayesian approaches.
</subtitle><author><name>Yinsong Chen</name><email>yinsong.chen@deakin.edu.au</email></author><entry><title type="html">Some basic knowledge in control engineering</title><link href="https://icarusunimelb.github.io/personal-blogs/control/2025/04/25/Control.html" rel="alternate" type="text/html" title="Some basic knowledge in control engineering" /><published>2025-04-25T00:00:00+00:00</published><updated>2025-04-25T00:00:00+00:00</updated><id>https://icarusunimelb.github.io/personal-blogs/control/2025/04/25/Control</id><content type="html" xml:base="https://icarusunimelb.github.io/personal-blogs/control/2025/04/25/Control.html"><![CDATA[<h2 id="laplace-transform">Laplace transform</h2>
<h3 id="laplace-transform-1">Laplace transform</h3>
<p>\[F(s) = L[f(t)] = \int_0^{\inf}f(t)e^{-st}dt\], where \(s = \sigma+\omega i\), i.e., \(s\) is a complex number. \(s\) is a complex variable in frequency domain and \(t\) is a real variable in time domain.</p>

<p>The inverse Laplace transform is given by the following complex integral:
\[f(t)=L^{-1}[F] (t)=\frac{1}{2\pi i}\lim_{T\rightarrow \inf}\int_{\gamma-iT}^{\gamma+iT}e^{st}F(s)ds\], where \(\gamma\) is a real number so that the contour path of integration is in the region of convergence of \(F(s)\). 
The Laplace transform’s key property is that it converts differentiation and integration in the time domain into multiplication and division by \(s\) in the Laplace domain.</p>

<p>The Laplace transform \(L[f(t)]\) exists if it has expontential order and \(\int_0^b|f(t)|dt\) exists for any \(b&gt;0\). OR
The Laplace transform \(L[f(t)]\) exists if:</p>
<ol>
  <li>\(f(t)\) has expontential order and</li>
  <li>on every closed interval \([0,b]\)
    <ol>
      <li>\(f(t)\) is bounded,</li>
      <li>\(f(t)\) is piecewise continuous, and</li>
      <li>\(f(t)\) has at most a finite number of discontinuities.</li>
    </ol>
  </li>
</ol>

<h3 id="properties-and-theorems">Properties and theorems</h3>
<p>Linearity: 
\[L[af(t)+bg(t)] = aL[f(t)]+bL[g(t)]\].</p>

<p>Derivative:
\[L[f^{(n)}(t)] = s^n L(f(t))-\sum_{k=1}^{n}s^{n-k}f^{k-1}(0)\].</p>

<p>Integeration:
\[L[\int_0^tdt\int_0^tdt…\int_0^tf(t)dt] = \frac{1}{s^n}L[f(t)]\]. 
\[\int_s^{\inf}L[f(t)]ds = L[\frac{f(t)}{t}]\].</p>

<p>Time shifting:
\[L[f(t-\tau)u(t-\tau)] = e^{-\tau s}F(s)\], where \(u(t)\) is the Heaviside step function.
\[L[e^{at}f(t)]=L[f(t)]\]</p>

<p>Convolution:
\[L[f(t)*g(t)] = L[f(t)]\cdot L[g(t)]\]</p>

<h2 id="coding-basic-control-blocks-in-simulation">Coding basic control blocks in simulation</h2>
<p>In control system simulations, complex controllers (like PID controllers) are built by connecting simple fundamental blocks. Each block has a specific mathematical behavior and role.</p>

<h2 id="gain-block">Gain block</h2>
<h3 id="concept">Concept</h3>
<p>A gain block multiplies an input signal by a constant factor (the gain). It scales the amplitude of the signal up or down.</p>

<h3 id="mathematical-equation">Mathematical Equation</h3>
<p>If \(K\) is the gain constant and \(x(t)\) is the input, then the output \(y(t)\) is \(y(t)=K\cdot x(t)\).  There is no differential equation (no dynamics) for a pure gain since it’s an algebraic scaling.</p>

<h3 id="transfer-function">Transfer Function</h3>
<p>In the Laplace domain, a gain is simply \(G(s) = K\).  This means the output-to-input ratio is \(K\) for all frequencies (a flat frequency response).</p>

<h3 id="role-in-control-systems">Role in Control Systems</h3>
<p>Gain blocks are ubiquitous in controllers. In a PID controller, the proportional term is essentially a gain block (the proportional gain \(K_p\) multiplying the error signal).</p>

<h3 id="code-implementation">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">gain_block</span><span class="p">(</span><span class="n">yi</span><span class="p">,</span><span class="nb">p</span><span class="p">):</span>
    <span class="n">yo</span> <span class="o">=</span> <span class="nb">p</span> <span class="o">*</span> <span class="n">yi</span>
    <span class="k">return</span> <span class="n">yo</span></code></pre></figure>

<h2 id="integrator-block">Integrator Block</h2>
<h3 id="concept-1">Concept</h3>
<p>An integrator block produces an output that is the time integral of its input.</p>

<h3 id="mathematical-equation-1">Mathematical Equation</h3>
<p>In continuous time, the integrator is described by a differential equation: \(y(t)=\int_0^tx(\tau)d\tau+y(0)\), where \(y(0)\) is the initial output.</p>

<h3 id="transfer-function-1">Transfer Function</h3>
<p>The Laplace domain transfer function of an integrator (with zero initial condition) is: \(G(s)=\frac{Y(s)}{X(s)} = \frac{1}{s}\). The \(\frac{1}{s}\) transfer function has a pole at the origin (s = 0), indicating the integrator’s accumulating behavior. An integrator provides a 90° phase lag (–90°) and its gain decreases with frequency (it acts like a low-pass element, amplifying low-frequency/steady components since as \(s\rightarrow 0, \frac{1}{s}\) is large).</p>

<h3 id="role-in-control-systems-1">Role in Control Systems</h3>
<p>In PID control, the integrator block is responsible for the integral action. Its role is to eliminate steady-state errors: by accumulating the error over time, it drives the long-term average error to zero. For example, if a system has a constant offset, the integrator will ramp up its output until the offset is corrected. However, integrators can introduce sluggishness and overshoot if overused, and they can suffer from wind-up. Wind-up means if the controller output saturates (hits a physical limit) but the integrator continues to integrate the error, the accumulated value can become very large. When the saturation condition ends, this “wound-up” integrator can cause an overshoot. To mitigate this, practical PID controllers use techniques like integrator clamping or reset (often involving a limiter on the integrator state – see Limiter block below – to implement anti-windup).</p>

<h3 id="code-implementation-1">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="c1"># yo/yi = K / sT</span>
<span class="k">def</span> <span class="nf">int_block</span><span class="p">(</span><span class="n">h</span><span class="p">,</span><span class="n">x0</span><span class="p">,</span><span class="n">yi</span><span class="p">,</span><span class="nb">p</span><span class="p">):</span>
    <span class="n">f</span> <span class="o">=</span> <span class="n">yi</span> <span class="o">*</span> <span class="nb">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">/</span> <span class="nb">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
    <span class="n">x1</span> <span class="o">=</span> <span class="n">x0</span> <span class="o">+</span> <span class="n">h</span> <span class="o">*</span> <span class="n">f</span>
    <span class="n">yo</span> <span class="o">=</span> <span class="n">x1</span>      
    <span class="k">return</span> <span class="n">yo</span><span class="p">,</span> <span class="n">x1</span><span class="p">,</span> <span class="n">f</span></code></pre></figure>

<h2 id="lag-block-first-order-lag">Lag Block (First-Order Lag)</h2>
<h3 id="concept-2">Concept</h3>
<p>A lag block (often called a first-order lag or first-order low-pass filter) is a dynamic block that smooths and delays the response of the output relative to changes in the input. Conceptually, it does not allow the output to instantly jump to follow the input; instead, the output lags behind the input. If the input changes suddenly, the lag block’s output will rise or fall gradually, typically in an exponential fashion. At steady state (after enough time), a first-order lag will eventually make its output equal to its input (assuming a constant input), so it has unity DC (steady-state) gain. This block is analogous to a resistor-capacitor (RC) filter in electronics, which smooths a signal.</p>

<h3 id="mathematical-equation-2">Mathematical Equation</h3>
<p>A first-order lag is characterized by a time constant \(\tau\) which dictates how quickly it responds. The differential equation is commonly written as: \(\tau \frac{d}{dt}y(t)= x(t) - y(t)\). This equation says the rate of change of y is proportional to the difference between the current input and the current output.  This shows that if y is lower than the input x, y will rise (because x−y is positive), and if y is higher than x, y will fall, until eventually y equals x in steady state.</p>

<h3 id="transfer-function-2">Transfer Function</h3>
<p>The transfer function of a first-order lag (with unity steady-state gain) is: \(G(s)=\frac{Y(s)}{X(s)} = \frac{1}{1+s\tau}\). This has a single pole at \(s=-\frac{1}{\tau}\). At low frequency (s small), \(G(s)\sim 1\) (so steady-state gain is 1). At high frequency (|s| large), \(G(s)\sim \frac{1}{s\tau}\), which tends toward 0 — meaning fast changes in the input are attenuated (filtered out). In the time domain, a step input to this transfer function yields an exponential response.</p>

<h3 id="role-in-control-systems-2">Role in Control Systems</h3>
<p>Lag blocks are often used to model and simulate the inherent dynamics of physical processes or sensors which cannot respond instantaneously (e.g. a thermometer lagging behind temperature changes). In control, they are also used deliberately to filter signals. For example, in a PID controller, a derivative action is very sensitive to noise, so a first-order lag (low-pass filter) is often applied to the derivative term to create a filtered derivative. This is effectively adding a lag to avoid responding to very rapid fluctuations (noise). In terms of classical control design, a phase-lag compensator (not to be confused with just any lag filter) is sometimes implemented to improve steady-state accuracy by introducing a pole near the origin (with a nearby zero to limit the phase impact). The lag block here is the fundamental form of those ideas — it smooths the controller’s action.</p>

<h3 id="code-implementation-2">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="c1"># yo/yi = K / (1 + sT)</span>
<span class="k">def</span> <span class="nf">lag_block</span><span class="p">(</span><span class="n">h</span><span class="p">,</span><span class="n">x0</span><span class="p">,</span><span class="n">yi</span><span class="p">,</span><span class="nb">p</span><span class="p">):</span>   
    <span class="n">f</span> <span class="o">=</span> <span class="p">(</span><span class="n">yi</span> <span class="o">-</span> <span class="n">x0</span><span class="p">)</span> <span class="o">/</span> <span class="nb">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
    <span class="n">x1</span> <span class="o">=</span> <span class="n">x0</span> <span class="o">+</span> <span class="n">h</span> <span class="o">*</span> <span class="n">f</span>
    <span class="n">yo</span> <span class="o">=</span> <span class="nb">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="n">x1</span>    
    <span class="k">return</span> <span class="n">yo</span><span class="p">,</span> <span class="n">x1</span><span class="p">,</span> <span class="n">f</span></code></pre></figure>

<h2 id="lead-lag-block">Lead-Lag Block</h2>
<h3 id="concept-3">Concept</h3>
<p>A lead-lag block combines the characteristics of a lead compensator and a lag compensator in one transfer function. It has one zero and one pole, giving it the ability to both accelerate the response for fast changes (lead effect) and smooth or stabilize the response for slow changes (lag effect). In essence, a lead-lag network can provide phase lead at some frequencies and phase lag at others. If configured as a lead compensator, the block produces an output that anticipates the input changes (a phase-advanced response, somewhat like a differentiator with a steady-state gain). If configured as a lag compensator, it produces an output that is a delayed, smoothed version of the input (phase-delayed, like a filter with higher steady-state gain for accuracy). The general lead-lag block is very flexible and is widely used in control design to shape the system response.</p>

<h3 id="mathematical-equation-3">Mathematical Equation</h3>
<p>A typical continuous-time lead-lag compensator can be represented by the transfer function: \(G(s) = \frac{1+sT_{lead}}{1+sT_{lag}}\), where \(T_{lead}\) and \(T_{lag}\) are time constants for the zero (lead) and pole (lag) respectively. Expanding this into a differential equation in the time domain, we get: \(T_{lag}\frac{d}{dt}y(t)+y(t)=T_{lead}\frac{d}{dt}x(t)+x(t)\). This equation shows that the output \(y(t)\) depends on both the instantaneous input \(x(t)\) and their derivatives. If \(T_{lead}&gt;T_{lag}\), the term involving \(\frac{d}{dt}x(t)\) is more influential (yielding a stronger “lead” or anticipative action). If \(T_{lead}&lt; T_{lag}\), the output changes more slowly relative to the input (a stronger “lag” action). Often, the design is such that at steady state the gain is 1 (if \(T_{lead}= T_{lag}\) or an appropriate gain factor is included) so that a constant input yields equal constant output.</p>

<h3 id="transfer-function-3">Transfer Function</h3>
<p>As given above \(G(s) = \frac{1+sT_{lead}}{1+sT_{lag}}\). This single zero–single pole transfer function will have a zero at \(s=-\frac{1}{T_{lead}}\) and a pole at \(s=-\frac{1}{T_{lag}}\). The frequency response of this network can boost certain frequency ranges and attenuate others. For instance, a lead compensator (zero closer to the origin than the pole) can add phase lead and increase high-frequency gain (like a differentiator, improving transient response), whereas a lag compensator (pole closer to origin) adds phase lag and increases low-frequency gain (improving steady-state accuracy, similar to an integrator effect).</p>

<h3 id="role-in-control-systems-3">Role in Control Systems</h3>
<p>Lead-lag blocks are important in control system tuning and design. They can be used to implement refined versions of PID controllers or other compensators. For example, the derivative action in a PID can be seen as a lead element (it provides anticipation by responding to the rate of change of error), but in practice a pure differentiator is not physical and is noisy. So, a lead-lag approximation is used: the derivative is implemented as a lead compensator with a small lag to filter out high-frequency noise. Also, many PID controllers in industry have an equivalent “lead-lag” form: the PI part introduces a pole at zero (integrator) and a zero to cancel it out partially, and the derivative part introduces a zero and a high-frequency pole. In summary, a lead-lag block can act as a building block for custom controllers: a lead portion to improve stability margins and speed up response, and a lag portion to ensure zero steady-state error or desired low-frequency gain.</p>

<h3 id="code-implementation-3">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="c1"># yo/yi = (1 + sTa) / (1 + sTb)   </span>
<span class="k">def</span> <span class="nf">leadlag_block</span><span class="p">(</span><span class="n">h</span><span class="p">,</span><span class="n">x0</span><span class="p">,</span><span class="n">yi</span><span class="p">,</span><span class="nb">p</span><span class="p">):</span>  
    <span class="n">f</span> <span class="o">=</span> <span class="p">(</span><span class="n">yi</span> <span class="o">-</span> <span class="n">x0</span><span class="p">)</span> <span class="o">/</span> <span class="nb">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
    <span class="n">x1</span> <span class="o">=</span> <span class="n">x0</span> <span class="o">+</span> <span class="n">h</span> <span class="o">*</span> <span class="n">f</span>
    <span class="n">yo</span> <span class="o">=</span> <span class="n">x1</span> <span class="o">+</span> <span class="nb">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">*</span> <span class="p">(</span><span class="n">yi</span> <span class="o">-</span> <span class="n">x0</span><span class="p">)</span> <span class="o">/</span> <span class="nb">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
    <span class="k">return</span> <span class="n">yo</span><span class="p">,</span> <span class="n">x1</span><span class="p">,</span> <span class="n">f</span></code></pre></figure>

<h2 id="limiter-block-saturation">Limiter Block (Saturation)</h2>
<h3 id="concept-4">Concept</h3>
<p>A limiter block (often called a saturation block) restricts a signal to a specified range. Conceptually, it “clamps” the output so it cannot exceed a maximum value or go below a minimum value. Any input beyond those bounds gets limited to the nearest bound. This block represents the physical limits of actuators or variables in simulation (no infinite or unbounded outputs in a real system). The output of a limiter is a piecewise-linear function of the input – linear (slope 1) within the allowed region, flat (slope 0) once the limit is hit.</p>

<h3 id="mathematical-equation-4">Mathematical Equation</h3>
<p>The limiter’s behavior can be described piecewise: If we denote the lower limit as \(L_{min}\) and upper limit as \(L_{max}\), and \(u(t)\) is the input, the output \(y(t)\) is:
\[ y(t) = 
\begin{cases} 
    L_{max} &amp; \text{if } u(t) &gt;= L_{max}, \\ 
    L_{min} &amp; \text{if } u(t)&lt;= L_{min}, \\ 
    u(t) &amp; \text{if } L_{min}&lt; u(t)&lt; L_{max} 
\end{cases}
\].
This is a static nonlinearity (no dependence on derivatives or integrals). There is no linear differential equation for a limiter because it’s a non-linear operation (it’s essentially an if-else condition).</p>

<h3 id="transfer-function-4">Transfer Function</h3>
<p>A limiter does not have a transfer function in the usual sense, because it is not a linear element.</p>

<h3 id="role-in-control-systems-4">Role in Control Systems</h3>
<p>Limiters are crucial for simulating real-world controls because actuators have limits (valves fully open/closed, motors max out at some torque or voltage, etc.). In a PID controller context, a limiter is commonly applied to the controller output (the manipulated variable) to represent the actuator saturation. Limiters also play a role in integrator anti-windup schemes: when the actuator saturates, the integrator part of a PID should ideally stop integrating (or slow down) to prevent wind-up. Some PID implementations include an internal limiter on the integrator state or error accumulation. Even if not explicitly part of the PID formula, adding a saturation block and logic to prevent windup is a common practice. Thus, the limiter ensures the simulated control signal stays realistic and protects the system model from unrealistically large signals.</p>

<h3 id="code-implementation-4">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby">  
<span class="k">def</span> <span class="nf">lim_block</span><span class="p">(</span><span class="n">yi</span><span class="p">,</span><span class="nb">p</span><span class="p">):</span>
    <span class="n">min_lim</span> <span class="o">=</span> <span class="nb">p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span>
    <span class="n">max_lim</span> <span class="o">=</span> <span class="nb">p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span>
    <span class="k">if</span> <span class="n">yi</span> <span class="o">&lt;</span> <span class="ss">min_lim:
        </span><span class="n">yo</span> <span class="o">=</span> <span class="n">min_lim</span>
    <span class="n">elif</span> <span class="n">yi</span> <span class="o">&gt;</span> <span class="ss">max_lim:
        </span><span class="n">yo</span> <span class="o">=</span> <span class="n">max_lim</span>
    <span class="ss">else:
        </span><span class="n">yo</span> <span class="o">=</span> <span class="n">yi</span>
    <span class="k">return</span> <span class="n">yo</span></code></pre></figure>

<h2 id="washout-block-high-pass-filter">Washout Block (High-Pass Filter)</h2>
<h3 id="concept-5">Concept</h3>
<p>A washout block is essentially a high-pass filter that “washes out” steady-state (low-frequency) components of a signal. It allows transient or fast-changing components of the input to pass through to the output, but if the input stays constant (steady), the output will eventually go to zero. In other words, the washout block has zero gain at DC (frequency 0) and significant gain at higher frequencies. Conceptually, you can think of it as a circuit with a capacitor in series: a sudden change (transient) goes through (a capacitor passes a surge), but a constant input is blocked (a capacitor in steady state is an open circuit). The term “washout” comes from the idea that it washes out any steady offset, letting only changes through. In control systems, washout filters are used when we want a controller to respond only to deviations (changes) and ignore constant biases.</p>

<h3 id="mathematical-equation-5">Mathematical Equation</h3>
<p>A continuous-time washout filter can be described by a first-order high-pass filter differential equation. One common form is: \(T\frac{d}{dt}y(t)+y(t)=T\frac{d}{dt}x(t)\)z, where \(T\) is the washout time constant. It basically says the output y decays with time constant T unless the input x is changing. If the input is rapidly changing, the \(\frac{d}{dt}x(t)\) term can create a significant output.</p>

<h3 id="transfer-function-5">Transfer Function</h3>
<p>Taking Laplace transforms of the above equation (assuming zero initial conditions) gives the transfer function of a washout filter: \(G(s)=\frac{Y(s)}{X(s)}=\frac{sT}{1+sT}\). This is a standard first-order high-pass filter. At low frequency \(s\rightarrow 0\), \(G(s)\sim 0\) (zero gain at DC, meaning constant inputs are blocked). At high frequency \(s\rightarrow \inf\), \(G(s)\sim 1\) (high-frequency components pass through with roughly unity gain).</p>

<h3 id="role-in-control-systems-5">Role in Control Systems</h3>
<p>A washout block is not part of a standard PID controller, but it appears in specific control systems where we need to ignore steady-state errors or inputs and focus only on changes. For example, power system stabilizers (PSS in electrical grids) use washout filters on speed or frequency signals so that only oscillations (like 0.1–2 Hz swings) are fed into the stabilizer, and any steady speed error doesn’t cause a stabilizer action. Essentially, the washout ensures the controller has no effect in steady-state conditions (hence zero steady-state gain), preventing unnecessary action or integrator wind-up in those conditions. While PID integrators respond to steady-state error (that’s their job), a washout is almost the opposite – it ensures a controller (or part of it) ignores steady errors and only reacts to transients.</p>

<h3 id="code-implementation-5">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby">  
<span class="c1"># yo/yi = s / (1 + sT)</span>
<span class="k">def</span> <span class="nf">wout_block</span><span class="p">(</span><span class="n">h</span><span class="p">,</span><span class="n">x0</span><span class="p">,</span><span class="n">yi</span><span class="p">,</span><span class="nb">p</span><span class="p">):</span>  
    <span class="n">f</span> <span class="o">=</span> <span class="p">(</span><span class="n">yi</span> <span class="o">-</span> <span class="n">x0</span><span class="p">)</span> <span class="o">/</span> <span class="nb">p</span>
    <span class="n">x1</span> <span class="o">=</span> <span class="n">x0</span> <span class="o">+</span> <span class="n">h</span> <span class="o">*</span> <span class="n">f</span>
    <span class="n">yo</span> <span class="o">=</span> <span class="p">(</span><span class="n">yi</span> <span class="o">-</span> <span class="n">x1</span><span class="p">)</span> <span class="o">/</span> <span class="nb">p</span>
    <span class="k">return</span> <span class="n">yo</span><span class="p">,</span> <span class="n">x1</span><span class="p">,</span> <span class="n">f</span></code></pre></figure>

<h2 id="multiplier-block-product">Multiplier Block (Product)</h2>
<h3 id="concept-6">Concept</h3>
<p>A multiplier block (often called a Product block in simulation software) takes two or more input signals and multiplies them together​. Conceptually, this block is used whenever the interaction between signals is multiplicative. This could be as simple as scaling one signal by another, or modeling a physical law that is multiplicative (for instance, computing power as voltage × current, or torque as force × lever arm length). The multiplication can be between a signal and a constant, which effectively makes it a variable gain, or between two time-varying signals, which generally creates a nonlinear relationship. Multipliers do not have memory; the output at any time depends only on the inputs at that same time (assuming we are not multiplying by a delayed version of a signal, etc.).</p>

<h3 id="mathematical-equation-6">Mathematical Equation</h3>
<p>\(y(t) = x_1(t)\times x_2(t)\).</p>

<h3 id="transfer-function-6">Transfer Function</h3>
<p>Like the limiter, a general multiplier of two signals doesn’t have a simple transfer function, because multiplication of signals is a nonlinear operation.</p>

<h3 id="role-in-control-systems-6">Role in Control Systems</h3>
<p>In basic PID control loops, a pure multiplier block is not typically part of the standard architecture (since PID sums its terms rather than multiplies them). However, multipliers become important in more advanced or nonlinear control schemes and in simulations:</p>
<ul>
  <li><strong>Gain scheduling</strong>: where a controller gain changes based on operating conditions, you might implement this by multiplying a signal by a gain that is a function of some other measured variable (here one input is the signal, the other input is the varying gain value). This is effectively a multiplier achieving a variable gain.</li>
  <li><strong>Feedforward control</strong>: sometimes involves multiplying signals (e.g., computing a compensating signal that is product of a measured disturbance and a factor).</li>
  <li><strong>State-space or custom control laws</strong>: might involve products, especially if modeling nonlinear plant behavior.</li>
</ul>

<h3 id="code-implementation-6">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby">  
<span class="k">def</span> <span class="nf">mult_block</span><span class="p">(</span><span class="n">yi</span><span class="p">):</span>
    <span class="n">yo</span> <span class="o">=</span> <span class="n">np</span><span class="p">.</span><span class="nf">prod</span><span class="p">(</span><span class="n">yi</span><span class="p">)</span>
    <span class="k">return</span> <span class="n">yo</span></code></pre></figure>

<h2 id="summation-block-adder">Summation Block (Adder)</h2>
<h3 id="concept-7">Concept</h3>
<p>A summation block sums multiple input signals together (with specified signs for each)​. It performs arithmetic addition and/or subtraction. Conceptually, the summation block is how we combine different contributions or compare signals. For example, a PID controller adds up its P, I, and D components — again a summation. The summation block is linear and memoryless; it outputs the algebraic sum of the inputs at that instant.</p>

<h3 id="mathematical-equation-7">Mathematical Equation</h3>
<p>\(y(t) = x_1(t) + x_2(t)\).</p>

<h3 id="transfer-function-7">Transfer Function</h3>
<p>A summation by itself doesn’t have a transfer function (since it’s not a system with an input-output in the usual sense, but rather a point of interconnection). However, you can think of it this way: each input is passed to the output through a “gain” of +1 or -1, and then all are summed. In linear system terms, that is equivalent to multiple parallel paths feeding one summing junction.</p>

<h3 id="role-in-control-systems-7">Role in Control Systems</h3>
<p>Summation blocks are central to constructing control loops. Key uses include:</p>
<ul>
  <li><strong>Error calculation</strong>: As mentioned, computing the error \(e(t)=r(t)−y(t)\) (reference minus output) is done with a summation block. This error then feeds the controller (like the PID).</li>
  <li><strong>Combining controller terms</strong>: In a PID, after computing the proportional term, integral term and derivative term, you use a summation block to add them: \(u(t)=P+I+D\)(assuming no additional filters).</li>
  <li><strong>Adding multiple inputs or disturbances</strong>: If you have multiple contributions to a signal (for example, a feedforward term added to a feedback controller output, or summing multiple sensor signals), the adder block does this.</li>
  <li><strong>Subtracting feedback</strong>: Negative feedback loops use a summation block with a minus sign on the feedback signal.</li>
</ul>

<h3 id="code-implementation-7">Code implementation</h3>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby">  
<span class="k">def</span> <span class="nf">sum_block</span><span class="p">(</span><span class="n">yi</span><span class="p">):</span>
    <span class="n">yo</span> <span class="o">=</span> <span class="n">sum</span><span class="p">(</span><span class="n">yi</span><span class="p">)</span>
    <span class="k">return</span> <span class="n">yo</span></code></pre></figure>

<h2 id="references">References</h2>
<p>[1] https://en.wikipedia.org/wiki/Laplace_transform <br />
[2] https://zhuanlan.zhihu.com/p/128812880 <br />
[3] https://zhuanlan.zhihu.com/p/152647974 <br />
[4] https://www.cs.ucr.edu/~craigs/ucla-courses/135.2.16s/laplace-existence.pdf <br />
[5] https://ctms.engin.umich.edu/CTMS/?aux=Extras_Blocklib#:~:text=Gain <br />
[6] https://amperelabs.com.au/wp-content/uploads/Dynamic-modelling-workshop_v1.1-1.pdf <br />
[7] https://www.tutorialspoint.com/control_systems/control_systems_compensators.htm#:~:text=From%20the%20above%20equation%2C%20%24,is%20always%20greater%20than%20one <br />
[8] https://au.mathworks.com/help/sps/ref/leadlagdiscreteorcontinuous.html \</p>]]></content><author><name>Yinsong Chen</name><email>yinsong.chen@deakin.edu.au</email></author><category term="Control" /><summary type="html"><![CDATA[Laplace transform Laplace transform \[F(s) = L[f(t)] = \int_0^{\inf}f(t)e^{-st}dt\], where \(s = \sigma+\omega i\), i.e., \(s\) is a complex number. \(s\) is a complex variable in frequency domain and \(t\) is a real variable in time domain.]]></summary></entry><entry><title type="html">AWS Cloud Learning Notes: Foundation</title><link href="https://icarusunimelb.github.io/personal-blogs/cloud/2025/04/23/AWS.html" rel="alternate" type="text/html" title="AWS Cloud Learning Notes: Foundation" /><published>2025-04-23T00:00:00+00:00</published><updated>2025-04-23T00:00:00+00:00</updated><id>https://icarusunimelb.github.io/personal-blogs/cloud/2025/04/23/AWS</id><content type="html" xml:base="https://icarusunimelb.github.io/personal-blogs/cloud/2025/04/23/AWS.html"><![CDATA[<h2 id="cloud-computing">Cloud computing</h2>
<ul>
  <li>Definition
  Cloud computing is the on-demand delivery of IT resources over the internet with pay-as-you-go pricing.</li>
  <li>
    <p>Modern computing is based on the client-server model.
  A client can be a web browser or desktop application that a person interacts with to make requests to computer servers.</p>

    <p>A server can be services such as Amazon Elastic Compute Cloud (Amazon EC2), a type of virtual server.</p>
  </li>
  <li>Benefits
    <ul>
      <li>Trade upfront expense for variable expense</li>
      <li>Stop spending money to run and maintain data centers</li>
      <li>Stop guessing capacity</li>
      <li>Benefit from massive economies of scale</li>
      <li>Increase speed and agility</li>
      <li>Go global in minutes</li>
    </ul>
  </li>
  <li>Deployment models:
    <ul>
      <li>
        <p>Infrastructure as a service (IaaS)
  Infrastructure as a service (laaS) contains the basic building blocks for cloud IT. It typically provides access to networking features, computers (virtual or on dedicated hardware), and data storage space. Infrastructure as a service provides the highest level of flexibility and management control over your IT resources.</p>

        <p>Many AWS services are considered laaS, including Amazon EC2, Amazon Simple Storage Service(Amazon S3), Amazon Relational Database Service (Amazon RDS), and Amazon Route 53.</p>
      </li>
      <li>
        <p>Platform as a Service (PaaS)
  Platform as a service (PaaS) removes the need for organizations to manage the underlying infrastructure (usually hardware and operating systems). They can focus on the deployment and management of applications. These tools give developers the ability to be more efficient because they don’t need to worry about resource procurement, capacity planning, software maintenance, and patching.</p>

        <p>An example of platform as a service is AWS Elastic Beanstalk. This service is used for quickly deploying and scaling web applications.</p>
      </li>
      <li>
        <p>Software as a service (SaaS)
  Software as a service (SaaS) is a completed software product that the service provider runs and manages. With a SaaS offering, you do not have to think about how the service is maintained or how the underlying infrastructure is managed. You only must think about how you will use that particular piece of software.</p>

        <p>Examples of software as a service are video meeting sites, email sites, file sharing sites, and messaging apps.</p>
      </li>
    </ul>
  </li>
  <li>Deployment strategies
    <ul>
      <li>
        <p>Cloud
  In a cloud-based deployment model, you can migrate existing applications to the cloud, or you can design and build new applications in the cloud. You can build those applications on low-level infrastructure that requires your IT staff to manage them. Alternatively, you can build them by using higher-level services that reduce the management, architecting, and scaling requirements of the core infrastructure.</p>

        <p>For example, a company might create an application that consists of virtual servers, databases, and networking components that are fully based in the cloud.</p>
      </li>
      <li>
        <p>Hybrid
  In a hybrid deployment, cloud-based resources are connected to on-premises infrastructure. You can integrate cloud-based resources with legacy IT applications. You might want to use this approach in a number of situations. For example, you have legacy applications that are better maintained on premises, or government regulations require your business to keep certain records on premises.</p>

        <p>For example, suppose that a company wants to use cloud services that can automate batch data processing and analytics. However, the company has several legacy applications that are more suitable on premises and will not be migrated to the cloud. With a hybrid deployment, the company would be able to keep the legacy applications on premises while benefiting from the data and analytics services that run in the cloud.</p>
      </li>
      <li>
        <p>One-premises
  On-premises deployment is also known as a private cloud deployment. In this model, resources are deployed on premises by using virtualization and resource management tools. Increase resource utilization by using application management and virtualization technologies.</p>

        <p>For example, you might have applications that run on technology that is fully kept in your on- premises data center. Though this model is much like legacy IT infrastructure, its incorporation of application management and virtualization technologies helps to increase resource utilization.</p>
      </li>
    </ul>
  </li>
</ul>

<h2 id="aws-introduction">AWS introduction</h2>
<h3 id="overview">Overview</h3>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/AWS-overview.png?raw=true" alt="overview" title="AWS overview" width="100%" height="100%" />
<div style="text-align: center;">Fig. AWS overview</div>
</p>

<h3 id="aws-global-infrastructure">AWS global infrastructure</h3>
<ul>
  <li>The main components of the AWS global infrastructure are regions, availability zones, and edge locations.</li>
  <li>Plan for failure
    <ul>
      <li>Storage 
  When a file is stored in Amazon S3, the file is redundantly copied into every Availability Zone in that Region. If one Availability Zone goes down, you still have two copies of that file available for you to use.</li>
      <li>Compute
  It is a best practice to spread out your computing resources across multiple Availability Zones to guarantee high availability. So, if one Availability Zone goes down, your architecture is still up and running.</li>
      <li>Database
  You can configure your database for Multi-AZ deployment. If your Availability Zone with your primary database fails, one of the standby databases in a healthy Availability Zone automatically becomes your new primary database. Therefore, your architecture is still functioning.</li>
    </ul>
  </li>
  <li>Benefits
    <ul>
      <li>Performance</li>
      <li>Availability</li>
      <li>Security</li>
      <li>Reliability</li>
      <li>Scalability</li>
      <li>Low cost</li>
    </ul>
  </li>
  <li>Shared responsibility</li>
</ul>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/shared_respon.png?raw=true" alt="Shared responsibility" title="Shared responsibility" width="100%" height="100%" />
<div style="text-align: center;">Fig. Shared responsibility</div>
</p>

<h3 id="aws-well-architected-framework">AWS well-architected framework</h3>

<h3 id="aws-management-console">AWS Management console</h3>

<h3 id="cost-and-billing">Cost and billing</h3>
<ul>
  <li>The Total Cost of Ownership (TCO) is a financial metric that is used to estimate and compare direct and indirect costs of a product or a service. It typically includes the actual costs of the following:
    <ul>
      <li>Procurement</li>
      <li>Management</li>
      <li>Maintenance</li>
      <li>Decommissioning of hardware resources</li>
    </ul>
  </li>
  <li>AWS pricing calculator</li>
  <li>The regions that you choose impact that the services that are available to you, the cost of services and the latency to users.</li>
  <li>US East (N. Virginia) is the primary region of AWS and provides access to all AWS services.</li>
  <li>AWS regions consist of one or more isolated locations known as availability zons, which comprise serval data centers.</li>
  <li>AWS payment models
    <ul>
      <li>Pay as you go</li>
      <li>Save when you commit</li>
      <li>Pay less by using more</li>
    </ul>
  </li>
  <li>AWS free tier
    <ul>
      <li>Always free</li>
      <li>12 months free</li>
      <li>Trials</li>
    </ul>
  </li>
  <li>Use AWS cost explorer to view and analyze your AWS costs and usage.</li>
  <li><a href="https://aws.amazon.com/about-aws/global-infrastructure/"> AWS global infrastructure </a></li>
  <li>Check Amazon VPC for resources by region.</li>
  <li>AWS billing dashboard to pay bill, monitor usage, analyze and control costs.</li>
</ul>

<h2 id="aws-core-services">AWS core services</h2>
<h3 id="microservices-architecture">Microservices architecture</h3>
<ul>
  <li>Loosely coupled, high application integrity</li>
  <li>
    <p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/microservices.png?raw=true" alt="Microservices" title="Microservices" width="75%" height="75%" />
<div style="text-align: center;">Fig. Microservices architecture</div>
</p>
    <h3 id="main-service-types">Main service types</h3>
  </li>
  <li>Managed services
  A managed service is a way to describe the services that require you to manage infrastructure management tasks like patching, backup, and repair. These services grant you virtual access to the underlying operating system and servers. With managed services, you are responsible for scaling and building for high availability.</li>
  <li>Fully managed services 
  A fully managed service is a way to describe the services that automate infrastructure management tasks that AWS handles, like patching, backup, and repair. These services do not grant you any virtual access to the underlying operating system or servers. With a fully managed service, you are still responsible for scaling and building for high availability.</li>
  <li>Serverless services
  Serverless is a way to describe the services, practices, and strategies that you can use to build more agile applications. In this way, you can innovate and respond to change faster. With serverless services, AWS handles infrastructure management tasks like capacity provisioning and patching so that you can focus on building applications that serve your customers. Serverless services come with automatic scaling, built-in high availability, and a pay-for-value billing model.
    <h3 id="core-services-architecture">Core services architecture</h3>
  </li>
</ul>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/core-services-arch.png?raw=true" alt="architecture" title="Architecture" width="100%" height="100%" />
<div style="text-align: center;">Fig.Core Services Architecture</div>
</p>

<ul>
  <li>Amazon virtual private cloud - VPC
    <ul>
      <li>Amazon Virtual Private Cloud (Amazon VPC) is a service that you use to launch AWS resources in a logically isolated virtual network that you define. As a foundational AWS service, Amazon VPC makes it easy to customize your VPC’s network configuration. You can create a public-facing subnet for your web servers that have access to the internet. You can also use Amazon VPC to place your backend systems, such as databases or application servers, in a private-facing subnet with no internet access. With Amazon VPC, you can use multiple layers of security to help control access to Amazon EC2 instances in each subnet. These layers include security groups and network access control lists (network ACLs).</li>
      <li>The diagram shows how you can use a VPC to build a solution that has both a public subnet and a private subnet. The public subnet has an EC2 instance that hosts a web application that has access to the internet. The private subnet has an RDS instance that is protected from direct access to the internet.</li>
    </ul>

    <p align="center">
  <img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/VPC.png?raw=true" alt="vpc" title="VPC" width="100%" height="100%" />
  <div style="text-align: center;">Fig.VPC</div>
  </p>
  </li>
  <li>AWS identity and access management (IAM)
    <ul>
      <li>IAM is a centralized security management system that is included in every AWS account to control identity access to AWS services. By attaching IAM permission policies to identities you can manage which services each identity can access and the kind of actions the identity can perform.</li>
    </ul>

    <p>Identities in IAM are users, groups and roles.</p>
  </li>
  <li>Amazon DynamoDB
    <ul>
      <li>Amazon DynamoDB is a serverless non-relational database that can store and retrieve any amount of data and serve any level of request traffic. You can scale your database tables’ throughput capacity up or down without downtime. You can use the AWS Management Console to monitor resource utilization and performance metrics.</li>
    </ul>
  </li>
  <li>Amazon elastic compute cloud - EC2
    <ul>
      <li>Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides secure, resizable compute capacity in the cloud. It is designed to make web-scale cloud computing easier for developers. You can use the simple web interface of Amazon EC2 to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources, and you can run it on the proven computing environment of Amazon.</li>
    </ul>
  </li>
  <li>AWS Lambda
    <ul>
      <li>AWS Lambda is a serverless compute service that you can use to run function code without provisioning or managing servers. You can use Lambda to run function code for virtually any type of application or backend service. You upload your code, and Lambda takes care of everything that is required to run and scale your code with high availability.</li>
      <li>AWS Lambda removes all administration for application or backend services that can be processed in snippets of code. You upload your code as a .zip file or container image. Then, Lambda automatically and precisely allocates compute power to run your code based on the incoming request or event, for any scale of traffic. You can set up your code to automatically trigger from over 200 services and software as a service (SaaS) applications or call it directly from any web or mobile app.</li>
    </ul>
  </li>
  <li>Amazon Simple Notification Service (SNS)
    <ul>
      <li>Amazon Simple Notification Service (Amazon SNS) is a web service that makes it easy to set up, operate, and send notifications from the cloud. It provides developers with a highly scalable, flexible, and cost-effective capability to publish messages from an application and immediately deliver them to subscribers. These subscribers can be notification recipients or other applications.</li>
    </ul>
  </li>
  <li>Amazon CloudWatch
    <ul>
      <li>Amazon CloudWatch is a monitoring and observation service that is built for DevOps engineers, developers, security engineers, and IT managers. CloudWatch provides you with data and actionable insights to monitor your applications, respond to system-wide performance changes, and optimize resource utilization. You get a unified view of operational health.</li>
    </ul>
  </li>
  <li>Amazon Relational Database Service (RDS)
    <ul>
      <li>Amazon Relational Database Service (Amazon RDS) is a distributed relational database managed service. It is cloud- based and designed to simplify the setup, operation, and scaling of relational databases. Administrative processes like patching, backing up databases, and enabling point-in-time recovery are managed automatically.</li>
    </ul>
  </li>
  <li>Amazon Simple Storage Service - S3
    <ul>
      <li>Amazon S3 is object storage that is built to store and retrieve any amount of data from anywhere at any time. It’s a simple storage service that offers industry-leading durability, availability, performance, security, and virtually unlimited scalability at low costs.</li>
    </ul>
  </li>
</ul>]]></content><author><name>Yinsong Chen</name><email>yinsong.chen@deakin.edu.au</email></author><category term="Cloud" /><summary type="html"><![CDATA[Cloud computing Definition Cloud computing is the on-demand delivery of IT resources over the internet with pay-as-you-go pricing. Modern computing is based on the client-server model. A client can be a web browser or desktop application that a person interacts with to make requests to computer servers. A server can be services such as Amazon Elastic Compute Cloud (Amazon EC2), a type of virtual server. Benefits Trade upfront expense for variable expense Stop spending money to run and maintain data centers Stop guessing capacity Benefit from massive economies of scale Increase speed and agility Go global in minutes Deployment models: Infrastructure as a service (IaaS) Infrastructure as a service (laaS) contains the basic building blocks for cloud IT. It typically provides access to networking features, computers (virtual or on dedicated hardware), and data storage space. Infrastructure as a service provides the highest level of flexibility and management control over your IT resources.]]></summary></entry><entry><title type="html">ServiceNow Learning Notes</title><link href="https://icarusunimelb.github.io/personal-blogs/servicenow/2025/04/11/ServiceNow.html" rel="alternate" type="text/html" title="ServiceNow Learning Notes" /><published>2025-04-11T00:00:00+00:00</published><updated>2025-04-11T00:00:00+00:00</updated><id>https://icarusunimelb.github.io/personal-blogs/servicenow/2025/04/11/ServiceNow</id><content type="html" xml:base="https://icarusunimelb.github.io/personal-blogs/servicenow/2025/04/11/ServiceNow.html"><![CDATA[<h2 id="table-of-contents">Table of contents</h2>
<ol>
  <li><a href="#introduction">Introduction</a></li>
  <li><a href="#itil">ITIL</a></li>
  <li><a href="#cloud">Cloud</a></li>
  <li><a href="#app-engine">App Engine</a>
    <ol>
      <li><a href="#request-fulfill-workflow">Request-fulfill workflow</a></li>
    </ol>
  </li>
  <li><a href="#nowassist-ai">NowAssist AI</a>
    <ol>
      <li><a href="#nowassist-products">NowAssist products</a></li>
      <li><a href="#nowassist-benefits">NowAssist benefits</a></li>
      <li><a href="#nowassist-admin-console">NowAssist Admin console</a></li>
      <li><a href="#nowassist-context-menu">NowAssist context menu</a></li>
    </ol>
  </li>
  <li><a href="#SPM">Strategic Portfolio Management</a>
    <ol>
      <li><a href="#what-SPM">What is strategic portfolio management?</a></li>
      <li><a href="#SPM-functionalities">A tour of main functionalities of SPM</a></li>
    </ol>
  </li>
</ol>

<h2 id="introduction-">Introduction <a name="introduction"></a></h2>
<p>ServiceNow is a cloud based platform, which was mainly developed for workflow and process automation as per the Information Technology Infrastructure Library (ITIL) principles. However, it is highly customisable and also can be used for other purposes. This tutorial will primarily focus on its basic concepts, App Engine, NowAssist AI, and Strategic Portfolio Management modules.</p>

<h2 id="itil-">ITIL <a name="itil"></a></h2>
<p>ITIL is a library of best practices that are employed in IT service management (ITSM)—the practice of planning, implementing, managing and optimizing information technology services to meet the needs of users and help organizations achieve their business goals.</p>

<p>ITIL can be divided into five main stages, including <strong>Service Strategy</strong>, <strong>Service Design</strong>, <strong>Service Transition</strong>, <strong>Service Operation</strong>, and <strong>Continual Service Improvement</strong>. Every stage has a specific role to play in a service life cycle and form the skeleton of ITIL. For the details, please check <a href="https://www.tutorialspoint.com/servicenow/servicenow_itil.htm"> Ref. [1] </a>.</p>

<p>The lastest ITIL edition, ITIL 4 consists of 34 practices that are grouped into 3 main categories: 1. <strong>General management practices</strong>, 2. <strong>Service management practices</strong>, and 3. <strong>Technical management practices</strong>. For the details, please check <a href="https://www.ibm.com/think/topics/it-infrastructure-library#:~:text=ITIL%20stands%20for%20Information%20Technology,practices%20in%20IT%20service%20management"> Ref. [3] </a>.</p>

<p>The benefits of ITIL are as follows:</p>
<ul>
  <li>Stronger alignment between IT and business strategy</li>
  <li>Improved customer satisfaction and service delivery</li>
  <li>Increased transparency and visibility into IT processes and services</li>
  <li>Budgeting guidance</li>
  <li>Reduced IT costs</li>
  <li>Enhanced communication within teams and across stakeholders</li>
</ul>

<h2 id="cloud-">Cloud <a name="cloud"></a></h2>
<p>Here we briefly introduce cloud service models, which are categorised based on the services offered by the cloud service providers.</p>
<ul>
  <li><strong>Infrastructure as a service (IaaS)</strong>. This is the most fundamental level of cloud service, where in customer only takes computing resources or virtual hardware like storage, CPU, RAM, etc. from the cloud service providers.</li>
  <li><strong>Platform as a service (PaaS)</strong>. This is one level further to IaaS. Here, along with the computing resources/virtual hardware, operating system, some software service and tools are also provided by the cloud service providers.</li>
  <li><strong>Software as a service (SaaS)</strong>. This service model offers fully functional, ready to use software over the internet.</li>
</ul>

<p>ServiceNow is a highly flexible application which provides the option of PaaS as well as SaaS. Its SaaS offering provides fully functional workflow automation and ITSM tools, while its PaaS offering, allows the user to develop a custom application on the top of existing suite, as per the business requirement.</p>

<h2 id="app-engine-">App Engine <a name="app-engine"></a></h2>
<p>Access developer mode using  https://dev{developer Id}.service-now.com/.</p>

<h3 id="request-fulfill-workflow-">Request-fulfill workflow <a name="request-fulfill-workflow"></a></h3>
<p>The request-fulfill workflow is the backbone of ServiceNow applications, as it provides a structured mechanism for managing service requests and incidents. In the request-fulfill workflow, ServiceNow generally categorizes the users into two distinct personas: Requestors and Fulfillers.</p>
<ul>
  <li><strong>Requestors</strong>. A Requestor is an end user who submits service requests and interacts with the platform primarily to seek assistance or resources. Their role is focused on initiating requests.</li>
  <li><strong>Fulfillers</strong>. A Fulfiller is responsible for processing, managing, and resolving service requests or incidents submitted by requestors. They ensure that business operations run smoothly by addressing user needs efficiently.</li>
</ul>

<p>Starting with a request-fulfiller workflow is an effective way to achieve positive outcomes by aligning platform capabilities with business needs and enabling rapid application development. This approach allows you to tailor an application to meet specific requirements. The recommended first phase includes:</p>
<ol>
  <li><strong>Creating a Tailored Data Model</strong>: Designing data structures that align with the department’s unique processes and requirements.</li>
  <li><strong>Developing Record Producers</strong>: Setting up user-friendly request submission forms to streamline how users make service requests.</li>
  <li><strong>Creating Fulfiller Workspace</strong>: Configuring dashboards and views to enhance productivity for fulfillers.</li>
  <li><strong>Automating Processes Using Flow Designer</strong>: Implementing automation rules to reduce manual work, enforce business policies, and ensure timely resolution of requests.</li>
</ol>

<p>Some key operations:</p>
<ul>
  <li><strong>Create the data model</strong></li>
</ul>

<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/Data-model.png?raw=true" alt="Data" title="Create the data model" width="100%" height="100%" />
<div style="text-align: center;">Fig. Create the data model</div>
</p>

<ul>
  <li><strong>Build the request form</strong></li>
</ul>

<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/Request-form.png?raw=true" alt="Form" title="Build the request form" width="100%" height="100%" />
<div style="text-align: center;">Fig. Build the request form</div>
</p>

<ul>
  <li><strong>Create the request record producer</strong></li>
</ul>

<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/Request-record-producer.png?raw=true" alt="Request-record-producer" title="Create the request record producer" width="100%" height="100%" />
<div style="text-align: center;">Fig. Create the request record producer</div>
</p>

<ul>
  <li><strong>Create the fulfiller workspace</strong></li>
</ul>

<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/Workspace.png?raw=true" alt="Workspace" title="Create the fulfiller workspace" width="100%" height="100%" />
<div style="text-align: center;">Fig. Create the fulfiller workspace</div>
</p>

<ul>
  <li><strong>Set up the department approvers</strong></li>
</ul>

<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/Dept-approvers.png?raw=true" alt="Dept-approvers.png" title="Set up the department approvers" width="100%" height="100%" />
<div style="text-align: center;">Fig. Set up the department approvers</div>
</p>

<p>For the details, please check <a href="https://www.servicenow.com/community/app-development-blog/begin-with-a-request-fulfill-workflow/ba-p/3189777"> Ref. [4] </a> and <a href="https://www.servicenow.com/community/app-development-blog/app-engine-getting-started-guide-custom-application-development/ba-p/3223491?attachment-id=273369"> Ref. [5] </a>.</p>

<ul>
  <li><strong>Add the workflow with flow designer</strong></li>
</ul>

<p><span style="color:red">TODO: Continue go through the App Engine lab from page 22.</span>.</p>

<h2 id="nowassist-ai-">NowAssist AI <a name="nowassist-ai"></a></h2>

<p>ServiceNow’s AI product suite primarily includes the following three components:</p>
<ol>
  <li><strong>Now Assist</strong> – A generative AI tool that instantly creates new content by learning patterns from existing data. It helps users resolve issues, answer questions, and obtain relevant support efficiently.</li>
  <li><strong>AI Agents</strong> – Agentic AI systems capable of autonomously performing tasks. These agents assist in troubleshooting, decision-making, and interacting with their environments.</li>
  <li><strong>Vitural agent</strong> – An intelligent chatbot.</li>
</ol>

<p>ServiceNow has developed its own domain-specific LLMs that are trained and fine-tuned on ServiceNow customer use cases on the Now Platform. Additionally, the company supports third-party GenAI models including Microsoft Copilot, Azure OpenAI, IBM WatsonX, OpenAI and Google Gemini. ServiceNow also supports LLMs provided by its customers to give them the flexibility for a wide range of use cases.</p>

<p>This section will focus on NowAssist.</p>

<p>To enable NowAssist, please check <a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-platform/concept/platform-now-assist-landing.html">Guideline for NowAssist</a>.</p>

<h3 id="nowassist-products-">NowAssist products <a name="nowassist-products"></a></h3>

<table>
  <thead>
    <tr>
      <th>Workflow</th>
      <th>Business areas</th>
      <th>Available product</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Technology</td>
      <td>The Technology workflow includes IT applications, such as IT services and operations, managing your strategy to deliver products and services, and platform security.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-servicenow-platform/page/product/configuration-management/concept/now-assist-landing-cmdb.html">Now Assist for Configuration Management Database (CMDB)</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-application-portfolio-management/page/product/now-assist-ea/concept/now-assist-ea.html">Now Assist for Enterprise Architecture (EA)</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-governance-risk-compliance/page/product/grc-common/concept/now-assist-for-irm.html">Now Assist for Integrated Risk Management (IRM)</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-it-operations-management/page/product/now-assist-itom/concept/now-assist-itom.html">Now Assist for IT Operations Management (ITOM)</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-it-service-management/page/product/now-assist-itsm/concept/now-assist-itsm.html">Now Assist for IT Service Management (ITSM)</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-security-management/page/product/now-assist-security-incident/reference/now-assist-security-incident-landing.html">Now Assist for Security Incident Response</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-servicenow-platform/page/product/configuration-management/concept/now-assist-sgc-landing.html">Now Assist for Service Graph Connectors (SGC)</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-it-asset-management/page/product/now-assist-sam/concept/now-assist-sam.html">Now Assist for Software Asset Management (SAM)</a> <br /> <a href="https://www.servicenow.com/docs/bundle/yokohama-it-business-management/page/product/now-assist-spm/concept/now-assist-spm.html">Now Assist for Strategic Portfolio Management (SPM)</a></td>
    </tr>
    <tr>
      <td>Finance &amp; Supply Chain</td>
      <td>The Finance &amp; Supply Chain workflow supports purchase requisitions, sourcing requests, and request for products or services.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-source-to-pay-operations/page/product/accounts-payable-operations/concept/now-assist-apo.html">Now Assist for Accounts Payable Operations (APO)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-source-to-pay-operations/page/product/supplier-lifecycle-operations/concept/now-assist-slo.html">Now Assist for Supplier Lifecycle Operations (SLO)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-source-to-pay-operations/page/product/sourcing-procurement-operations/concept/now-assist-spo.html">Now Assist for Sourcing and Procurement Operations (SPO)</a></td>
    </tr>
    <tr>
      <td>Employee</td>
      <td>The Employee workflow supports HR Service Delivery features.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-employee-service-management/page/product/now-assist-health-safety/reference/now-assist-hs-landing.html">Now Assist for Health and Safety</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-employee-service-management/page/product/human-resources/concept/now-assist-hrsd.html">Now Assist for HR Service Delivery (HRSD)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-employee-service-management/page/product/legal-request-management/concept/now-assist-lsd-landing.html">Now Assist for Legal Service Delivery (LSD)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-employee-service-management/page/product/now-assist-wsd/concept/now-assist-wsd-landing.html">Now Assist for Workplace Service Delivery (WSD)</a></td>
    </tr>
    <tr>
      <td>Customer</td>
      <td>The Customer workflow includes applications that support customer service, including field service, financial services, telecommunications and media, and the public service sector.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-customer-service-management/page/product/customer-service-management/concept/now-assist-csm.html">Now Assist for Customer Service Management (CSM)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-field-service-management/page/product/field-service-management/reference/now-assist-fsm.html">Now Assist for Field Service Management (FSM)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-financial-services-operations/page/product/fso-common/concept/now-assist-for-financial-services-operations.html">Now Assist for Financial Services Operations (FSO)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-government-industry/page/product/public-sector/concept/now-assist-for-psds.html">Now Assist for Public Sector Digital Services (PSDS)</a><br /><a href="https://www.servicenow.com/docs/bundle/yokohama-telecom-media-technology/page/product/tmt-spmc/reference/now-assist-spmc.html">Now Assist for Telecommunications, Media and Technology (TMT)</a></td>
    </tr>
    <tr>
      <td>Creator</td>
      <td>The Creator workflow supports a variety of Platform tools and builders, including the following: 1. App Engine Studio 2. Now Platform scripting 3. Platform 4. Analytics 5. Service Catalog 6. Workflow Studio 7. RPA Hub 8. Process Mining</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-build-workflows/page/administer/flow-designer/concept/now-assist-for-creator-landing.html">Now Assist for Creator</a></td>
    </tr>
  </tbody>
</table>

<p>Now Assist products include some or all of the following foundational platform tools for Now Assist. For more information, see <a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-skills/concept/now-assist-on-now-platform.html">Now Assist skills in the Platform workflow</a>.</p>

<ul>
  <li>Administrators install plugins, manage skills, and analyze usage and performance with the <a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-platform/concept/configuring-now-assist.html">Now Assist Admin console</a>.</li>
  <li>Users can take advantage of Now Assist skills by using the <a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-platform/concept/now-assist-panel-overview.html">Now Assist panel</a> on the instance.</li>
  <li>Use <a href="https://www.servicenow.com/docs/bundle/yokohama-platform-administration/page/administer/ai-search/reference/now-assist-ais.html">Now Assist in AI Search</a> to generate answers for AI Search.</li>
  <li>Use <a href="https://www.servicenow.com/docs/bundle/yokohama-mobile/page/administer/tablet-mobile-ui/concept/now-assist-mobile-landing.html">Now Assist for Mobile</a> to run generative AI skills in a mobile environment.</li>
  <li>Use <a href="https://www.servicenow.com/docs/bundle/xanadu-application-development/page/script/now-assist-for-code/concept/now-assist-code-landing.html">Now Assist for Code</a> for code generation.</li>
  <li>Use <a href="https://www.servicenow.com/docs/bundle/yokohama-conversational-interfaces/page/administer/now-assist-in-va/concept/now-assist-in-va-landing.html">Now Assist in Virtual Agent</a> to create conversational catalog experiences and author topics that use LLM topic discovery.</li>
  <li>Developers can use the <a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/generative-ai-controller/concept/generative-ai-controller.html">Generative AI Controller</a> to integrate generative AI features in custom flows and conversations by using your own third-party large language model (LLM) licenses.</li>
</ul>

<h3 id="nowassist-benefits-">NowAssist benefits <a name="nowassist-benefits"></a></h3>

<table>
  <thead>
    <tr>
      <th>Benefit</th>
      <th>Feature</th>
      <th>Users</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Leverage the power of search with the Now LLM generative AI model to answer questions in user searches with actionable AI-generated summaries of relevant knowledge articles.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-platform-administration/page/administer/ai-search/reference/now-assist-ais.html">Now Assist in AI Search</a></td>
      <td>Everyone</td>
    </tr>
    <tr>
      <td>Install and configure Now Assist applications and the skills they provide.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-platform/concept/configuring-now-assist.html">Now Assist Admin console</a></td>
      <td>Administrators</td>
    </tr>
    <tr>
      <td>Choose which skills to turn on, and which users can access them.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-platform/concept/configuring-now-assist.html">Now Assist Admin console</a></td>
      <td>Administrators</td>
    </tr>
    <tr>
      <td>Monitor the usage and performance of generative AI features and capabilities offered under Now Assist.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-analytics/concept/now-assist-analytics.html">Now Assist Analytics</a></td>
      <td>Administrators</td>
    </tr>
    <tr>
      <td>Access generative AI skills in context through a user-friendly interface.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-platform/concept/now-assist-panel-overview.html">Now Assist panel</a></td>
      <td>Everyone</td>
    </tr>
    <tr>
      <td>Use Now Assist skills on mobile devices.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-mobile/page/administer/tablet-mobile-ui/concept/now-assist-mobile-landing.html">Now Assist for Mobile</a></td>
      <td>Everyone</td>
    </tr>
    <tr>
      <td>Customize your workflows and use your own third-party LLM license.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/generative-ai-controller/concept/generative-ai-controller.html">Generative AI Controller</a></td>
      <td>Administrators or developers</td>
    </tr>
    <tr>
      <td>Use Now Assist in other platform features.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-skills/concept/now-assist-on-now-platform.html">Now Assist skills in the Platform workflow</a></td>
      <td>Administrators or developers</td>
    </tr>
    <tr>
      <td>Monitor Now Assist consumption on your instance.</td>
      <td><a href="https://www.servicenow.com/docs/bundle/yokohama-platform-administration/page/administer/subscription-management/concept/monitoring-now-assist-usage.html">Monitoring Now Assist usage in Subscription Management</a></td>
      <td>Administrators</td>
    </tr>
    <tr>
      <td>Code generation</td>
      <td><a href="https://www.servicenow.com/docs/bundle/xanadu-application-development/page/script/now-assist-for-code/concept/now-assist-code-landing.html">Now Assist for Code</a></td>
      <td>Developers</td>
    </tr>
  </tbody>
</table>

<h3 id="nowassist-admin-console-">NowAssist Admin console <a name="nowassist-admin-console"></a></h3>
<p>The NowAssist Admin console contains everything that you need to install, configure, and learn about the different generative AI features on the Now Platform.</p>

<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/now-assist-admin-console-overview.png?raw=true" alt="NowAssist Admin console" title="NowAssist Admin console" width="100%" height="100%" />
<div style="text-align: center;">Fig. NowAssist Admin overview page</div>
</p>

<p>NowAssist Admin workflow includes five steps:</p>
<ol>
  <li><strong>[Install plugins]</strong> On the <strong>Available for you</strong> tab of the Settings page, you can review the available plugins and install the ones that are relevant to your business needs. Each plugin contains the skills that you can activate to enable generative AI features on your instance.</li>
</ol>

<p><strong>Available for you tab on the NowAssist Admin Settings &gt; Plugins page</strong></p>

<ol>
  <li>
    <p><strong>[Turn on the NowAssist panel]</strong> The NowAssist panel integrates the Now Assist skills into the Next Experience UI. By turning on the NowAssist panel directly from the Now Assist Admin console, you enable agents to access skills from anywhere on the Now Platform.</p>
  </li>
  <li>
    <p><strong>[Activate skills]</strong> Skills are features that are created for a specific use case in a Now Assist application. Use the NowAssist Admin Features page to explore the skills that are available with your installed plugins. By selecting the <strong>View details</strong> button, you can see more information about each skill.</p>
  </li>
</ol>

<p><strong>Available NowAssist features and skills in the Technology workflow</strong></p>

<p>After deciding which skills best fit your business needs, you can activate them from the console. Some skills require configuration so that you can customize the skill to your needs, such as determining the skill inputs and triggers. You can select the skills that you want to configure in the NowAssist Admin Features page.</p>

<ol>
  <li>
    <p><strong>[Review your Now Assist account settings]</strong> The Now Assist Admin console Settings page enables you to set up language support, if you have Dynamic Translation enabled on your instance, and review your account details. Get up-to-date information about what plugins are available to you and the status of data sharing on your instance.</p>
  </li>
  <li>
    <p><strong>[Monitor and analyze skill performance]</strong> Use the metrics available on the Overview page to review the summaries, performance information, and issues that need your attention.</p>
  </li>
</ol>

<h3 id="nowassist-context-menu--source">NowAssist context menu <a name="nowassist-context-menu"></a> (<a href="https://www.servicenow.com/docs/bundle/yokohama-intelligent-experiences/page/administer/now-assist-platform/concept/now-assist-write-overview.html">source</a>)</h3>
<p>The <strong>NowAssist context menu</strong> leverages generative AI to enhance agents’ writing tasks by summarizing, creating, and editing content across various applications in ServiceNow.</p>

<p>The NowAssist context menu is available on any field where the floating NowAssist button (<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/wwna-icon.png?raw=true" alt="floating Now Assist button" title="floating Now Assist button" width="2%" height="2%" />) appears. If you start typing in the field, a menu appears with the available Now Assist context menu actions.</p>

<p>Something NowAssist context menu can do:</p>
<ol>
  <li>Chat window using the NowAssist context menu</li>
  <li>Change request risk explanation using the NowAssist context menu</li>
  <li>Content editing in Knowledge Base articles using the NowAssist content menu</li>
  <li>Change Tone using NowAssist context menu</li>
  <li>Limit the number of content refinement calls using the NowAssist context menu</li>
  <li>Use the NowAssist context menu to compose or respond to emails with recommendations from Now Assist with generative AI template suggestions.</li>
  <li>Use the NowAssist context menu to generate a record summary for the page, using Generative AI application assisted summarization capabilities in workspaces and UI16.</li>
  <li>Use the NowAssist Context Menu dashboard to monitor the use of NowAssist Context Menu across the different applications. Key features include:
    <ol>
      <li>Usage matrix: The count or number of times, NowAssist context menu has been used during the selected duration.</li>
      <li>Implicit feedback duration: The breakdown of feedback based on whether the response is inserted and closed during the selected time range.</li>
      <li>Usage trend by skill: The total usage distribution based on the skills that use the NowAssist context menu.</li>
      <li>Capacity Distribution: The capacity distribution based on the different applications that use the NowAssist context menu.</li>
      <li>Response by feedback: The feedback field based on the Generative AI logs.</li>
      <li>Insights: View insights and suggestions for NowAssist usage.</li>
    </ol>
  </li>
</ol>

<p><span style="color:red">TODO: Continue go through the NowAssist AI.</span>.</p>

<h2 id="strategic-portfolio-management-">Strategic Portfolio Management <a name="SPM"></a></h2>

<h3 id="what-is-strategic-portfolio-management-">What is strategic portfolio management? <a name="what-SPM"></a></h3>
<p>Strategic Portfolio Management (SPM) helps companies make smart decisions about where to invest their time, money, and people to support their big-picture goals.</p>

<p>Why is it important?</p>
<ul>
  <li>It ensures investments (money and effort) are being used for things that truly matter to the business.</li>
  <li>It helps leaders see what’s working and what’s not, so they can adjust quickly.</li>
  <li>It gives everyone a clear view of priorities, progress, and impact.</li>
</ul>

<p>What are the benefits of SPM?</p>
<ul>
  <li>Faster time to market</li>
  <li>Improved response time to disruptions</li>
  <li>Better alignment between strategy and execution</li>
  <li>Improved efficiency</li>
  <li>Cohesion of multiple disciplines</li>
  <li>Increased agility</li>
  <li>Improved speed overall</li>
  <li>Big-picture focus</li>
  <li>Ability to realise expected business value from digital initiatives</li>
</ul>

<p>What are the steps in SPM?</p>
<ul>
  <li><strong>Inventory</strong>. First, assess and understand the strategic goals of the organisation, including both short- and long-term objectives. Second, take inventory of all available resources, including budgets and people. Lastly, review established priorities.</li>
  <li><strong>Analysis</strong>. Select key business metrics through which they may gauge success.</li>
  <li><strong>Planning</strong>.  Organisations develop a strategic portfolio plan that outlines the specific projects, programmes or initiatives that will be included in the portfolio. The plan should clearly define the goals and objectives of the portfolio, along with the key performance indicators (KPIs) that will be used to measure progress. Additionally, the plan must consider the allocation of resources, including budget, personnel and other assets, to ensure that the selected initiatives can be executed effectively. It is likewise important to consider emergent issues or other potential risks that may cause problems.</li>
  <li><strong>Execution</strong>. This stage involves implementing the projects and programmes according to the established priorities and resource allocations. Post execution, ongoing management is essential to ensure that the portfolio remains aligned with the organisation’s strategic objectives and adapts to changing circumstances.</li>
</ul>

<p>What are SPM components?</p>
<ul>
  <li>Operating model development</li>
  <li>IT portfolio management and enterprise portfolio management</li>
  <li>Financial management</li>
  <li>Risk and security management</li>
  <li>Enterprise architecture governance</li>
</ul>

<p>Key applications and capabilitys:</p>

<table>
  <thead>
    <tr>
      <th>Name</th>
      <th>Description</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>NowAssist for SPM</td>
      <td>Break down barriers with generative AI to deliver customer value quickly.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/strategic-planning.html">Strategic Planning</a></td>
      <td>Connect strategy to execution with end-to-end planning in a single workspace.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/scenario-planning.html">Scenario Planning</a></td>
      <td>Simulate and compare investment scenarios to align your portfolio with your business strategy.</td>
    </tr>
    <tr>
      <td>Investment Funding</td>
      <td>Manage funds based on business needs and your organisation’s strategic objectives.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/agile-development.html">Agile Development</a></td>
      <td>Manage scrum or development work throughout the lifecycle from a unified backlog of tasks.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/scaled-agile-framework.html">Scaled Agile Framework</a></td>
      <td>Align Agile software and product development efforts for speed and efficiency.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/project-portfolio-management.html">Project Portfolio Management</a></td>
      <td>Gain visibility into traditional, agile and hybrid work to optimise portfolios.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/demand-management.html">Demand Management</a></td>
      <td>Capture, assess and manage demands from the business in one location.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/collaborative-work-management.html">Collaborative Work Management</a></td>
      <td>Empower teams and simplify work with a hub for planning, visualisation and collaboration.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/resource-management.html">Resource Management</a></td>
      <td>See staff availability, allocation and capacities for all work tracked in ServiceNow.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/innovation-management.html">Innovation Management</a></td>
      <td>Capture new ideas from across your organisation in a single location.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/digital-portfolio-management.html">Digital Portfolio Management</a></td>
      <td>Make informed decisions with a unified view of services, products and apps.</td>
    </tr>
    <tr>
      <td>Release Management</td>
      <td>Plan, design, build, configure and test hardware and software and software releases with precision.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/predictive-intelligence.html">Predictive Intelligence</a></td>
      <td>Simplify and accelerate everyday work with built-in machine learning.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/virtual-agent.html">Virtual Agent</a></td>
      <td>Resolve issues fast with an intelligent chatbot that understands simple, human language.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/process-mining.html">Process Mining</a></td>
      <td>Improve outcomes by optimising process flows to streamline work.</td>
    </tr>
    <tr>
      <td><a href="https://www.servicenow.com/au/products/performance-analytics.html">Performance Analytics</a></td>
      <td>Anticipate trends, prioritise resources and continuously improve with real-time analytics.</td>
    </tr>
  </tbody>
</table>

<h3 id="a-tour-of-main-functionalities-of-spm--source">A tour of main functionalities of SPM <a name="SPM-functionalities"></a> (<a href="https://www.servicenow.com/au/products/strategic-portfolio-management.html">source</a>)</h3>

<p>Portfolio Managers can track progress and monitor the status of all related work, key results and initiatives, as well as <strong>Strategic Priorities</strong>.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM1.png?raw=true" width="100%" height="100%" />
</p>

<p>From the roadmap, view your <strong>AI Transformation Journey</strong> to track progress, monitor performance, and prioritize high-impact initiatives that bring the most value to your business.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM2.png?raw=true" width="100%" height="100%" />
</p>

<p>Capacity planning ensures better visibility into resource utilization, reduces conflicts and boosts efficiency, allowing your team to focus on the most critical tasks.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM3.png?raw=true" width="100%" height="100%" />
</p>

<p>Develop customer-centric products by leveraging insights from statistics and customer sentiment trends while staying in sync with top trending feedback.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM4.png?raw=true" width="100%" height="100%" />
</p>

<p>Use <strong>AI-powered Feedback Summarization</strong> to analyze multiple records at once.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM5.png?raw=true" width="100%" height="100%" />
</p>

<p><strong>Multi-Feedback Summarization</strong> allows you to make informed decisions faster and achieve the best outcomes.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM6.png?raw=true" width="100%" height="100%" />
</p>

<p>When change happens(it always does),SPM empowers your organization to adapt swiftly.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM7.png?raw=true" width="100%" height="100%" />
</p>

<p>Leverage real-time insights and flexible planning tools to pivot and reprioritize with precision.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM8.png?raw=true" width="100%" height="100%" />
</p>

<p>Click next to create scenario.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM9.png?raw=true" width="100%" height="100%" />
</p>

<p>Leverage real-time insights and flexible planning tools to pivot and reprioritize with precision.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM10.png?raw=true" width="100%" height="100%" />
</p>

<p>Simulate and compare alternative scenarios to choose the best path forward.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM11.png?raw=true" width="100%" height="100%" />
</p>

<p>With <strong>Project Workspace</strong>, execute work using any methodology like <strong>Waterfall ,Agile or Hybrid</strong> while enforcing standardized processes and best practices.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM12.png?raw=true" width="100%" height="100%" />
</p>

<p>Strategic Planning Workspace delivers products faster with improved time-to-market. That’s a real transformation!</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM13.png?raw=true" width="100%" height="100%" />
</p>

<p>Click the red pulse and click next to continue.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM14.png?raw=true" width="100%" height="100%" />
</p>

<p>With the <strong>Export to PowerPoint</strong> feature, you can share process and status updates effortlessly. Export informative details about your initiatives to PowerPoint instantly.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM15.png?raw=true" width="100%" height="100%" />
</p>

<p>Select the required Portfolio template.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM16.png?raw=true" width="100%" height="100%" />
</p>

<p>From the <strong>Success Dashboard</strong>, compare your performance against global benchmarks.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM17.png?raw=true" width="100%" height="100%" />
</p>

<p>You can also compare your metrics to the industry average of peers in order to measure success.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM18.png?raw=true" width="100%" height="100%" />
</p>

<p>Stay ahead of new demands by using <strong>Generative AI</strong> to simplify request capture, ensure data completeness, and streamline the evaluation process.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/personal-blogs/blob/main/_posts/figures/SPM19.png?raw=true" width="100%" height="100%" />
</p>

<h2 id="references">References</h2>
<p>[1] https://www.tutorialspoint.com/servicenow/index.htm <br />
[2] https://www.servicenow.com/community/app-dev-get-started/ct-p/app-dev-get-started <br />
[3] https://www.ibm.com/think/topics/it-infrastructure-library#:~:text=ITIL%20stands%20for%20Information%20Technology,practices%20in%20IT%20service%20management. <br />
[4] https://www.servicenow.com/community/app-dev-get-started/ct-p/app-dev-get-started <br />
[5] https://www.servicenow.com/community/app-development-blog/app-engine-getting-started-guide-custom-application-development/ba-p/3223491?attachment-id=273369 <br />
[6] https://www.servicenow.com/au/ai.html <br />
[7] https://www.servicenow.com/au/standard/resource-center/infographic/ai-infographic-layout.html <br />
[8] https://www.servicenow.com/au/products/strategic-portfolio-management.html <br />
[9] https://www.servicenow.com/content/dam/servicenow-assets/public/en-us/doc-type/resource-center/infographic/info-turn-strategy-to-reality-spm.pdf \</p>]]></content><author><name>Yinsong Chen</name><email>yinsong.chen@deakin.edu.au</email></author><category term="ServiceNow" /><summary type="html"><![CDATA[Table of contents Introduction ITIL Cloud App Engine Request-fulfill workflow NowAssist AI NowAssist products NowAssist benefits NowAssist Admin console NowAssist context menu Strategic Portfolio Management What is strategic portfolio management? A tour of main functionalities of SPM]]></summary></entry><entry><title type="html">From deep learning to Bayesian neural network: 1 - Deep learning and its theoretical framework</title><link href="https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/05/Deep-learning.html" rel="alternate" type="text/html" title="From deep learning to Bayesian neural network: 1 - Deep learning and its theoretical framework" /><published>2024-12-05T00:00:00+00:00</published><updated>2024-12-05T00:00:00+00:00</updated><id>https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/05/Deep-learning</id><content type="html" xml:base="https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/05/Deep-learning.html"><![CDATA[<h2 id="basic-concepts">Basic concepts</h2>
<p>Deep learning has become a prominent research field, with numerous architectures and training algorithms proposed. We start with the simplest case: training multi-layer perceptrons (feedforward neural networks) using the stochastic gradient descent (SGD) algorithm for supervised learning tasks.</p>

<p>A feed-forward neural network (NN) consisting of \(L\) layers, each defined by weight matrices \(W^1,…,W^L\) and post-activation vectors \(x^1,…,x^L\), with \(N_l\) neurons per layer. Then the network dynamics, starting from the input \(x^0\), are described by 
\[x^l=\phi(h^l), h^l=W^lx^{l-1}+b^l, \text{ for }l=1,…,L,\tag{1}\]
where \(b^l\) denotes the bias vector, \(h^l\) represents the linear pre-activations, and \(\phi\) is a non-linear activation function. A complete set of NN parameters is \(\theta=\{W^l,b^l\}_{l=1}^L\), and the output for input \(x^0\) is \(\hat{y}=h^L=f(x^0,\theta)\), where the mapping function \(f\) is recursively defined by Eq. [1].</p>

<p align="center">
<img src="https://github.com/icarusunimelb/skills-github-pages/blob/main/_posts/figures/perceptron.png?raw=true" alt="Perceptron" title="The k-th perceptron of layer l" width="50%" height="50%" />
<div style="text-align: center;">Fig.1. The k-th perceptron of layer l</div>
</p>

<p>Figure 1 illustrates the structure of a single perceptron, which functions as a linear binary classifier but cannot handle non-linearly separable data. To overcome this limitation, multiple perceptrons are combined to form multi-layer perceptrons, as depicted in Figure 2.</p>

<p align="center">
<img src="https://github.com/icarusunimelb/skills-github-pages/blob/main/_posts/figures/MLP.png?raw=true" alt="MLP" title="Multi-layer preceptron" width="50%" height="50%" />
<div style="text-align: center;">Fig.2. Multi-layer preceptron</div>
</p>

<p>Optimizing NN parameters typically involves an iterative process, known as “training,” to minimize the loss function.</p>
<p align="center">
<img src="https://github.com/icarusunimelb/skills-github-pages/blob/main/_posts/figures/training-loop.png?raw=true" alt="training-loop" title="training-loop" width="80%" height="80%" />
<div style="text-align: center;">Fig.3. Training loop</div>
</p>

<p>A common approach for training multi-layer perceptrons is the SGD algorithm, where \(L(\hat{y},y)\) represents the loss function quantifying the discrepancy between \(\hat{y}\) and \(y\).</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Choose initial guess θ⁰, k=0
For i from 1 to T (epoches) 
    For j from 1 to N (training samples) 
        Consider a sample {xⱼ,yⱼ}\
        Update: θᵏ⁺¹=θᵏ-𝝁∇L(ŷⱼ,yⱼ); k=k+1
</code></pre></div></div>

<p>To compute partial derivatives \(\frac{\partial L}{\partial w_i^l}\) for updating weights, backpropagation is employed, which is based the chain rule. For example, given \(z=g(u)\) and \(u=f(x)\), the chain rule states that the derivative can be expressed as \(\frac{dz}{dx} = \frac{dz}{du}\frac{du}{dx}\). Similarly, in the context of NNs, the derivatives are computed as:
\[\frac{\partial L}{\partial w_i^L} = \frac{\partial L}{\partial h^L}\frac{\partial h^L}{\partial w_i^L} \tag{2}\]
\[\frac{\partial L}{\partial w_i^{L-1}} = \frac{\partial L}{\partial h^L}\frac{\partial h^L}{\partial x^{L-1}}\frac{\partial x^{L-1}}{\partial h^{L-1}}\frac{\partial h^{L-1}}{\partial w_i^{L-1}} \tag{3}\]
and so forth.</p>

<h2 id="references">References</h2>
<p>[1] Rubinstein, B.I. (2020, August). Statistical machine learning [PowerPoint slides]. School of Computing and Information Systems, The University of Melbourne. <br />
[2] Bengio, Y., Goodfellow, I., &amp; Courville, A. (2017). Deep learning (Vol. 1). Cambridge, MA, USA: MIT press. <br />
[3] Chen, Y., Yu, S. S., Li, Z., Eshraghian, J. K., &amp; Lim, C. P. Interplay between Bayesian Neural Networks and Deep Learning: A Survey. Available at SSRN 5009452.</p>]]></content><author><name>Yinsong Chen</name><email>yinsong.chen@deakin.edu.au</email></author><category term="Deep Learning" /><summary type="html"><![CDATA[Basic concepts Deep learning has become a prominent research field, with numerous architectures and training algorithms proposed. We start with the simplest case: training multi-layer perceptrons (feedforward neural networks) using the stochastic gradient descent (SGD) algorithm for supervised learning tasks.]]></summary></entry><entry><title type="html">From deep learning to Bayesian neural network: 0 - Introduction</title><link href="https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/02/Introduction.html" rel="alternate" type="text/html" title="From deep learning to Bayesian neural network: 0 - Introduction" /><published>2024-12-02T00:00:00+00:00</published><updated>2024-12-02T00:00:00+00:00</updated><id>https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/02/Introduction</id><content type="html" xml:base="https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/02/Introduction.html"><![CDATA[<p>While deep learning models have seen significant success across various domains, their black-box learning nature and lack of interpretability affect their reliability in safety-critical applications. In response to these limitations, the Bayesian paradigm offers a promising alternative by incorporating uncertainty estimation into model predictions, enhancing transparency and decision-making.</p>

<p>Here, we present a series of tutorials to introduce fundamental concepts and recent advancements in deep learning and Bayesian neural networks.</p>

<ul>
  
    
      <li>
        <h4><a href="https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/02/Introduction.html">From deep learning to Bayesian neural network: 0 - Introduction</a></h4>
      </li>
    
  
    
      <li>
        <h4><a href="https://icarusunimelb.github.io/personal-blogs/deep%20learning/2024/12/05/Deep-learning.html">From deep learning to Bayesian neural network: 1 - Deep learning and its theoretical framework</a></h4>
      </li>
    
  
    
  
    
  
    
  
</ul>

<h2 id="reference">Reference</h2>
<p>If you feel this tutorial is useful, I would appreciate it if you would cite the following paper:</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>@article{chen5009452interplay,
  title={Interplay between Bayesian Neural Networks and Deep Learning: A Survey},
  author={Chen, Yinsong and Yu, Samson S and Li, Zhong and Eshraghian, Jason K and Lim, Chee Peng},
  journal={Available at SSRN: https://ssrn.com/abstract=5100162 or http://dx.doi.org/10.2139/ssrn.5100162}
}
</code></pre></div></div>]]></content><author><name>Yinsong Chen</name><email>yinsong.chen@deakin.edu.au</email></author><category term="Deep Learning" /><summary type="html"><![CDATA[While deep learning models have seen significant success across various domains, their black-box learning nature and lack of interpretability affect their reliability in safety-critical applications. In response to these limitations, the Bayesian paradigm offers a promising alternative by incorporating uncertainty estimation into model predictions, enhancing transparency and decision-making.]]></summary></entry></feed>