/
Chronos
/
TU_laba
Обзор
Документация
Войти
/
Chronos
/
TU_laba
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
dump/test_case.py
48 строк
850 B
Chronos
Живо то, что ещё не умерло
28 мар 2025, 09:12
28 мар 2025, 09:12
f49a0f7
Код
Авторство
О чём код?
import matplotlib.pyplot as plt import numpy as np from scipy.integrate import odeint from full_unimod_lib import * A = np.asarray([ [1,1], [0,1] ]) B = np.asarray([ [1], [1] ]) C = np.asarray([[1,1]]) Q,Ac = full_unimodal_control_FL(A,B,[-1,-1]) L,Ao = full_unimodal_control_FL(A.T,C.T,[-3,-3]) L = -L.T state = np.asarray([1.0,1.0,0.0,0.0]) def system(y,t): x = y[:2] # print(x) zeta = y[2:] # print(zeta) dx = A@x+B@Q@zeta dzeta = A@zeta+B@Q@zeta+L@C@(x-zeta) return np.vstack((dx,dzeta)).flatten() M_top = np.hstack((A,B@Q)) M_bot = np.hstack((L@C,A+B@Q-L@C)) M = np.vstack((M_top,M_bot)) print(M) print(np.linalg.eigvals(M)) sol = odeint(system,state,np.linspace(0,10,10_00)) plt.plot(sol[:,0],sol[:,1],label='x') plt.plot(sol[:,2],sol[:,3],label='zeta') plt.legend() plt.grid() plt.show()