Integrator doesn't work properly
显示 更早的评论
I am working on a controller that calculates the maximum velocity that the actuator can remove from the system so the kinetic energy is zero when achieving the set point. Please see the attachment.

the MATLAB Function block is:
function direction = dircVel(Xd, Xa, Va)
Fmax = 1;
m = 1;
Vmax = sqrt(2 * Fmax * abs(Xd - Xa) / m) * sign(Xd - Xa);
direction = sign(Vmax - Va);
What I expect to see is that the output approaches the setpoint position asymptotically but it diverges to infinity!

the output of the MATLAB function seems OK:

but the output of the first integration is wrong:

red line being what I expected to see.
I would appreciate it if you could help me know what is wrong and how I can resolve it.
采纳的回答
更多回答(1 个)
Benjamin Thompson
2022-2-24
0 个投票
The output of your first integrator is always positive. So the second integrator will keep increasing until its input become zero or negative.
类别
在 帮助中心 和 File Exchange 中查找有关 Discontinuities 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!


