Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
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
дано в коде функции ssrand
(в SCI/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 | ||
<< pen2ea | Сигнальная обработка | sysconv >> |