Пошаговая симуляция теории управленияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Пошаговая симуляция теории управления

Сообщение Anonymous »

Я пытаюсь провести моделирование теории управления.
Задача здесь в том, что у меня есть латекс каждого блока системы в Лапласе.
Мне нужно моделировать это шаг за шагом, потому что позже мне нужно добавить немного шума между каждым блоком.
Сначала я увидел, что этот код работает, но после нескольких примеров я понял, что он расходится там, где должен был сходиться.
Возможно, у меня здесь слабые знания.
У меня была эта симуляция, но она расходится, что я могу сделать?
Как я могу изменить ее, чтобы она работала? Возможно, переезд в Z dom? У вас есть другие идеи?
from sympy import inverse_laplace_transform, symbols, laplace_transform
from latex2sympy2 import latex2sympy

def simulate(time, transfer_function, input_signal=None):
s, t = symbols('s t')
tf_sympy = latex2sympy(transfer_function)

if input_signal is not None:
input_laplace = laplace_transform(input_signal, t, s)[0]
tf_sympy = input_laplace * tf_sympy

time_domain_operation = inverse_laplace_transform(tf_sympy, s, t)
output_signal = time_domain_operation.subs(t, time)

return output_signal

delta = 0.1
cycles = 100

input_tf = '\\frac{1}{s}'
sensor_tf = '\\frac{1}{s}'
controller_tf = '1'
actuator_tf = '\\frac{1}{s}'
process_tf = '\\frac{1}{s^2}'

output = 0

for i in range(cycles):
time = i * delta
input_signal = simulate(time, input_tf, input_signal=None)
sensor = simulate(time, sensor_tf, output)
error = input_signal - sensor
controller = simulate(time, controller_tf, error)
actuator = simulate(time, actuator_tf, controller)
process = simulate(time, process_tf, actuator)
output += process
print(f'time: {time} error: {error} input: {input_signal} sensor: {sensor} controller: {controller} actuator: {actuator} process: {process} output: {output}')



Подробнее здесь: https://stackoverflow.com/questions/791 ... rol-theory
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»