Controlling the actuator with 5,10 mm displacement input.
3 views (last 30 days)
Show older comments
Hello,
I am working on a control project, basically a simulation of an actuator and I don`t have a control or electrical background, trying to figure out the thing step by step.
My current system has STEP INPUT---- PID --- DC MOTOR ---- MECHANICAL SYSTEM ---- OUTPUT. So my basic block diagram is looking like that.
Currently, I am giving random numbers as input to my Step input and PID cause I don`t know what are the realistic numbers for them, that random inputs making my system create a force and work. You can see the output I get according to these random number I made up.
My aim is getting correct numbers and being able to controlling the simulation on my simulink page. Like in this VIDEO. Also I want to have buttons on my simulink page to control the system like in the video, but my buttons are going to create different displacement like 10mm -10mm, 20mm -20mm.
Basically I am trying to achieve a displacement graph like that and force graph is going to be adjust itself according to that. It doesn`t have to be the same but I want to control the system with the button on my simulink page.
I am adding a Dummy Version of my Simulink model to this question. I have just change the Cad models on that system, didn`t changed anything else.
Your help is really important to me.
Thanks.
3 Comments
Pavl M.
on 11 Oct 2024
Edited: Pavl M.
on 11 Oct 2024
Hi. Confidential Solution Roadmap:
I have experience and skills in doing controller-regulators.
Following Occam's Razor phylosophical principle:
you just need basically to make your output to follow the step input (which is generally setpoint). The setpoint can be any sequence, the PID controller function is to adjust accordingly, you may need not know exact DC motor and mechanical system parameters (can be integrated-joined into 1 common block: Plant), in real world scenarios, which I also worked in, while control signal propogates through the plant parts, process model and sensor uncertaintities and noise(disturbance) can be added in you loop, so that is why they hire/employ engineers to tackle it and for it the Deep Learning Control ( basically based on utility function maximization/minimization) has became going on developing.
At which point in system do you measure Force?, where do you measure displacement,? which part is top part in you model?
It requires actual rewardable for both hiring via Skype/emai/mobile phone to do it.
Answers (1)
Sam Chak
on 12 Oct 2024
Hi @Fatih
The mathematical function for the reference signal (red curve) is necessary so that we can instruct the PID controller to produce the actuated signal for the plant output, enabling it to track the reference signal.
Here is a simple demonstration:
First, the reference signal is designed. Next, the step response of the uncontrolled plant is analyzed. With a settling time of 6 seconds, the plant cannot track the reference signal effectively.
Consequently, a PID controller is tuned to achieve a settling time of approximately 1 second. Now, the closed-loop system can track the reference signal accurately.
t = linspace(0, 40, 4001);
% Line 1
L1 = (20 - 0)/(15 - 8)*t + ( 0 - (20 - 0)/(15 - 8)* 8);
y1 = min(max(L1, 0), 20).*(heaviside(t - 0) - heaviside(t - 17));
% Line 2
L2 = (10 - 20)/(22 - 20)*t + (20 - (10 - 20)/(22 - 20)*20);
y2 = min(max(L2, 10), 20).*(heaviside(t - 17) - heaviside(t - 25));
% Line 3
L3 = (-10 -10)/(31 - 28)*t + (10 - (-10 -10)/(31 - 28)*28);
y3 = min(max(L3,-10), 10).*(heaviside(t - 25));
% Reference signal
ref = y1 + y2 + y3;
figure
plot(t, ref, 'color', '#D74967', 'linewidth', 3)
grid on, grid minor, ylim([-20, 20])
xlabel('t')
ylabel('R(t)')
title('Reference signal')
% Plant
Gp = tf(1, [1 2 1])
figure
step(Gp, 12), grid on, grid minor
title('Step response of the Plant')
% Plot result
figure
lsim(Gp, ref, t)
grid on, grid minor, ylim([-20, 20])
% PID Controller
Kp = 4.75;
Ki = 2.5;
Kd = 2.025;
Tf = 0.1;
Gc = pid(Kp, Ki, Kd, Tf)
% Closed-loop system
Gcl = feedback(Gc*Gp, 1)
figure
step(Gcl, 3), grid on, grid minor
title('Step response of the Closed-loop System')
% Plot result
figure
lsim(Gcl, ref, t)
grid on, grid minor, ylim([-20, 20])
4 Comments
Sam Chak
on 13 Oct 2024
Hi @Fatih
The PID autotuner in Simulink (as shown in the YouTube video) can be used. In MATLAB, with the Control System Toolbox, we use the pidtune() command. If the auto-tuning does not yield satisfactory performance for your linear system, you should consider using a higher-order controller, as suggested by control theory.
See Also
Categories
Find more on PID Controller Tuning in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!