<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://chemeng.up.ac.za/wiki/index.php?action=history&amp;feed=atom&amp;title=Model_Identification</id>
		<title>Model Identification - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://chemeng.up.ac.za/wiki/index.php?action=history&amp;feed=atom&amp;title=Model_Identification"/>
		<link rel="alternate" type="text/html" href="http://chemeng.up.ac.za/wiki/index.php?title=Model_Identification&amp;action=history"/>
		<updated>2026-08-14T21:24:40Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.1</generator>

	<entry>
		<id>http://chemeng.up.ac.za/wiki/index.php?title=Model_Identification&amp;diff=1440&amp;oldid=prev</id>
		<title>Alchemyst: Created page with 'This document is currently directly related to a project done in 2012 by Frane van Zyl, documented in the Model identification file.  System identification is the most expensive …'</title>
		<link rel="alternate" type="text/html" href="http://chemeng.up.ac.za/wiki/index.php?title=Model_Identification&amp;diff=1440&amp;oldid=prev"/>
				<updated>2012-12-06T14:22:34Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;This document is currently directly related to a project done in 2012 by Frane van Zyl, documented in the Model identification file.  System identification is the most expensive …&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This document is currently directly related to a project done in 2012 by Frane van Zyl, documented in the Model identification file.&lt;br /&gt;
&lt;br /&gt;
System identification is the most expensive step in a model-based-control project.‭  ‬A study was therefore undertaken into model identification with the aim of understanding the fundamentals,‭ ‬and developing software tools that could be used to automate or ease the process.&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
The process of system identification and the various model types were studied.‭  ‬A tool was written to perform the following steps present in any identification project:‭ (‬for all m-files see their headers for a description‭)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Experimental Design==&lt;br /&gt;
&lt;br /&gt;
A Psuedo Radom Binary Sequence was selected as the method to step the inputs in a multivariable fashion.‭  ‬Some more information on these and other steps are provided as‭ “‬PRBS and other step.pdf‭” ‬in the Reading Material folder on the CD of the project file.&lt;br /&gt;
&lt;br /&gt;
The final matlab file is PRBS.m‭ (‬requires prbs.m‭)&lt;br /&gt;
&lt;br /&gt;
==Data Preparation==&lt;br /&gt;
&lt;br /&gt;
It is important that data be pre-filtered to remove outliers,‭ ‬trends and drift in the data.‭  ‬The function files written for this section is:&lt;br /&gt;
&lt;br /&gt;
* Shift.m&lt;br /&gt;
* Normalise.m&lt;br /&gt;
* Expfilter.m&lt;br /&gt;
* Mavgfilter.m&lt;br /&gt;
&lt;br /&gt;
More information is available from‭ ‬[‬http://upetd.up.ac.za/thesis/available/etd-07032009-170311/ Hernan Guidi,‭ ‬2008].‭  &lt;br /&gt;
&lt;br /&gt;
==Estimation‭ (‬modelling phase‭)==&lt;br /&gt;
&lt;br /&gt;
Two choices need to be made:‭  ‬The type of model and the parameter estimation method.‭  ‬The ARX model and Laplace models were chosen,‭ ‬with the least squares regression as the‭ ‬estimation method.‭  ‬See Lyuben Chapter‭ ‬14‭ ‬for a good overview of some other techniques.‭  &lt;br /&gt;
&lt;br /&gt;
The basic idea behind ARX modelling is to write the ARX model:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;y(z) = \frac{B(z^{-1})}{A(z^{-1})} = \frac{\alpha_0 + \alpha_1 z^{-1} + \alpha_2 z^{-2} + \dots + a_m z^{-m}}{\beta_0 + \beta_1 z^{-1} + \beta_2 z^{-2} + \dots + \beta_m z^{-n}}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
As a linear regression of the form Ax‭ = ‬b:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;y(t|\theta) = \phi^T\theta&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To solve for theta,‭ ‬we will need to find‭ &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\theta = (\phi^T\phi)^{-1}\phi^T y&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
which involves the matrix inverse of‭ ‬&amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt;.‭  ‬That is if there exist an inverse and &amp;lt;math&amp;gt;\phi&amp;lt;/math&amp;gt; is not singular.‭  ‬It is far better therefore to use the pseudo-inverse‭ (‬see‭ ‬[http://en.wikipedia.org/wiki/Generalized_inverse generalized-inverse‭]) ‬or the left-inverse which is simply denoted by the operator,‭ \‬,‭  ‬in Matlab‭ (‬see‭ ‬[http://www.mathworks.com/help/matlab/ref/mldivide.html left-inverse in Matlab‭])‬.‭  ‬Alternatively and reliably we can do a SVD,‭ ‬QR-decomposition,‭ ‬for a good overview of this see the following link:‭  &lt;br /&gt;
&lt;br /&gt;
http://classes.soe.ucsc.edu/cmps290c/Spring04/paps/lls.pdf&lt;br /&gt;
&lt;br /&gt;
There are various texts on model identification using least squares and ARX modelling and the most informative was found as:&lt;br /&gt;
* Guidi,‭ ‬H.‭ (‬2008‭) “‬Open and Closed-loop Model Identification and Validation‭”‬,‭ ‬Masters Dissertation,‭ ‬Department of Chemical Engineering,‭ ‬University of Pretoria,‭ ‬Pretoria,‭ ‬South Africa.&lt;br /&gt;
* Morari,‭ ‬M.,‭ ‬Lee J.H.‭ &amp;amp; ‬Garcia E.,‭ ‬Model Predictive Control,‭ ‬March‭ ‬15,‭ ‬2002‭ [‬p1‭ ‬-‭ ‬101‭]‬.&lt;br /&gt;
&lt;br /&gt;
The function files that perform the‭ ‬modelling and converstion to Laplace is given on the project CD as:&lt;br /&gt;
&lt;br /&gt;
* ARX_MIMO_B.m&lt;br /&gt;
* ARXtoLaplace_MIMO.m&lt;br /&gt;
* validate_MIMO.m&lt;br /&gt;
&lt;br /&gt;
==Validation==&lt;br /&gt;
&lt;br /&gt;
Validation was chosen to be done by residual analysis‭ (‬plots and sum of the squares of the risiduals‭) ‬as well as predicted vs actual plots.&lt;br /&gt;
&lt;br /&gt;
For the further reading on model validation,‭ ‬Hernan Guidi,‭ (‬2008‭) ‬gives a good overview,‭ ‬but there are also lots of general statistical material on the internet‭ ‬.‭)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The final functions written for model validation are provided on the project CD as:&lt;br /&gt;
&lt;br /&gt;
* validate_SISO.m&lt;br /&gt;
* validate_MIMO.m&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Simulation==&lt;br /&gt;
&lt;br /&gt;
A simulation is available from the Lab-Manual‭ (‬on the project CD‭) ‬that takes the student through the steps of model identification using a simulator.‭  ‬Matlab is required and the other software required for this can be downloaded free from:&lt;br /&gt;
&lt;br /&gt;
* Prime5:‭  ‬http://www.randcontrols.co.za/downloads&lt;br /&gt;
* KEPserver:‭  ‬https://my.kepware.com/mykepware/‭ (‬register as a user first‭)&lt;/div&gt;</summary>
		<author><name>Alchemyst</name></author>	</entry>

	</feed>