Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
2023.1.0 - Русский


ssrand

генератор случайной системы

Синтаксис

sl=ssrand(nout,nin,nstate)
[sl,U]=ssrand(nout,nin,nstate,flag)

Аргументы

nout

целое число (число выходов)

nin

целое число (число входов)

nstate

целое число (размерность пространства состояний)

flag

список, сделанный из одной символьной строки и одного или нескольких целых чисел

sl

список (список syslin)

U

квадратная невырожденная матрица размером (nstate x nstate)

Описание

sl=ssrand(nout,nin,nstate) возвращает случайную строго корректную (D=0) систему пространства состояний размером [nout,nint], представленную списком syslin и с nstate переменными состояния.

[sl,U]=ssrand(nout,nin,nstate,flag) возвращает тестовую линейную систему с заданными свойствами, определёнными флагом flag. flag может быть одним из следующих:

flag=list('co',dim_cont_subs)
flag=list('uo',dim_unobs_subs)
flag=list('ncno',dim_cno,dim_ncno,dim_co,dim_nco)
flag=list('st',dim_cont_subs,dim_stab_subs,dim_stab0)
flag=list('dt',dim_inst_unob,dim_instb0,dim_unobs)
flag=list('on',nr,ng,ng0,nv,rk)
flag=list('ui',nw,nwu,nwui,nwuis,rk)

Полное описание Sys дано в коде функции ssrandSCI/modules/cacsd/macros/). Например, с flag=list('co',dim_cont_subs) возвращается неконтролируемая система, а dim_cont_subs - размерность контролируемого подпространства Sys. Символьные строки'co','uo','ncno','st','dt','on','ui' обозначают:

"controllable" - "контролируемая",

"unobservable",

"non-controllable-non-observable" - "неконтролируемая и ненаблюдаемая",

"stabilizable" - "стабилизируемая",

"detectable" - "обнаружимая",

"output-nulling" - "обнуление выхода",

"unknown-input" - "неизвестный вход".

Примеры

//flag=list('st',dim_cont_subs,dim_stab_subs,dim_stab0)
//dim_cont_subs<=dim_stab_subs<=dim_stab0
//пара (A,B) U-образная для:
//    [*,*,*,*;     [*;
//    [0,s,*,*;     [0;
//A=  [0,0,i,*;   B=[0;
//    [0,0,0,u]     [0]
//
// (A11,B1) контролируемая
// s = стабильная матрица
// i = нейтральная матрица
// u = нестабильная матрица
[Sl,U]=ssrand(2,3,8,list('st',2,5,5));
w=ss2ss(Sl,inv(U)); //отменить случайное изменение базиса => формировать как выше
[n,nc,u,sl]=st_ility(Sl);n,nc

Смотрите также

  • syslin — определение линейной системы
Report an issue
<< ssprint Linear System Representation sysconv >>

Copyright (c) 2022-2023 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon May 22 12:41:13 CEST 2023