diff --git a/.github/workflows/update-flake-lock.yaml b/.github/workflows/update-flake-lock.yaml
deleted file mode 100644
index 1b320d6..0000000
--- a/.github/workflows/update-flake-lock.yaml
+++ /dev/null
@@ -1,24 +0,0 @@
-name: update-flake-lock
-on:
- workflow_dispatch: # allows manual triggering
- schedule:
- - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00
-
-jobs:
- lockfile:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v4
- - uses: cachix/install-nix-action@v25
- with:
- nix_path: nixpkgs=channel:nixos-unstable
- extra_nix_config: |
- trusted-public-keys = cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g= cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
- substituters = https://cache.garnix.io?priority=41 https://cache.nixos.org/
- access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- - name: Update flake.lock
- uses: DeterminateSystems/update-flake-lock@main
- with:
- pr-title: "nix: Update flake.lock" # Title of PR to be created
- pr-labels: | # Labels to be set on the PR
- automated
diff --git a/main/50d3bdaf.md b/main/50d3bdaf.md
new file mode 100644
index 0000000..51e79a3
--- /dev/null
+++ b/main/50d3bdaf.md
@@ -0,0 +1,10 @@
+---
+date: 2024-05-03
+tags:
+ - status/ongoing
+ - control-system
+---
+
+# Time Response of First-Order System
+
+
diff --git a/main/53f31a4e.md b/main/53f31a4e.md
index 457c9af..7ce49a8 100644
--- a/main/53f31a4e.md
+++ b/main/53f31a4e.md
@@ -1,5 +1,5 @@
---
-date: 2024-05-03
+date: 2024-05-04
tags:
- control-system
---
@@ -38,7 +38,7 @@ The closed-loop [transfer function](6f158a97.md) $C(s)/R(s)$ of the second-order
Solving for the [poles](6f158a97.md) of the *general second-order transfer function*,
-> $\displaystyle s^2 + 2\zeta\omega_{n}s + \omega_{n}^2 = 0$
+> The characteristic equation is $(\displaystyle s^2 + 2\zeta\omega_{n}s + \omega_{n}^2 = 0)$
>
> $\displaystyle s^2 + 2\zeta\omega_{n}s + (\zeta\omega_{n})^2 - (\zeta\omega_{n})^2 + \omega_{n}^2 = 0$
>
@@ -49,6 +49,8 @@ Solving for the [poles](6f158a97.md) of the *general second-order transfer funct
> Then, the poles are located at
>
> $\boxed{\displaystyle s = -\zeta\omega_{n} \pm \omega_{n}\sqrt{1 - \zeta^2} = -\sigma_{d} \pm j\,\omega_{d}}$
+>
+> which can be graphically represented on the [$s$-plane](6f158a97.md) plot or ***pole-zero map***.
The *natural frequency* $(\omega_{n})$ can also be found from the poles by using the pythagorean theorem,
diff --git a/main/5ab15bd7.md b/main/5ab15bd7.md
index 13b3e51..0a7397a 100644
--- a/main/5ab15bd7.md
+++ b/main/5ab15bd7.md
@@ -1,5 +1,5 @@
---
-date: 2024-05-01
+date: 2024-05-04
tags:
- control-system
---
diff --git a/main/6f158a97.md b/main/6f158a97.md
index 0082bad..34d04fd 100644
--- a/main/6f158a97.md
+++ b/main/6f158a97.md
@@ -1,5 +1,5 @@
---
-date: 2023-09-06
+date: 2024-05-06
tags:
- circuit
- frequency
@@ -47,4 +47,8 @@ In general, a transfer function $\mathbf{H}(\omega)$ in the *s*-domain can be ex
> $\boxed{\mathbf{H}(s) = \frac{\mathbf{N}(s)}{\mathbf{D}(s)} = K\frac{(s - z_1)(s - z_2)\cdots(s - z_m)}{(s - p_1)(s - p_2)\cdots(s - p_n)}}$
>
-> where $s = j\omega$ is the complex frequency, K is a constant, $z_1,\,z_2,\,\dots,\,z_m$ are the zeros of the transfer function, and $p_1,\,p_2,\,\dots,\,p_n$ are the poles of the transfer function.
+> where $(s = \sigma + j\omega)$ is the complex frequency, K is a constant, $z_1,\,z_2,\,\dots,\,z_m$ are the zeros of the transfer function, and $p_1,\,p_2,\,\dots,\,p_n$ are the poles of the transfer function.
+
+> The complex frequency $s$***-plane*** plot of the poles and zeros graphically portrays the character of the natural [transient response](c225601a.md) of the [system](5ab15bd7.md).
+
+
diff --git a/main/c225601a.md b/main/c225601a.md
new file mode 100644
index 0000000..4f4e9e5
--- /dev/null
+++ b/main/c225601a.md
@@ -0,0 +1,53 @@
+---
+date: 2024-05-05
+tags:
+ - control-system
+---
+
+# Time Response
+
+The ***time response*** of a [control system](5ab15bd7.md) consists of two parts: the *transient response* and the *steady-state response*.
+
+After applying input $r(t)$ to the control system, the output $c(t)$ takes certain time to reach steady state. So, the output will be in transient state till it goes to a steady state.
+
+> ***Transient response*** describes the system's behavior as it transitions from its initial state to its final state, immediately following a change or disturbance.
+
+> ***Steady-state response*** characterizes how the system output behaves as time approaches infinity, once the transient effects have faded away and the system has reached a stable condition.
+
+Thus, the system response $c(t)$ may be written as
+
+> $\boxed{\displaystyle c(t) = c_{tr}(t) + c_{ss}(t)}$
+>
+> where $c_{tr}$ is the transient response, and $c_{ss}$ is the steady-state response.
+
+See: [Complete Response of a Circuit](3dd672e8.md)
+
+## Transient Response Specifications
+
+
+
+### Delay Time
+
+> The ***delay time*** $(t_d)$ is the time required for the response to reach half the final value the very first time.
+
+### Rise Time
+
+> The ***rise time*** $(t_r)$ is the time required for the response to rise from $10\%$ to $90\%$, $5\%$ to $95\%$, or $0\%$ to $100\%$ of its final value.
+
+### Peak Time
+
+> The ***peak time*** $(t_p)$ is the time required for the response to reach the first peak of the overshoot.
+
+### Overshoot
+
+> The ***overshoot*** is when a signal exceeds its target. It is often associated with ***ringing*** (oscillation of a signal). The ***undershoot*** is the same phenomenon in the opposite direction.
+
+> The ***maximum overshoot*** $(M_{p})$ is the amount that the waveform overshoots the steady-state (final) value, or value at the peak time $(t_p)$.
+
+The amount of the maximum (percent) overshoot directly indicates the [relative stability](cbcacf19.md) of the system.
+
+### Settling Time
+
+> The ***settling time*** $(t_s)$ is the time required for the response curve to reach and stay within a range about the final value of size specified by absolute percentage of the final value (usually $2\%$ or $5\%$ percentage error criterion).
+
+The settling time $(t_s)$ is related to the largest [time constant](50d3bdaf.md) $(\tau)$ of the control system.
diff --git a/main/cbcacf19.md b/main/cbcacf19.md
new file mode 100644
index 0000000..6077a0c
--- /dev/null
+++ b/main/cbcacf19.md
@@ -0,0 +1,10 @@
+---
+date: 2024-05-04
+tags:
+ - status/ongoing
+ - control-system
+---
+
+# Stability
+
+
diff --git a/main/d576ff9e.md b/main/d576ff9e.md
new file mode 100644
index 0000000..4bc7a28
--- /dev/null
+++ b/main/d576ff9e.md
@@ -0,0 +1,80 @@
+---
+date: 2024-05-04
+tags:
+ - status/ongoing
+ - control-system
+---
+
+# Time Response of Second-Order System
+
+The [closed-loop](5ab15bd7.md) [transfer function](6f158a97.md) of the [second-order system](53f31a4e.md) is given by
+
+> $\boxed{\displaystyle \mathrm{CLTF} = G(s) = \frac{C(s)}{R(s)} = \frac{\omega_{n}^2}{s^2 + 2\zeta\omega_{n}s + \omega_{n}^2}}$
+>
+> where $\zeta$ is the ***damping ratio***; and $\omega_{n}$ is the ***undamped natural frequency***, expressed in radians per second (rad/s).
+
+The damping case is determined by the [damping ratio](a61ce3dd.md) $\zeta$ from the poles.
+
+> The closed-loop [poles](6f158a97.md) of the second-order [transfer function](6f158a97.md) $G(s)$ are
+>
+> $\boxed{\displaystyle s = -\zeta\omega_{n} \pm \omega_{n}\sqrt{1 - \zeta^2} = -\sigma_{d} \pm j\,\omega_{d}}$
+>
+> where $(\alpha = \sigma_{d})$ is the ***damping attenutation***, expressed in nepers per second (Np/s); and $\omega_{d}$ is the ***damped natural frequency***, expressed in radians per second (rad/s).
+
+See: [Second-Order Circuits](29569029.md)
+
+## Step Response
+
+Using the [unit-step](58fcc503.md) signal $u(t)$ as an input $r(t)$ to the second-order system,
+
+> For a unit-step signal, $r(t) = u(t)$, the [Laplace transform](7628ec20.md) of $r(t)$ is
+>
+> $\boxed{\displaystyle R(s) = \frac{1}{s}}$
+
+Then, the ***unit step response*** can be found using $C(s) = R(s)\,G(s)$, followed by the [inverse Laplace transform](c9a77663.md).
+
+> $\boxed{\displaystyle C(s) = \frac{\omega_{n}^2}{s\left(s^2 + 2\zeta\omega_{n}s + \omega_{n}^2\right)}}$
+
+### Undamped Case $(\zeta = 0)$
+
+The two poles of $G(s)$ are imaginary, $(s = \pm j\omega_{n})$.
+
+> Substituting $(\zeta = 0)$ to the transfer function $C(s)$,
+>
+> $\displaystyle C(s) = \frac{\omega_{n}^2}{s\left(s^2 + \omega_{n}^2\right)} = \frac{1}{s} - \frac{s}{s^2 + \omega_{n}^2}$
+>
+> Apply the [inverse Laplace transform](c9a77663.md),
+>
+> $\boxed{\displaystyle c(t) = \left[1 - \cos(\omega_{n}t)\right]\,u(t)}$
+
+So, for undamped case $(\zeta = 0)$, the [transient response](c225601a.md) does not die out, and the unit step response will be a continuous time signal with constant amplitude and frequency.
+
+
+
+#### Transient Parameters
+
+- Settling Time $(T_s)$
+
+ > Since the [transient response](c225601a.md) does not die out,
+ >
+ > $\boxed{\displaystyle T_{s} = 0}$
+
+### Underdamped Case $(0 < \zeta < 1)$
+
+
+
+#### Transient Parameters
+
+### Critically Damped Case $(\zeta = 1)$
+
+
+
+#### Transient Parameters
+
+### Overdamped Case $(\zeta > 1)$
+
+
+
+#### Transient Parameters
+
+## Impulse Response
diff --git a/main/media/second-order-critically-damped-step-response.svg b/main/media/second-order-critically-damped-step-response.svg
new file mode 100644
index 0000000..2253e71
--- /dev/null
+++ b/main/media/second-order-critically-damped-step-response.svg
@@ -0,0 +1,286 @@
+
+
+
+
diff --git a/main/media/second-order-overdamped-step-response.svg b/main/media/second-order-overdamped-step-response.svg
new file mode 100644
index 0000000..b1ef58d
--- /dev/null
+++ b/main/media/second-order-overdamped-step-response.svg
@@ -0,0 +1,376 @@
+
+
+
+
diff --git a/main/media/second-order-undamped-step-response.svg b/main/media/second-order-undamped-step-response.svg
new file mode 100644
index 0000000..cdad27d
--- /dev/null
+++ b/main/media/second-order-undamped-step-response.svg
@@ -0,0 +1,242 @@
+
+
+
+
diff --git a/main/media/second-order-underdamped-step-response.svg b/main/media/second-order-underdamped-step-response.svg
new file mode 100644
index 0000000..55a1d62
--- /dev/null
+++ b/main/media/second-order-underdamped-step-response.svg
@@ -0,0 +1,322 @@
+
+
+
+
diff --git a/main/media/transfer-function-pole-zero-plot.svg b/main/media/transfer-function-pole-zero-plot.svg
new file mode 100644
index 0000000..13d8e62
--- /dev/null
+++ b/main/media/transfer-function-pole-zero-plot.svg
@@ -0,0 +1,287 @@
+
+
+
+
diff --git a/main/media/transient-response-specification.svg b/main/media/transient-response-specification.svg
new file mode 100644
index 0000000..6ad9045
--- /dev/null
+++ b/main/media/transient-response-specification.svg
@@ -0,0 +1,1683 @@
+
+
+
+