function [sys,x0,str,ts] = stavp_mimo(t,x,u,flag,n,nin,nout,F,G,H,pp) % NelinSys - a program tool for analysis and synthesis of nonlinear control systems % based on MATLAB/Simulink 5.2 % % (C) 2002-2005, Martin Ondera (eskimo@pobox.sk) (Martin.Ondera@stuba.sk) % This program is free software; you can redistribute it and/or % modify it under the terms of the GNU General Public License %as published by the Free Software Foundation; either version 2 % of the License, or (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program; if not, write to the Free Software % Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. % % Please, see the LICENSE.TXT file to read the full license. switch flag, %=========================== Inicializacna cast s-funkcie ==============================% case0 % Definicia stavov, vstupov a vystupov nelinearneho systemu % sizes = simsizes; sizes.NumContStates = n; sizes.NumDiscStates =0; sizes.NumOutputs = nout+n; sizes.NumInputs = nin; sizes.DirFeedthrough =0; sizes.NumSampleTimes =1; sys = simsizes(sizes); % Inicializacia pociatocnych podmienok % x0 = pp; % Inicializacia "str" ako prazdna matica % str = []; % Sample times in TS % ts = [00]; %========================== Vypocet podla 1. stavovej rovnice ==========================% case1 sys = eval(sym(F)) + eval(sym(G)) * u; %========================== Vypocet podla 2. stavovej rovnice ==========================% case3 sys(1:nout,:) = eval(sym(H)); % Ako vystup bloku sa berie nielen vystup systemu% sys(nout+1:nout+n,:) = x; % ale aj cely stavovy vektor nelinearneho systemu % %================================= Nepouzite priznaky ==================================% case{2, 4, 9} sys = []; %================================= Spracovanie chyby ===================================% otherwise error(['Unknown flag = ',num2str(flag)]); end