 going to focus on what my personal experiences have been with SILAP and also I've been using SILAP in a couple of my courses that I've been teaching over the last year and a half and some of the experiences that the students have narrated and then talk about exclusive toolbox for system identification. So we'll just go along. So initially I'll just give you a background. Obviously we all know that the most commonly used software for numerical computation and scientific analysis is MATLAB but then there are quite a few issues we have seen that so I'll just repeat a few of them and of course the most governing factor is the cost factor and at present at IIT Madras we use the version 6.1 it's a network licensed version and we have probably very few toolboxes at our disposal and the students do use their own free versions as have been pointed out and as we all know in fact ironically high cost factors automatically means more free versions ironically but we don't want such free versions obviously and the current problem as it stands is that we are not we have made attempts to upgrade to the later versions of MATLAB but then these attempts or efforts have not been successful so far primarily because MATLAB is simply unaffordable. So I'll just give you a personal views as such about the usage of SILAP. Definitely SILAP has fulfilled the needs as far as the numerical computational power is concerned and also the features that are available in terms of including it into teaching curriculum but yes we all agree that there are quite a few issues that have to be resolved before making SILAP a complete success. SILAP has been wonderful and has actually helped me a lot in doing a lot of research coding and so on but then there are some specific issues that really can put off the user and I'll tell you one very common problem that actually one experiences is a repetition of is a recalling of the commands that one uses okay and it may sound very trivial but I think if one wants to use the software in the long run and you're using it for extensive periods of time then you want to be able to recall the command that you have used with ease and unfortunately that feature is still not available with SILAP at the moment okay and secondly teaching PSYCOS I think I know PSYCOS is a wonderful piece of software and it has a lot of abilities but even recently as I was demonstrating PSYCOS to my students the exercise was not as smooth as I would have expected for example in demonstrating simulink I know that one should not end up comparing PSYCOS with simulink but then definitely if I don't even if I am not comparing the students obviously will end up comparing it and that's natural so I think PSYCOS particularly has a long way to go before actually becoming an integral part of the SILAP for simulating systems okay towards saying I'll talk about some other third-party software which is built on SILAP which can also be used in conjunction with SILAP and the other point is the display of the list of variables I know that by default when SILAP loads there are a bunch of variables that are created and then after you have worked for a period of time and you are looking at the list of variables that have been created the list of variables that the user has created gets also displayed along with the list of variables that have been actually created at the time SILAP launches so that creates a trend these are all they sound trivial but then as I said when one wants to you have one wants a user to use SILAP for long periods of time it takes these trivial issues become important now one of the tools or one of the procedures that's very common in linear system theory is to arrive at a linearized model from a non-linear system so let's say I take a simple level system where there is a flow in and there is a flow out and I'm writing the differential equation to describe the dynamics of this continuous flow system incompressible fluid we'll make all the nice assumptions cross-sectional areas uniform and so on and when one ends writing up the material balance for this equation you end up with a simple equation so this is the equation and these are the system parameters the beta is nothing but the resistance offered at the outlet of the tank and the AC stands for the cross-sectional area so the underlying equation is nothing but the material balance okay and essentially what happens is that when you write the differential equation you end up with a non-linear equation but then if you want to use linear control theory you want to linearize the system and there is this lin command in Sylab which is expected to do the job for you and the way the lin command works is you are expected to write a function which returns the state derivative as well as the output and this is what exactly I have done here in this code it's a very simple code and you simply supply this function to the lin command and I'm just showing you the sample results the purpose is to show that there is a bug in the lin command and this is an important command that people actually use in linear system theory to arrive at linearized models. Now the output that you see here is the output from the lin command and I have simply used the tech print command which is a nice feature in Sylab and of course it has some bugs as well and you can see that there is an error obvious error the what one would expect is when you linearize a non-linear differential equation and typically the output equation is always already linear so you should expect that the matrix here for those of you who are familiar with linear system theory the matrix C here should not contain a number like this and for this particular example C should be 1 and D should be 0 and D is actually here and I have given the theoretical answer here below to show that there is a bug and I'm not pointing out with a critical remark here or with a skeptical but I'm saying that there are some bugs which need to be fixed besides that the control system toolbox is great and this is an this is an obvious bug and I think that definitely needs to be fixed and I don't know where the problem lies whether the problem lies with the lin command itself or the link and or the underlying code I didn't probe into this but this is just a recent discovery I know that there is a lin cos command where you can build the block diagram in psi cos where you can write the differential equation and you can write you can build a block diagram for the non-linear system call the lin cos command and get the linear model but then of course that doesn't justify the bug in the lin command and as I've already said people are reluctant to use psi cos so I can't really suggest this as a solution okay so besides that the control system toolbox I have found it to be a very nice toolbox to use and overall psi lab along with control systems toolbox usage has been a very pleasant experience but there are further developments needed if we want to attract more users and some of the developments have suggested here we need for example an exclusive toolbox for model predictive control it need not be an exclusive toolbox it can be integrated with the control systems toolbox and likewise for non-linear controller and active control and these are all very hot topics today and considered as a part of advanced process control and I'm sure that these three tools will be very attractive to the industries as well so I'll quickly move on to the core of this talk where I want to talk of an exclusive toolbox for system identification and for those of you who are new to system identification system identification is the art and exercise of estimating dynamic models from input output data so that's very succinctly put and I call it silent and I'll just give you the current status of the applicability of psi lab as far as the society is concerned there are some basic data fitting tools such as the least squares fit and so on and again here within specific toolboxes there are some redundancies you have data fit you have fit data and so on so the user is not really sure which one to use and so that needs to be definitely sorted out there is a tool for estimating the rmax model okay and again here the difficulty here or the limitation here is that the rmax model simply gives you the estimates of the input output model but unfortunately does not give you the covariance of the parameter estimates or the parametric model that you have estimated okay I'm aware of a econometrics tool works known as a grocer which does time series analysis but does not build an in but does not give you an estimated input output model it's simply for time series analysis from an econometrics point of view there is a very good state space model identification toolbox and I think it has been obtained from Slycott it's called Slycott but again state space model identification the concepts the underlying theory is completely different from the concepts that govern the estimation of the input output models so really it's not directly usable as far as the input output model estimation is concerned what we need is a comprehensive set of tools that can allow us to estimate input out models with minimal dependencies on other toolboxes so in the next couple of slides I'm going to talk of what are the expectations of such a toolbox what features need to be included from a technical point of view and also from a user friendliness point of view so the first thing that this toolbox should be able to do it should be able to handle input output data objects as a pair there and I'm not borrowing this idea as such from the beautiful toolbox that's available for system identification in MATLAB but then even from a conceptual point of view because system identification is concerned with estimating models from input output data so input output data is a pair and we need to create a new probably object type or a data type which can actually take in the input output data and treat that as an object for subsequent analysis so that's one and then we need pre-technics or pre-processing the data already there's a command called detrend which does that but that's I think that's not sufficient I'll talk about that later on and after doing this it should be able to compute the following which are currently lacking in SyLab first it should be able to one should be able to compute the autocorrelation and the cross correlation functions I know these are technical terms apologize if some of you are not able to follow but this is more I'm trying to convey this to the SyLab team because it's an appropriate forum I thought and presently there is no explicit tool to compute an autocorrelation function or a partial autocorrelation function and so on and cross correlation functions yes there is one command but it's still not up to the mark and that's my opinion and more importantly is the power spectrum calculation in SyLab but essentially what happens with the C spec command is by default a cross spectrum for those of you are no signal processing it's a complex number but unfortunately returns an absolute quantity which is not correct technically speaking and secondly as I dug into the code there are some technical errors itself in fact this code has been apparently written as early as 1988 so even before SyLab began so I'm not sure if that's the reason that there are some bugs and with what engine the C spec intention the C spec command has been written then also the window functions that are used to generate the windows to estimate the power spectrum are not up to the mark in fact if you compare it with the MATLAB's window function in it's much more comprehensive so I think we need to get it up to the mark because signal processing is one area which is not just of importance to system identification but also to control and many other applications so the signal processing part as far as the frequency domain analysis is not really up to the mark okay so the SyLab toolbox should be able to do that and then it should also be able to estimate once these are done it should be able to estimate non-parametric models which are again not available at all that is the when I mean non-parametric when I say non-parametric models I mean impulse response and step response model estimation from the data as well as frequency response and then the class of parametric models of this form where one should be able to estimate which is what is completely lacking at the moment to certain extent the RMAX model does for a special structure but then again what is more important is not the is not obtaining the model estimate but equally important is the covariance for the parameter estimates it means it's not sufficient to say well I have this model from the data but you should also be in a position to say how reliable the model is and that's what the covariance of the parameter estimates gives you okay and then once you have built the model you one wants to validate the model so the toolbox should be able to provide the residual analysis also be able to compare the response of the estimated model to the actual response that you one has observed experimentally and so on so that has to be done and then input design is where actually the current command is truly lacking there is a command called PRBS underscore a and it stands for it PRBS stands for pseudo random binary signal and unfortunately I this command is not again up to the mark I have just quoted from the help document available here for the PRBS underscore a straight from Sylab and it says essentially NC can be used to tell how many times a signal should change sign and input design is an important task in system identification this is done prior to the experimentation stage and again here unfortunately there is no direct relation of this NC parameter with the frequency content that one desires to have in the input signal so there is a problem there and again the limitation here is it is only limited to generating PRBS but that's not the only signal that one desires to design there are other kinds of signals also so the the tool that is that should that will be developed for input design should take into account all of this and then as I said earlier data preprocessing is a very important step in fact it consumes probably 80% of your time in estimating a model so presently the detrend command is pretty good it actually removes the constant and the linear trends but then we don't have provision to remove outliers missing data handling irregular data and so on and finally the user friendly features after the model has been estimated one should be able to present to the user the model in a neat just as we have near pretty print and so on so we should have it in a pretty print form and one should be able to actually again construct the estimated model in in an object that is understood by Sylab and finally after all this is done one would definitely like to have a graphical user interface which will which will be basically linked to all these functionalities okay but that's secondary at the moment that is secondary there whatever I've discussed earlier is important and then last but not the least as far as the silent toolbox is concerned one would like to have advanced topics in ID as well to be included such as nonlinear system identification and then the ability to handle irregularly sample data this is a very common phenomenon and so on other topics and so at the moment what I have done is actually I have written codes to compute the auto correlation function partial auto correlation functions and the cross spectrum now I have written it correctly but still I need to do some more verification and not only should this tools which compute ACF PSEF and cross spectrum should give you the estimates of this but they should also give you the standard errors of estimates okay because one does not deal with deterministic signals all the time you have measurements which are corrupted with noise that's important and right now I'm currently involved personally myself and of course I have had also fruitful interactions with professor Kanan Maudgaliya here in developing specific codes to again for for system identification and at but the personal level to enhance the teaching of this control related courses the last thing that I want to talk of here is the XML lab I know it's a third-party product but again this XML lab actually stands for the similar XML stands for extensible markup language and this is a simulation authoring environment from where you can actually call matlab or silab and so on and this has been written by these two authors here and I have found XML lab to be a very good simulation authoring environment for teaching purposes the the I'll just tell you the difference very briefly between XML lab and psychos psychos is a fantastic piece of tool for simulating and for batch simulation and so on but then suppose there is a situation going back to the simulation of the level system where I want to show to the students as a change the cross-section area as a change the resistance how does the time constant of the system change how does a gain change and so on I'll have to probably again do psychos in batch simulation mode and so on but then always you know we we are all vulnerable and prone to seeing graphical user interfaces XML lab provides you built-in GUIs to actually use sliders and so on to animate and use interactively the the objects that are present in GUI to change your system parameters and see the response okay so one of the goals as you can see here is to enhance teaching using XML lab and silab and of course I probably am not aware of many other tools that have been built on similar lines but from a research point of view and I would like to actually contribute significantly as much as possible to develop the system identification toolbox for silab and finally I would like to acknowledge the following it's not an exhaustive list but first the Indo friend said center for the promotion of advanced research for whatever we are having today as far as silab and this workshop is concerned and personally would like to thank Professor Kannan Maudgillia here for taking care of the hospitality and all the administration I think it's a wonderful job and the silab team for the obvious reasons and IIT Madras again for obvious reasons and thank you all for your attention