Gloeiend staal en SIMULINK vraag

Dit is het algemene Tau discussieforum

Moderators: Joost van der Kraan, Pieter Teunissen, Justin van den Hurk

Post Reply
Koen
lid
Posts: 40
Joined: Sat 08 May, 2004, 19:13

Gloeiend staal en SIMULINK vraag

Post by Koen »

Hallo Nederland,

Hier in Monterrey is nog steeds alles goed, ik verblijf de laatste tijd regelmatig tussen gloeiend staal ( www.greenlegends.tk) #goed , tussendoor werk ik met Simulink en daar loop ik nu even mee vast. Dus bij deze een vraag voor alle regelnichten onder ons:

Ik wil van een complex lineair MIMO Simulink model de transfer funtion bepalen. Als je numerieke parameters gebruik in het Simulink model is het geen probleem, bv. met linmod. Ik wil echter de transfer function als ik symbolische parameters gebruik in Simulink. M.a.w. de transfer function uitgedrukt in de symbolische parameters die gebruikt worden in het Simulink model.

Voor het goede antwoord, met een beetje geluk orginele Mexicaanse tequila maar in ieder geval #held

Verder ben ik nog op zoek naar de QFT Toolbox voor Matlab!!!!!!!!!

Zuipse deze week bij de constitutie #bier


Koen
User avatar
Frits
lid
Posts: 70
Joined: Sun 04 Apr, 2004, 15:37

Post by Frits »

He Koen,

aan QFT kan ik je niet helpen,
maar voor jouw simulink probleem kun je volgens mij het beste
state space notatie gebruiken, dus gewoon de parameters A,B,C en D

groeten en succes en veel plezier daaro,

Jeroen
User avatar
Arjan
lid
Posts: 582
Joined: Sun 04 Apr, 2004, 23:10
Location: Eindhoven
Contact:

Post by Arjan »

Inderdaad....

Als je weet wat de relaties zijn voor je MIMO model, dan kan je die het beste met het handje uitrekenen... Je bent toch een beta-bikkel, of niet?
Als het systeem echt groot begint te worden, vanaf 25 bij 25 ofzo (meer krijg ik namelijk niet op een A4-tje)), dan mag je van mij ook wel de Symbolic Toolbox van Matlab gebruiken.

En zorg er inderdaad wel voor dat je (zoals Frits terecht zei), de A, B ,C en D notatie gebruikt. Das handig!

succes ermee...

Firts, wanneer drinken we die tequila op!?
User avatar
Arjan
lid
Posts: 582
Joined: Sun 04 Apr, 2004, 23:10
Location: Eindhoven
Contact:

Post by Arjan »

Zoals ik al mailde:simulink werkt niet met symbolische tekens (tenminste, niet bij mijn weten).
Als je parametrisch wilt werken: f*ck simulink en gebruik gewoon m-script.

Ik heb vroeger, toen ik nog op de TU zat, ooit nog eens zoiets met een massa veertje gedaan op een laptop regel-examen. Hieronder de code van dat examen....

Code: Select all

close all
clear all
clc
% Het systeem is simpel:
%    twee massa's (parallel) verbonden met een veer en een demper.
%    beide massa's hebben wrijving met de grond
%    de eerste massa wordt aangedreven middels een kracht.
% Het probleem van dit voorbeeld zou een positioneringsprobleem kunnen
% zijn, waarbij:
%    de tweede massa moet gepositioneerd worden
%    de acceleratie van de eerste/tweede massa binnen bepaalde grenzen moet
%    blijven, maar bijv. ook de veer+demper kracht
%    (en deze moeten dus als output moeten worden opgenomen)
%
% Tekenafspraak: indrukken van de veer/damper levert een POSITIEVE kracht

% definieer eerst alle te gebruiken symbolen
syms ddz1 dz1 z1 ddz2 dz2 z2      % alle coordinaten (+afgeleiden)
syms u1                           % alle inputs
syms m1 m2 k d d1 d2              % alle paramters

% definieer tussenvergelijkingen (alle krachten)
F_veer   =  (z1 -z2 ) * k;
F_damper =  (dz1-dz2) * d;
F1_wrijf =   dz1      * d1;
F2_wrijf =   dz2      * d2;

