Determining optimal coefficients for Horwitz matrix or characteristic equation

3 visualizzazioni (ultimi 30 giorni)
Commentato: Sam Chak il 13 Apr 2023
How to find kp and kv so that H becomes Horwitz?
H =
[ 0, 0, 1, 0]
[ 0, 0, 0, 1]
[ -(2000*kp)/1477, -(1000*kp)/1477, -(2000*kv)/1477, -(1000*kv)/1477]
[ (1000*kp)/1477, -(1000*kp)/1477, (1000*kv)/1477, -(1000*kv)/1477]
Also, the coefficients of the characteristic equation are as follows in order from large to small
[ 1, (3000*kv)/1477, (3000000*kv^2)/2181529 + (3000*kp)/1477, (6000000*kp*kv)/2181529, (3000000*kp^2)/2181529]
3 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Hello and thank you for your help
I am looking for a program that can help me determine the coefficients in such a way that my matrix is stable, although it should be said that the numerical values change over time.
The image and numerical values of the matrix were fixed for a time
Also, I apologize for the fact that I am not fluent in English and I had a problem writing it
Sam Chak il 11 Apr 2023
Conventionally, the range of and may be determined from the Routh–Hurwitz Stability Criterion, which is a pretty tedious task to compute elements in the Table for high-order systems (), and then solving the equations simultaneously.
So far, there is no such function in the Control System Toolbox.
There are some 3rd-party programs written by expert MATLAB users, posted on File Exchange. You should search for the ones that construct the table symbolically.
If you are looking for the determination of the optimal coefficients for and , then it becomes an optimization problem, in which you most likely need a optimization algorithm to solve the problem.

Accedi per commentare.

Risposte (2)

Sam Chak il 10 Apr 2023
Modificato: Sam Chak il 10 Apr 2023
Edit: It appears that and can make the matrix Hurwitz. However, the optimal coefficients are subjective, because they depend on the definition of the cost performance function.
If the quadratic cost function is used, perhaps these values and are optimal coefficients.
CASE 1: and
% CASE 1
kp = 0.25;
kv = kp;
A = [0, 0, 1, 0;
0, 0, 0, 1;
-(2000*kp)/1477, -(1000*kp)/1477, -(2000*kv)/1477, -(1000*kv)/1477;
(1000*kp)/1477, -(1000*kp)/1477, (1000*kv)/1477, -(1000*kv)/1477]
A = 4×4
0 0 1.0000 0 0 0 0 1.0000 -0.3385 -0.1693 -0.3385 -0.1693 0.1693 -0.1693 0.1693 -0.1693
eig(A)
ans =
-0.0012 + 0.5822i -0.0012 - 0.5822i -0.2527 + 0.4356i -0.2527 - 0.4356i
G = tf((3000000*kp^2)/2181529, [1, (3000*kv)/1477, (3000000*kv^2)/2181529 + (3000*kp)/1477, (6000000*kp*kv)/2181529, (3000000*kp^2)/2181529])
G = 0.08595 -------------------------------------------------- s^4 + 0.5078 s^3 + 0.5937 s^2 + 0.1719 s + 0.08595 Continuous-time transfer function.
step(G)
stepinfo(G)
ans = struct with fields:
RiseTime: 2.5536 TransientTime: 3.0953e+03 SettlingTime: 3.0953e+03 SettlingMin: 0.1465 SettlingMax: 1.9260 Overshoot: 92.5956 Undershoot: 0 Peak: 1.9260 PeakTime: 8.3833
CASE 2: and
% CASE 2
kp = 0.6557;
kv = 1.3419;
G = tf((3000000*kp^2)/2181529, [1, (3000*kv)/1477, (3000000*kv^2)/2181529 + (3000*kp)/1477, (6000000*kp*kv)/2181529, (3000000*kp^2)/2181529])
G = 0.5912 --------------------------------------------- s^4 + 2.726 s^3 + 3.808 s^2 + 2.42 s + 0.5912 Continuous-time transfer function.
step(G)
pole(G)
ans =
-0.8058 + 1.0032i -0.8058 - 1.0032i -0.5570 + 0.2164i -0.5570 - 0.2164i
stepinfo(G)
ans = struct with fields:
RiseTime: 4.8988 TransientTime: 9.2379 SettlingTime: 9.2379 SettlingMin: 0.9008 SettlingMax: 1.0004 Overshoot: 0.0379 Undershoot: 0 Peak: 1.0004 PeakTime: 14.9637
3 CommentiMostra 1 commento meno recenteNascondi 1 commento meno recente
Sam Chak il 11 Apr 2023
Modificato: Sam Chak il 11 Apr 2023
Don't apologize just because English is the common medium of communication used in this forum. It doesn't mean you are at fault. When people ask questions, try your best to clarify.
If the matrix is known with values, then you can compute the eigenvalues of . And if all eigenvalues have negative real parts, then the system is stable.
H = tril(-magic(4))
H = 4×4
-16 0 0 0 -5 -11 0 0 -9 -7 -6 0 -4 -14 -15 -1
eig(H) % eigenvalues
ans = 4×1
-1 -6 -11 -16
If there are time elements in , then it is a linear time-varying (LTV) model whose dynamics vary with time. This type of system is characterized by the time-varying matrix . The full context of your problem is unspecified, so I'm not sure how to advise you to attack the problem.
Of course, you can also do the Integer Brute-force Search on and , and then narrow down the solutions. For a two-variable problem, I think it is still manageable without causing a combinatorial explosion.
Sam Chak il 13 Apr 2023
Hi @mohammadreza, Your latest update is a new problem, and the proposed method may not be applicable to the time-varying problem. Besides You should not reply in the "Answer" section.
If is a time-varying function (as shown in your supplied image), and without analyzing the function, then there is no guarantee that the system will be stable even though is designed to be Hurwitz as .

Accedi per commentare.

Thank you very much for your help
R(t) is Time-varying matrix
My problem is finding kp and kv scalars
1 CommentoMostra -1 commenti meno recentiNascondi -1 commenti meno recenti
H should always be Hurwitz

Accedi per commentare.

Categorie

Scopri di più su Linear Algebra in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by