Simulink pump transfer function output remains zero

Hello,
I am working on a pump station model in MATLAB/Simulink with a 110 kW induction motor and centrifugal pump.
I derived the transfer function of the pump, but my system output stays at zero during simulation.
Transfer function:
Gp(s) = ...
Why does the output remain zero?
Is my model structure correct?
Thank you.

6 comentarios

Nabiyev Muslim
Nabiyev Muslim el 26 de Feb. de 2026 a las 5:56
The simulink model is ready and the simulation result is not being produced in this model. Help is needed. This model focuses on energy saving.
Sam Chak
Sam Chak el 26 de Feb. de 2026 a las 7:34
You did not post the transfer function Gp(s) or the complete Simulink model. Assuming the input to the transfer function is nonzero (a constant), then mathematically, if Gp(s) contains a factor s in the numerator (i.e., a zero at s = 0), the output of the transfer function block will be zero for a constant (DC) input.
Nabiyev Muslim
Nabiyev Muslim el 26 de Feb. de 2026 a las 10:26
Nabiyev Muslim
Nabiyev Muslim el 26 de Feb. de 2026 a las 10:29
Editada: Nabiyev Muslim el 26 de Feb. de 2026 a las 11:14
bu yerda model keltirilgan. model nasos stansiyasi uchun boshqaruv tizimi uchun qo'llaniladi. noaniq mantiq boshqaruvchisi orqali boshqarish rejalashtirilgan. noaniq mantiqning ikkita kirish va bitta chiqish qiymatlarga ega. qoidalar 5x5=25 asosida kiritilgan xatolikni topolmayapman keyingi rasmda simulatsiyani ham keltiraman
Nabiyev Muslim
Nabiyev Muslim el 26 de Feb. de 2026 a las 10:31
Nabiyev Muslim
Nabiyev Muslim el 26 de Feb. de 2026 a las 10:35
ekspertlardan iltimos qilardim shu modelim ishlashida yordam berishlarini. shu modelni katta quvvatli nasos stansiyalarida qo'llab elektr energiya tejash ko'zda tutilgan. agar imkoni bo'lsa bu modelni yana qanday takomillashtirish mumkin maslahat beringizlar. Uzbekistonda ham shu nasos stansiyasi sohasida yangilik kiritib energiya va resurs tejamkorligiga erishmoqchiman

Iniciar sesión para comentar.

 Respuesta aceptada

Sam Chak
Sam Chak el 27 de Feb. de 2026 a las 19:38
I cannot help you with all aspects of the problem due to the lack of certain info, and the original plant system is nonlinearized with saturation blocks. However, you can explore the following design approach and adjust the master control gain Kc​ to ensure that the outputs of Ga and G2​ remain within the signal constraints.
Since the four individual subsystems (G1 to G4) are stable 1st-order systems, the overall plant (Gp​) behaves as a 4th-order system, similar to a 1st-order system. The auxiliary compensator (Ga​) uses the characteristics of Gp​ to reshape its response. A PI controller (Gc) has been found to be sufficient for the control task. If a fuzzy controller is required in your research, the PI controller can be fuzzified to maintain the effectiveness of the designed control strategy.
% individual subsystems
G1 = tf(5, [0.003, 1]);
G2 = tf(29.6, [0.3, 1]);
G3 = tf(0.0622, [0.15, 1]);
G4 = tf(1000, [2, 1]);
G5 = tf(0.0001);
% plant
Gp = minreal(series(G1, series(G2, series(G3, series(G4, G5)))))
Gp = 3409 ------------------------------------------ s^4 + 343.8 s^3 + 3527 s^2 + 9085 s + 3704 Continuous-time transfer function.
[num, den] = tfdata(Gp, 'v');
pp = pole(Gp)
pp = 4×1
-333.3333 -6.6667 -3.3333 -0.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
% auxiliary compensator
Ga = zpk([pp(2), pp(3)], [pp(1), pp(1)], pp(4)*pp(1)^3/num(5))
Ga = 5431.5 (s+6.667) (s+3.333) -------------------------- (s+333.3)^2 Continuous-time zero/pole/gain model.
% cascaded system Ga*Gp with the dominant pole at s = pp(4)
Gap = (minreal(series(Ga, Gp)))
Gap = 1.8519e+07 ------------------- (s+333.3)^3 (s+0.5) Continuous-time zero/pole/gain model.
dcgain(Gap)
ans = 1.0000
[y1, t1] = step(Gp, 20);
[y2, t2] = step(Gap, 20);
% plot Open-loop step response
figure
yyaxis left
plot(t1, y1)
ylabel('y_{Gp}(t)')
yyaxis right
plot(t2, y2)
ylabel('y_{Gap}(t)')
grid on
legend('Gp', 'Gap', 'location', 'east')
xlabel('Time (seconds)')
title('Open-loop step response')
% PI controller for Gp (without Ga)
Kc1 = 1;
Gc1 = pid(1, -pp(4))/(-pp(4))*Kc1
Gc1 = 1 Kp + Ki * --- s with Kp = 2, Ki = 1 Continuous-time PI controller in parallel form.
% PI controller for Gap (with Ga)
Kc2 = 2;
Gc2 = pid(1, -pp(4))/(-pp(4))*Kc2
Gc2 = 1 Kp + Ki * --- s with Kp = 4, Ki = 2 Continuous-time PI controller in parallel form.

