@@ -58,7 +58,7 @@ Models represent physical systems with internal state and differential equations
5858** Fields:**
5959
6060- ` id ` (string, required) - Unique model identifier
61- - ` type ` (string, required) - Model type (built-in: ` "thermal_mass" ` , ` "thermal_rc2" ` )
61+ - ` type ` (string, required) - Model type (built-in: ` "thermal_mass" ` , ` "thermal_rc2" ` , ` "first_order_process" ` , ` "second_order_process" ` )
6262- ` params ` (object, required) - Model-specific parameters
6363
6464### ThermalMass Model
@@ -138,6 +138,72 @@ Two-node thermal RC network with ambient coupling and inter-node conductance.
138138}
139139```
140140
141+ ### FirstOrderProcess Model
142+
143+ First-order process primitive: ` dy/dt = (gain * u - y) / tau ` .
144+
145+ ** Parameters:**
146+ | Parameter | Type | Units | Description |
147+ | -----------| ------| -------| -------------|
148+ | ` output_signal ` | string | dimensionless | Output signal path |
149+ | ` input_signal ` | string | dimensionless | Input signal path |
150+ | ` gain ` | number | dimensionless | Static gain (finite) |
151+ | ` tau_s ` | number | s | Time constant (must be > 0) |
152+ | ` initial_output ` | number | dimensionless | Initial output value |
153+ | ` integration_method ` | string | - | Optional: ` "forward_euler" ` (default) or ` "rk4" ` |
154+
155+ ** Example:**
156+
157+ ``` json
158+ {
159+ "id" : " pt1" ,
160+ "type" : " first_order_process" ,
161+ "params" : {
162+ "output_signal" : " pt1.y" ,
163+ "input_signal" : " pt1.u" ,
164+ "gain" : 2.0 ,
165+ "tau_s" : 1.0 ,
166+ "initial_output" : 0.0
167+ }
168+ }
169+ ```
170+
171+ ### SecondOrderProcess Model
172+
173+ Second-order process primitive:
174+ ` y'' + 2*zeta*omega_n*y' + omega_n^2*y = omega_n^2 * gain * u `
175+
176+ ** Parameters:**
177+ | Parameter | Type | Units | Description |
178+ | -----------| ------| -------| -------------|
179+ | ` output_signal ` | string | dimensionless | Output signal path |
180+ | ` input_signal ` | string | dimensionless | Input signal path |
181+ | ` gain ` | number | dimensionless | Static gain (finite) |
182+ | ` zeta ` | number | dimensionless | Damping ratio (must be >= 0) |
183+ | ` omega_n_rad_s ` | number | 1/s | Natural frequency (must be > 0) |
184+ | ` initial_output ` | number | dimensionless | Initial output value |
185+ | ` initial_output_rate ` | number | 1/s | Initial output rate |
186+ | ` integration_method ` | string | - | Optional: ` "forward_euler" ` (default) or ` "rk4" ` |
187+
188+ ** Example:**
189+
190+ ``` json
191+ {
192+ "id" : " pt2" ,
193+ "type" : " second_order_process" ,
194+ "params" : {
195+ "output_signal" : " pt2.y" ,
196+ "input_signal" : " pt2.u" ,
197+ "gain" : 2.0 ,
198+ "zeta" : 0.7 ,
199+ "omega_n_rad_s" : 4.0 ,
200+ "initial_output" : 0.0 ,
201+ "initial_output_rate" : 0.0 ,
202+ "integration_method" : " rk4"
203+ }
204+ }
205+ ```
206+
141207## Edges
142208
143209Edges connect signals through transforms, defining the dataflow graph.
0 commit comments