Пространство состояний (State-Space). Линейные системы с сосредоточенными параметрами (line and time-invariant system – LTI), страница 6

В результате для каждого из случаев получили линейное уравнение с постоянными коэффициентами. При переходе диода из одного состояния в другое, производим замену коэффициентов в уравнениях, а в качестве начального условия используем текущее состояние системы. Преобразуем уравнения (37). Замена  не изменит самих уравнений, но позволит записать их в форме похожей на (35), а также оставим , так как входной сигнал есть независимо от диода.

                                                                                                                                          (38)

Формулы (35) и (38) отличаются только коэффициентами, поэтому их можно записать в общем виде:

                                                                                                                                             (39)

При различных состояниях диода в (39) будут подставляться разные коэффициенты. Для открытого диода:

                                                                                        (40)

и для закрытого диода:

                                                                                                                                 (41)

В этом примере моделирование детектора с помощью пространства состояний выполнено в виде подсистемы Detector, которая находится в верхней части рис.11, на её вход подаётся тот же сигнал, что и на управляемый источник напряжения, а три выхода подключены к осциллографу. В подсистеме Detector (рис. 13) в замкнутом цикле происходит интегрирование по времени правой части уравнения состояния из (39).

Рис. 13 Подсистема Detector

Проверка условия (36) и выбор соответствующего набора коэффициентов происходит в подсистеме Coefficients, её входным параметром является напряжение на диоде, которое вычисляется с помощью блоков Gain1, Gain2 и Add1. На вход блока Gain1 подаётся напряжение с конденсатора. На вход блока Gain2 подаётся входной сигнал. В настройках блока Gain1 параметр Gain задан R1/(R1+R2), а у блока Gain2 этот параметр R2/(R1+R2). Блоки Product1, Product2, Add2 и Integrator вычисляют новое значение переменной , которое на следующем шаге выполнения будет использоваться как входной параметр блоков Gain1, Product1 и Product3. Блоки Product3, Product4, Add3 используются для вычисления выходного параметра , который равен напряжению на диоде.

В подсистеме Coefficients (рис. 14) происходит проверка условия (36) и выбор соответствующих коэффициентов (40) или (41).

Рис. 14 Подсистема Coefficients

Параметр If expression блока If оставить по умолчанию u1 > 0, что соответствует условию (36). Этот блок, в зависимости от того выполнилось условие или нет, выбирает какую из подсистем, присоединённых к нему штрих пунктирной линией, выполнить. Блоки Merge необходимы для того, чтобы объединить выходы двух подсистем в один, так как в Simulink нельзя непосредственно присоединить два выхода к одному входу. На каждом шаге моделирования будет выполняться только одна из подсистем, соответственно только на один из входов блока Merge будет приходить сигнал. На выходе блока Merge будет значение с того входа, на который пришёл результат выполненной подсистемы. Если диод в закрытом состоянии, будет выполняться подсистема If diode is in closed state (рис. 15), а если диод открыт – If diode is in opened state (рис. 16). Каждая из этих подсистем выдаёт коэффициенты для (39).

Рис. 15 Подсистема If diode in closed state

Рис. 16 Подсистема If diode in opened state

В каждой из подсистем рис. 15 и рис. 16 по четыре выхода. На каждый выход передаётся соответствующая константа. Для подсистемы на рис. 15 константы (40), для подсистемы на рис. 16 константы (41).

К блоку If подключаются подсистемы, которые называются If Action Subsystem, её характерное отличие – наличие блока Action Port, который необходим для подключения к блоку If.

Для предотвращения предупреждений решателя для каждого из выходных портов подсистем рис. 15 и рис. 16 необходимо задать параметр Initial output точно таким же, как и значение подключённой к нему константы. Для блоков Merge задать значение того же параметра такие же, как и значение этого параметра для выходов подсистемы рис. 15. Такое задание начальных значений означает, что диод в начальный момент времени был закрыт. Результат работы примера показан на рис. 17.

Рис. 17 Результат работы примера