design feedback state controller

3 次查看(过去 30 天)
hi,
I have a pressing system which it's input is the "press velocity" and the output is "exit temperature".SISO system
the matrices for the state space model are scalar and like this: A = [0] B = [16.6] C = [475] D = [0]
I need to design a state controller to keep the exit temperature in a range like 500-600°C by changing the press velocity during the pressing. the desired pole is let say -10.
I appreciate any idea.

回答(1 个)

Sam Chak
Sam Chak 2023-2-24
编辑:Sam Chak 2023-2-24
You can try the following design approach if it works for your application.
A = 0;
B = 16.6;
C = 475;
D = 0;
sys = ss(A, B, C, D)
sys = A = x1 x1 0 B = u1 x1 16.6 C = x1 y1 475 D = u1 y1 0 Continuous-time state-space model.
The design task is to analytically compute the control gain K, or tune it
K = 10/16.6
K = 0.6024
until the desired pole is obtained
eig(A - B*K) % eigenvalue of compensated system
ans = -10
If you understand the theory behind the design, then this place() function is not needed:
place(A, B, -10) % should return the same value as K
ans = 0.6024
sysD = ss(A-B*K, B, C, D); % dummy
scale = 1/dcgain(sysD) % scale for input signal
scale = 0.0013
Td = 550; % Desired Temperature (input signal)
input = Td*scale % scaled input signal
input = 0.6975
Compensated System:
sysC = ss(A-B*K, B*(input), C, D);
step(sysC, 1)
S = stepinfo(sysC)
S = struct with fields:
RiseTime: 0.2197 TransientTime: 0.3912 SettlingTime: 0.3912 SettlingMin: 497.4754 SettlingMax: 549.9855 Overshoot: 0 Undershoot: 0 Peak: 549.9855 PeakTime: 1.0546

类别

Help CenterFile Exchange 中查找有关 Classical Control Design 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by