3 comentarios

Nabiyev Muslim
Nabiyev Muslim hace alrededor de 4 horas
Based on the above model, the simulation result was obtained based on the PI controller. Now, is it possible to obtain the simulation result using the same model based on the fuzzy logic controller. Or if there is another more improved model, we want to obtain the result. Please help in this regard.
Nabiyev Muslim
Nabiyev Muslim hace alrededor de 2 horas
Can you please tell me what kind of transfer function is provided in the Zero Pole Ga block that comes after the PI controller in the model?
I cannot address everything in the forum, as the course generally spans one to two semesters. What I have assumed is that your modeling of the stable plant is accurate.
By exploiting the characteristic poles of the plant, which are all real (no imaginary components) {-333.3333, -6.6667, -3.3333, -0.5000}, an auxiliary compensating biproper transfer function (Ga) can be designed so that the cascaded/reshaped 4th-order plant (Gap) behaves like a stable 1st-order system with a dominating pole {-0.5000} that is close to the imaginary axis on the complex s-plane:
The idea is to cancel out the two poles {-6.6667, -3.3333} using zeros in the numerator, and then replace them with a repeated pole {-333.3333} in the denominator. This explains why the transfer function of Ga was initially expressed in zero-pole-gain form:
where K is a constant that scales the numerator of Gp that yields a DC gain of 1 at steady-state.
In short, where its step response behaves like .
% individual subsystems
G1 = tf(5, [0.003, 1]);
G2 = tf(29.6, [0.3, 1]);
G3 = tf(0.0622, [0.15, 1]);
G4 = tf(1000, [2, 1]);
G5 = tf(0.0001);
% plant
Gp = minreal(series(G1, series(G2, series(G3, series(G4, G5)))))
Gp = 3409 ------------------------------------------ s^4 + 343.8 s^3 + 3527 s^2 + 9085 s + 3704 Continuous-time transfer function.
[num, den] = tfdata(Gp, 'v');
% poles (eigenvalues) of the plant
pp = pole(Gp)
pp = 4×1
-333.3333 -6.6667 -3.3333 -0.5000
<mw-icon class=""></mw-icon>
<mw-icon class=""></mw-icon>
% auxiliary compensator (in zero-pole form)
Ga = zpk([pp(2), pp(3)], [pp(1), pp(1)], pp(4)*pp(1)^3/num(5))
Ga = 5431.5 (s+6.667) (s+3.333) -------------------------- (s+333.3)^2 Continuous-time zero/pole/gain model.
% Convert the zero-pole form to rational function form
Ga = tf(Ga)
Ga = 5431 s^2 + 5.431e04 s + 1.207e05 -------------------------------- s^2 + 666.7 s + 1.111e05 Continuous-time transfer function.
% cascaded system Ga*Gp with the dominant pole at s = pp(4)
Gap = (minreal(series(Ga, Gp)))
Gap = 1.852e07 ---------------------------------------------------- s^4 + 1000 s^3 + 3.338e05 s^2 + 3.72e07 s + 1.852e07 Continuous-time transfer function.
%
dcgain(Gap)
ans = 1.0000
% target response of the reshaped open-loop plant
Gtr = tf(-pp(4), [1, -pp(4)])
Gtr = 0.5 ------- s + 0.5 Continuous-time transfer function.
[y1, t1] = step(Gtr, 20);
[y2, t2] = step(Gap, 0:0.25:20);
% plot Open-loop step response
figure
yyaxis left
plot(t1, y1)
ylabel('y_{Gtr}(t)')
yyaxis right
plot(t2, y2, '.')
ylabel('y_{Gap}(t)')
grid on
legend('Gtr', 'Gap', 'location', 'east')
xlabel('Time (seconds)')
title('Open-loop step response')

Iniciar sesión para comentar.

Más respuestas (1)

Nabiyev Muslim
Nabiyev Muslim hace alrededor de 21 horas
Editada: Nabiyev Muslim hace alrededor de 21 horas
rahmat bu modelni ham ishlatib kuraman va huddi shu fayl uchun noaniq mantiq boshqaruvchisini qullab kuraman. telegram messengeri orqali gaplashsak buladimi. @muslim_nabiyev shu manzilda bulardim bir real ishlaydigan model qilishimga yordam bera olasizmi vaqtingizni olib quymasam. telegramdan yozsangiz bemalol fikrlar modellar almashib ilmiy yunalishda katta loyixa qilishimga yordam bering itimos qilaman.

2 comentarios

Approximate translation of @Nabiyev Muslim
Thank you, I will try this model and use the fuzzy logic controller for the same file. Can we talk via telegram messenger? @muslim_nabiyev I was at this address, can you help me make a real working model if I don't take up your time? If you write on telegram, feel free to exchange ideas and models, help me make a big project in the scientific direction, I hope.
Nabiyev Muslim
Nabiyev Muslim hace alrededor de 8 horas
thank you bro

Iniciar sesión para comentar.

Categorías

Más información sobre Fuzzy Logic in Simulink en Centro de ayuda y File Exchange.

Productos

Versión

R2025a

Preguntada:

el 26 de Feb. de 2026 a las 5:53

Comentada:

hace 10 minutos

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by