В настоящее время я работаю над заданием, в котором мне нужно создать два разных контроллера в Matlab / Simulink для ножки роботизированного экзоскелета.Идея заключается в том, чтобы сравнить их обоих и увидеть, какой контроллер лучше помогает человеку в его ношении.У меня много проблем с переносом конкретных уравнений в функциональный блок Matlab, который затем запускается в Simulink для получения результатов для AFO (адаптивный генератор частоты).Ссылка содержит уравнения, которые я пытаюсь вставить, и следующий код, который у меня есть:
function [pos_AFO, vel_AFO, acc_AFO, offset, omega, phi, ampl, phi1] = LHip(theta, eps, nu, dt, AFO_on)
t = 0;
% syms j
% M = 6;
% j = sym('j', [1 M]);
if t == 0
omega = 3*pi/2;
theta = 0;
phi = pi/2;
ampl = 0;
else
omega = omega*(t-1) + dt*(eps*offset*cos(phi1));
theta = theta*(t-1) + dt*(nu*offset);
phi = phi*(t-1) + dt*(omega + eps*offset*cos(phi*core(t-1)));
phi1 = phi*(t-1) + dt*(omega + eps*offset*cos(phi*core(t-1)));
ampl = ampl*(t-1) + dt*(nu*offset*sin(phi));
offset = theta - theta*(t-1) - sym(ampl*sin(phi), [1 M]);
end
pos_AFO = (theta*(t-1) + symsum(ampl*(t-1)*sin(phi* (t-1))))*AFO_on; %symsum needs input arguement for index M and range
vel_AFO = diff(pos_AFO)*AFO_on;
acc_AFO = diff(vel_AFO)*AFO_on;
end
https://www.pastepic.xyz/image/pg4mP
По сути, я не знаю, каксделать подписи, сигма или (t + 1) функцию.Любая помощь приветствуется на следующей неделе