Solving Matrix Equation in Simulink

3 visualizzazioni (ultimi 30 giorni)
Sarah Miller
Sarah Miller il 13 Gen 2014
Commentato: Sarah Miller il 2 Feb 2014
Hi everyone, I have the following matrix euation:
Pdot=beta*P-P*(Phi*Phi'-error*H)*P
which P is a matrix with 4*4 size. I want to solve this equation in simulink.I use matlab embeded block.In every step,this equation should be solved and P is updated. what code i should write?

Risposte (1)

Mischa Kim
Mischa Kim il 13 Gen 2014
The basic structure looks like this:
In the embedded function you compute Pdot which is inputted into an integrator that computes P. Don't forget to set initial conditions for P by opening the integrator. Assuming that all the other variables are constants the embedded function might look something like:
function Pdot = fcn(P)
beta = ...
Phi = ...
Phip = ...
error = ...
H = ...
Pdot = beta*P - P*(Phi*Phip - error*H)*P;
  6 Commenti
Sarah Miller
Sarah Miller il 2 Feb 2014
Yeah,you are right.onlineident2.mdl was attached. In fact,I want to solve 2 following matrix equation:
Pdot=beta*P-P*(Phi*Phi'-error*dP)*P
tetaDot= P*error*Phi
The size of teta is 4*1 and size of P is 4*4. If Initial Condition of teta is chosen like the following:
[0.2-1.625 0.01-0.625 0.5 40]'
no error was happened,but actually teta equation wasnt solved.
it is sensitive to initial condition,and this error was ocurred:
Derivative input 1 of 'onlineident2/Integrator' at time 48.42 is Inf or NaN. Stopping simulation. There may be a singularity in the solution. Would you pls what can i do?
Would you pls tell me, how can i cope with it?

Accedi per commentare.

Categorie

Scopri di più su General Applications in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by