% stel de bewegingsvergelijkingen op
ddz1 = (u1 - F_veer - F_damper - F1_wrijf)/m1;
ddz2 = (     F_veer + F_damper - F2_wrijf)/m2;

% definieer een toestand en input/output vector voor state space
x = [dz1 ; z1 ; dz2 ; z2];
u = [u1];

% stel nu f(x,u) samen
fx = [ddz1 ; dz1 ; ddz2    ; dz2     ];     % volgens: x' = f(x,u)
hx = [  z1 ;  z2 ; m1*ddz1 ; m2*ddz2 ; F_veer+F_damper];                           % volgens: y  = h(x,u)

% dan nu de A,B,C,D matrix berekenen
A = jacobian(fx,x);
B = jacobian(fx,u);
C = jacobian(hx,x);
D = jacobian(hx,u);

% definieer de waarden voor de parameters!
k  = 10;
d  =  1;
d1 =  5;
d2 = 10;
m1 = 10;
m2 =  5;

% vul deze waarden in. en converteer deze van symbolic > double
A = double(eval(A));
B = double(eval(B));
C = double(eval(C));
D = double(eval(D));

% maak er een state-space van
sys = minreal(ss(A,B,C,D));

% en plot de afzonderlijke bode-diagrammen (input,output)=(1,2) betekent:
%    laat de positie van massa 2 zien onder invloed van input 1, de kracht
input_output  = [
    1 1 ;   % welke input wil je zien?  [ 1 .. length(u)  ]
    1 2 ;   % welke output wil je zien? [ 1 .. length(hx) ]
];
for i=1:length(input_output)
    bode(sys(input_output(2,i),input_output(1,i))); hold on;
end

% we kunnen nu een stap op de ingang zetten van 50 N (tussen .1 en 2 s.):
dt = 1e-3;
t  = [0:5000]*dt;
ut = zeros(size(t)); ut( find( (.1<t) & (t<2) ) )=50;
yt = lsim(sys,ut,t);

figure
subplot(311); plot(t,[yt(:,1) yt(:,2) ut(:)./10]); legend('z_1','z_2','0.1*F(t)',4);
subplot(312); plot(t,yt(:,2)-yt(:,1));             legend('z_2-z_1',0);
subplot(325); plot(t,[yt(:,3) yt(:,4)]);           legend('z"_1','z"_2',0);
subplot(326); plot(t,[yt(:,5)]);                   legend('F_{veer}+F_{demper}',0);
User avatar
Frits
lid
Posts: 70
Joined: Sun 04 Apr, 2004, 15:37

Post by Frits »

He Arjan,

Volgens mij kun je wel parametrisch werken in Simulink...

groeten,

Jeroen

ps. Ben ook wel in voor tequila
User avatar
Arjan
lid
Posts: 582
Joined: Sun 04 Apr, 2004, 23:10
Location: Eindhoven
Contact:

Post by Arjan »

He Frits,

Zei ik "parametrisch" ?? Oja,.... ik bedoelde eigenlijk symbolisch.
Tuurlijk kan je in Simulink in een gain-blokje in plaats van een numerieke waarde ook wel een symbool/parameter zetten (bijvoorbeeld: "k"), maar dan moet je die k natuurlijk wel in een m-script, of via een masker in simulink eerst definieren.

De vraag was:
M.a.w. de transfer function uitgedrukt in de symbolische parameters die gebruikt worden in het Simulink model.
Dus wil hij uiteindelijk iets symbolisch, lineairs in de vorm van bijvoorbeeld:
H(s) = [a.s^2 + b.s + c] / [d.s^2 + e.s + f]
En dat kan niet met Simulink, tenzij jij mij (en dus ook Koen) hiervan echt kan overtuigen! Dat is namelijk precies zijn vraag....
User avatar
Arjan
lid
Posts: 582
Joined: Sun 04 Apr, 2004, 23:10
Location: Eindhoven
Contact:

Post by Arjan »

Koen, is het nog gelukt?!
Post Reply