フィルターのクリア

design feedback state controller

1 回表示 (過去 30 日間)
Milad Bahaedini
Milad Bahaedini 2023 年 2 月 23 日
編集済み: Sam Chak 2023 年 2 月 24 日
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 Center および File ExchangeClassical Control Design についてさらに検索

製品


リリース

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by