Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
bloc2ss
преобразование блок-схемы в пространство состояний
Синтаксис
sl = bloc2ss(blocd)
Аргументы
- blocd
список
- sl
список
Описание
Заданную линейную систему в виде блок-схемы bloc2ss
преобразует
в линейную систему пространство состояний. Первый элемент списка
blocd
должен быть строкой 'blocd'
.
Остальные элементы этого списка должны сами по себе быть списками одного из следующего типа:
list('transfer','name_of_linear_system')
list('link','name_of_link', [number_of_upstream_box,upstream_box_port], [downstream_box_1,downstream_box_1_portnumber], [downstream_box_2,downstream_box_2_portnumber], ...)
Строки 'transfer'
и 'link'
являются ключевыми
словами, которые указывают тип элемента в блок-схеме.
Случай 1: второй параметр списка является символьной строкой, которая может ссылаться
(для возможного дальнейшего вычисления) на Scilab-имя линейной системы,
заданной в виде пространства состояний (список syslin
) или в
передаточной форме (матрица или рациональные дроби).
Каждому передаточному блоку присваивается целое число. Каждому входу и выходу передаточного блока также присваивается свой номер, целое число (см. примеры).
Случай 2: второй вид элемента в представлении блок-схемы - это связь (link).
Связь связывает один выход блока, представленного парой
[number_of_upstream_box,upstream_box_port]
(то есть [номер_предшествующего_блока,порт_предшествующего_блока]
),
с различными входами других блоков. Каждый такой вход предсталяется парой
[downstream_box_i,downstream_box_i_portnumber]
(то есть [последующий_блок_i,номер_порта_последующего_блока_i]
).
Различные элементы блок-схемы могут определяться в произвольном порядке.
Например
[1] S1*S2
с обратной связью блока.
Есть три передаточных звена S1
(число
n_s1=2
) , S2
(число
n_s2=3
) и сумматор (число n_add=4
)
с символической передаточной функцией ['1','1']
.
Есть 4 связи :
- Первая (с именем
'U'
) связывает вход (порт 0 условного блока -1 не рассматривается) с портом 1 сумматора. - Вторая и третья связи соответственно (выходной) порт 1 сумматора с (входным)
портом 1 системы
S1
, а (выходной) порт 1S1
с (входным) портом 1S2
. - Четвёртая связь (названная
'Y'
) связывает (выходной) порт 1S2
с выходом (порт 0 условного блока -1 не рассматривается) и с (входным) портом 2 сумматора.
Examples
//Инициализация syst=list('blocd'); l=1; //Системы l=l+1;n_s1=l;syst(l)=list('transfer','S1'); //Система 1 l=l+1;n_s2=l;syst(l)=list('transfer','S2'); //Система 2 l=l+1;n_adder=l;syst(l)=list('transfer',['1','1']); //сумматор //Связи // Выходы -1 --> выход 1 l=l+1;syst(l)=list('link','U1',[-1],[n_adder,1]); // Внутренние l=l+1;syst(l)=list('link',' ',[n_adder,1],[n_s1,1]); l=l+1;syst(l)=list('link',' ',[n_s1,1],[n_s2,1]); // Выходы // -1 -> output 1 l=l+1;syst(l)=list('link','Y',[n_s2,1],[-1],[n_adder,2]);
Для s=poly(0,'s');S1=1/(s+1);S2=1/s;
результатом вызова исполнения
sl=bloc2ss(syst);
является представление в пространстве
состояний для 1/(s^2+s-1)
.
[2] Пример LFT (Linear Fractional Transformation) :
// Инициализация syst=list('blocd'); l=1; // Система (установка блоков 2x2) l=l+1;n_s=l;syst(l)=list('transfer',['P11','P12';'P21','P22']); // Контроллер l=l+1;n_k=l;syst(l)=list('transfer','k'); // Связи l=l+1;syst(l)=list('link','w',[-1],[n_s,1]); l=l+1;syst(l)=list('link','z',[n_s,1],[-1]); l=l+1;syst(l)=list('link','u',[n_k,1],[n_s,2]); l=l+1;syst(l)=list('link','y',[n_s,2],[n_k,1]);
С
Смотрите также
- poly — Определение полинома через указанные корни или коэффициенты или определение характеристического полинома квадратной матрицы.
Report an issue | ||
<< armac | Linear System Representation | cont_frm >> |