How to specify constant vs unique parameters in System ID with multiple experiments?

5 次查看(过去 30 天)
For multiple experiments, I'd like to fit a simple process model where 2 poles (tp1, tp2) are the same for all experiments, but gain (Kp), zero (tz) and time delay (td) can be different for each experiment. Is there an elegant way to to this with the System Identification Toolbox? Each experiment comprises 2 time series: one forcing input & one response ouput.

采纳的回答

Jack
Jack 2025-3-8
One common approach is to break the estimation into two steps. First, you can pool the data from all experiments to estimate the common dynamics (the two poles, tp1 and tp2). Then, with these poles fixed, you estimate the experiment‐specific parameters (gain Kp, zero tz, and delay td) individually for each experiment.
Alternatively, if you want to do it in one step you can build a custom grey‐box model (using idgrey or idnlgrey) where your parameter vector includes both the common parameters and the experiment‐specific ones. You then set up linear equality constraints (via the model’s ParameterConstraints property) so that the values for tp1 and tp2 are identical across experiments. Unfortunately, the System Identification Toolbox does not offer a direct “elegant” switch for shared versus unique parameters, so you must implement these constraints manually.
For example, you might organize your combined parameter vector as
% For N experiments, define a parameter vector:
% p = [tp1, tp2, Kp1, tz1, td1, Kp2, tz2, td2, ..., KpN, tzN, tdN]
% Then, in your custom model function, enforce that the first two parameters
% (tp1 and tp2) are used for every experiment.
This approach lets you use the multi‐experiment estimation capabilities of the toolbox while ensuring that the poles remain common and the remaining parameters vary per experiment.
Follow me so you can message me anytime with future MATLAB questions. If this helps, please accept the answer as well.
  1 个评论
Brett
Brett 2025-3-10
Thanks Jack. I had a feeling that this was the case but hoped there was an 'experiment specific' / 'always constant' switch for identified parameters buried somewhere in the sysID toolbox. I like your suggestion about using a parametrized grey-box model and will give that a try.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Linear Model Identification 的更多信息

产品


版本

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by