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
, а (выходной) порт 1 S1
с (входным) портом
1 S2
. Четвёртая связь (названная 'Y'
)
связывает (выходной) порт 1 S2
с выходом (порт 0 условного блока
-1 не рассматривается) и с (входным) портом 2 сумматора.
//Инициализация 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
// Инициализация 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]);
С
bloc2exp(syst)
возвращает lft P
и K
.
Смотрите также
- bloc2exp — преобразование блок-схемы в символьное выражение
Report an issue | ||
<< bloc2exp | Сигнальная обработка | pen2ea >> |