isstable — Test stability of SISO transfer-function models.
isstable(sys) returns true when all continuous-time poles are in the open left-half plane, or all discrete-time poles are inside the unit circle.
Syntax
tf = isstable(sys)Inputs
| Name | Type | Required | Default | Description |
|---|---|---|---|---|
sys | Any | Yes | — | SISO tf model. |
Returns
| Name | Type | Description |
|---|---|---|
tf | LogicalArray | True when all continuous poles are in the open left-half plane or all discrete poles are inside the unit circle. |
Errors
| Identifier | When | Message |
|---|---|---|
RunMat:isstable:InvalidModel | Input system is not a valid SISO tf object. | isstable: invalid model |
RunMat:isstable:UnsupportedModel | Model form is unsupported. | isstable: unsupported model |
RunMat:isstable:Internal | Pole calculation failed. | isstable: internal error |
How isstable works
- Supports SISO
tfobjects. - Continuous-time stability requires
real(pole) < 0. - Discrete-time stability requires
abs(pole) < 1. - Static-gain models are stable.
GPU memory and residency
isstable returns a host logical scalar.
Example
Stable first-order model
H = tf(1, [1 1]);
isstable(H)Expected output:
ans = logical
1How RunMat validates isstable
isstable validates the input model, computes poles, and applies continuous or discrete stability rules. Tests cover stable continuous-time models and VM integration.
- Implementation: `crates/runmat-runtime/src/builtins/control/isstable.rs`
See Correctness & Trust for the full methodology and coverage table.
Using isstable with coding agents
Open a RunMat example with live inputs, then ask the agent to explain how isstable changes the result.
Run a small isstable example, explain the result, then change one input and compare the output.
FAQ
Does marginal stability return true?⌄
No. Poles on the imaginary axis or unit circle are not considered stable by this predicate.
Related Control functions
Open-source implementation
Unlike proprietary runtimes, every RunMat function is open-source. Read exactly how isstable is executed, line by line, in Rust.
- View the source for isstable in Rust on GitHub
- Learn how the RunMat runtime works
- Found a bug? Open an issue with a minimal reproduction.
About RunMat
RunMat is an open-source runtime that executes MATLAB-syntax code blazing on any GPU. It is licensed under the Apache 2.0 license.
- RunMat automatically optimizes your math for GPU execution on Apple, Nvidia, and AMD hardware. No code changes needed. Simulations that took hours now take minutes.
- Start running code in seconds. RunMat runs in the browser, on the desktop, or from the CLI. No license server, no IT ticket.