Springen naar inhoud

Matlab, vraag ivm een commando


  • Log in om te kunnen reageren

#1

*_gast_Antares_*

  • Gast

Geplaatst op 13 januari 2011 - 23:09

Hallo,

ik ben een beginneling met matlab, maar moeten ineens een PID-regelaar maken erin.
Nu dit lukt allemaal goed en wel, behalve als ik iets plot,
komt het wel redelijk goed eruit, maar het probleem is dat ik een M=1.3-cirkel moet tekenen er ook bij
(neem maar een gewone RONDE ;) cirkel).
Nu als ik dit plot, is mijn plot niet (hoe moet ik het zeggen)... is de cirkel niet rond..

ligt het hieraan? :
axis([-5,5,-5,5]);



(volgens mij niet, omdat dit wel nl een vierkant is... maar toch...

bestaat er anders een commando voor, zodanig dat men cirkel wel rond is?

mvg, ALain

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

robertus58a

    robertus58a


  • >100 berichten
  • 171 berichten
  • Ervaren gebruiker

Geplaatst op 13 januari 2011 - 23:29

Kan wel te maken hebben met schermresolutie. Probeer eens "copy figure" and paste de figuur in powerpoint. Is de cirkel dan nog vervormd?

#3

robertus58a

    robertus58a


  • >100 berichten
  • 171 berichten
  • Ervaren gebruiker

Geplaatst op 13 januari 2011 - 23:44

Probeer dit eens (vanaf de command line) na het plotten van de figuur: figure(1);set(gcf,'position',[1 1 1000 1000])

#4

*_gast_Antares_*

  • Gast

Geplaatst op 14 januari 2011 - 00:10

1) met copy figure is dit nog steeds.

2)cirkel is nog steeds vervormt, maar ik vergroot dit meestal tot maximum (zo manueel).

zelfs al zet ik mijn assen van -5 tot +5 is dit.


probeer dit eens: dit is de commando voor die cirkel, misschien ligt het wel aan de formule (wat ik betwijfel, want het komt van een leraar)


axis([-5,5,-5,5]);
xlabel('ReŽle as');
ylabel('Imaginaire as');
%M=1.3 cirkel
hoek=linspace(0,2*pi);
x=1.884057971*cos(hoek)-2.449275362;
y=1.884057971*sin(hoek);
plot(x,y,'b');
grid on;
zoom on;


en misschien ook aan het feit dat ik matlab 4 gebruik ;) (heel HEEL oude versie)
maar op school ging dit hiermee wel perfect

#5

robertus58a

    robertus58a


  • >100 berichten
  • 171 berichten
  • Ervaren gebruiker

Geplaatst op 14 januari 2011 - 00:51

Ik heb de m-file geprobeerd en kreeg inderdaad een 'ei'.

Met figure(1);set(gcf,'position',[1 1 1000 1000]) werd dit een cirkel. Ik gebruik ook een oude versie (v5.3.0). Ben er niet zeker van dat voornoemd commando onder matlab 4 werkt. Wellicht zijn er andere gebruikers die je kunnen helpen. Succes

#6

EvilBro

    EvilBro


  • >5k berichten
  • 6703 berichten
  • VIP

Geplaatst op 14 januari 2011 - 09:13

axis square?

#7

*_gast_Antares_*

  • Gast

Geplaatst op 14 januari 2011 - 10:38

Okay,

axis square werkt dus :-)

dus deze ga ik gebruiken, bedankt ;)

(@ robertus, toch bedankt hor ;-) en volgens mij doet die commando gewoon de groote van uw figure scherm..)

#8

*_gast_Antares_*

  • Gast

Geplaatst op 14 januari 2011 - 17:11

en nu krijg ik steeds de fout dat het memory vol zit...
afsluiten werkt niet,
net zoals clear..
help me? :<

#9

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 14 januari 2011 - 17:42

en nu krijg ik steeds de fout dat het memory vol zit...
afsluiten werkt niet,

Bij het uitvoeren van welke commando's?
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#10

*_gast_Antares_*

  • Gast

Geplaatst op 14 januari 2011 - 18:52

een hele reeks... maar dat maakt eerst een matrix van 10.000; voor dat hij begint te plotten

#11

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 14 januari 2011 - 19:43

een hele reeks... maar dat maakt eerst een matrix van 10.000; voor dat hij begint te plotten

10 000 elementen is geen probleem. 10000x10000 wel.

En als memory vol zit, dan is waarschijnlijk iets mis met je algoritme, of moet je misschien meer geheugengebruik toelaten.
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#12

*_gast_Antares_*

  • Gast

Geplaatst op 14 januari 2011 - 21:52

Het rare eraan is dat nu nadat ik men pc heb heropgestart, dat weer weg is (goed, maarja)

#13

*_gast_Antares_*

  • Gast

Geplaatst op 14 januari 2011 - 23:04

Nog eens een vraagje,
Bij een storingcompensatieschakeling, moet ik een iets opgeven:
(simulink)

Gv= -1/G1

als G1 = 1/(1+1.5s)

Maar als ik een fransfer-functieblokje pak, neemt die dat niet aan!!
hij zegt steeds dat de teller kleiner moet zijn dan de noemer, hoe los ik dit op

maw een blokje waarin ik '-(1+1.5s)' of '-1 - 1.5s' in kan steken..

#14

317070

    317070


  • >5k berichten
  • 5567 berichten
  • Moderator

Geplaatst op 14 januari 2011 - 23:08

Bij een storingcompensatieschakeling, moet ik een iets opgeven:
(simulink)

als G1 = 1/(1+1.5s)

Positieve feedback als storingscompensatie? ;)
Ik denk dat je G1 = 1/(1-1.5s) bedoelt.
What it all comes down to, is that I haven't got it all figured out just yet
And I've got one hand in my pocket and the other one is giving the peace sign
-Alanis Morisette-

#15

*_gast_Antares_*

  • Gast

Geplaatst op 14 januari 2011 - 23:25

Neen, mijn transfertfunctie is

2*e^(-3s)/[(1+1.5s)*(1+2.5s)*..] --> dit klopt sowieso, al nagekeken

En het nut van die G1, is dat dit 1 stukje van deze functie is... (bvb 1/(1+1.5s))
dus moet ik nu een blokje vinden in simulink die -1-1.5s kan lezen... bestaat dit?
(of het nu wel -1+1.5s moet zijn, speelt even geen rol)

mvg





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures