Линеаризация динамической системы¶
В этом демонстрационном примере мы идентифицируем LTI-систему (линейную и стационарную) по входам-выходам динамической модели. Это нам позволит линеаризовать выбранный отрезок модели, а затем работать с ним как с обычной линейной стационарной системой.
Описание модели¶
Объектом линеаризации для нас будет служить модель, состоящая из двух RC фильтров, через которые будут проходить прямоугольные импульсы с периодом 0.01 с.
Каждый фильтр состоит из резистора 10 Ом и конденсатора 1e-04 Ф. Входной сигнал u
поступает из блока Pulse Generator
, а выходной сигнал y
является напряжением на последнем конденсаторе каскада, измеренным вольтметром Voltage Sensor
.
Pkg.add(["ControlSystemIdentification", "ControlSystems"])
gr()
modelName = "rc_circuit"
if !(modelName in [m.name for m in engee.get_all_models()]) engee.load( "$(@__DIR__)/$(modelName).engee"); end;
data = engee.run( modelName )
Если мы построим графики переменных u
и y
, то сможем оценить, насколько цепочка фильтров видоизменяет входной сигнал. Именно это поведение мы попробуем приблизительно описать при помощи линейной модели.
t,u,y = collect(data["u"]).time, collect(data["u"]).value, collect(data["y"]).value
plot( t, [u y], label=["u" "y"] )