Προς το περιεχόμενο

Αυτοματοποιηση σε MATLAB


theo2008

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπερα και χρονια πολλα σε ολους.Θα ηθελα να κανω μια πολυ γενικη ερωτηση σχετικα με αυτοματοποιηση πανω σε μια εργασια που εχω να κανω.

Εχω μια πειραματικη γραφικη παρασταση.με την χρηση καποιας εξισωσης που μου δινετε βγαζω και μια θεωρητικη γραφικη.Αυτην η θεωρ.παρασταση ειναι πανω κατω η ιδια με την πειραματικη.Σκοπος μου ειναι να βελτιστοποιησω αυτην την θεωρητικη ωστε οσο γινεται στο τελος να μοιαζει με την πειραματικη.Βασικα αυτη η συναρτηση εχει 3 παραμετρους Ν,Ζ,Κ τις οποιες κα8ε φορα που τις αλλαζω τιμες αλλαζει και η μορφη της γραφικης με αποτελεσμα να πλησιαζει στα προτυπα της πειραματικης.Αυτο το κανω χειροκινιτα μετα απο πολλες αλλαγες στις παραμετρους μου βγαινει πανω κατω το αποτελεσμα που θελω.

Αυτο που θελω να ρωτισω ειναι το εξης:

Υπαρχει καποιο toolbox γενικα στο matlab που βαζοντας τιμη σε μια παραμετρο π.χ.στην Ν αυτοματα να μου αλλαζει και τις αλλες τιμες που χρειαζονται,χωρις να γινεται χειροκινιτα δηλαδη για καθε παραμετρο?

Η ολο αυτο 8α πρεπει να γινει καθαρα γραφοντας δικο μου κωδικα?

Στην ουσια κανω fitting σε μια εξισωση.Επισης γνωριζει καποιος αν το curve fitting του matlab μπορει να κανει αυτην την δουλεια? Ευχαριστω πολυ.

 

Υ.Γ.Επειδη ειναι πολυ γενικη η ερωτηση μπορω να δωσω και αλλες διευκρινισεις.

Δημοσ.

αν οι τιμές των παραμέτρων που δίνεις κάθε φορά είναι συγκεκριμένες, κάνεις έναν πίνακα για κάθε τιμή και χρησιμοποιείς το for loop. είναι πολύ εύκολο.

 

για παράδειγμα θέτεις Ζ=[2 : 2: 100] που σημαίνει ότι έχεις τιμές από το δύο μέχρι το 100 με βήμα το 2. Ή κάνεις έναν πίνακα με τις τιμές ακριβώς που έχεις (έστω [2; 4; 67; 100]; )

 

Κατόπιν το for loop δουλεύει καπως έτσι:

 

for ii = 2:2:100;

Ζ(jj) = ii*κάποιον συντελεστή που μπορεί να μεταβάλει την παράμετρο ή την υπόλοιπη εξίσωση με τις άλλες παραμέτρους, που όμως πριν θα έχεις ορίσει (ορίζεις και το jj=1) ;

συνάρτηση = Ζ(jj) + K(kk) * 4 και συνεχίζεις

jj = jj+1;

end

 

Αυτό στην ουσία παίρνει μια τιμή κάθε φορά και την περνάει στην συνάρτηση, όπως όταν την ορίζεις εσύ.

 

τραβάς και ένα plot την συνάρτηση που έχεις ορίσει και είσαι ΟΚ

αν οι τιμές δεν είναι συγκεκριμένες αλλά προκύπτουν από κάπου τότε θα τις θέσεις ώστε να παίρνουν τις τιμές τους από την συνάρτηση που τις παράγει με τον ίδιο τρόπο αλλά πριν από το τελικό for loop.

 

είναι πολύ εύκολο, θέλει λίγο ψάξιμο. Δοκίμασε την βοήθεια του προγράμματος

γράψε

help for

και πιστεύω θα το βρεις

 

αν θες στείλε το email σου σε private msg και θα σου στείλω κάποιες πρόχειρες σημειώσεις

Δημοσ.

φιλε vaio σευχαριστω..αλλα δεν ειναι τοσο απλα τα πραγματα..μαλλον θα χρειαστει διευκρινισεις.Δεν ειναι απλα μια for πιστευω.Με αυτες τις 3 παραμετρους Ν,Ζ,Κ κανω fitting(δοκιμες) ωστε να πετυχω το βελτιστο αποτελεσμα στην θεωρητικη παρασταση.Εχω συγκεκριμενα ορια που πρεπει να κινηθω για τα Ν,Ζ,Κ.Αλλαζω σιγα σιγα τιμη στα Ν,Ζ,Κ και σιγα σιγα πλησιαζει η θεωρητικη την πειραματικη μεχρι να πραγματοποιη8ει το βελτιστο.Εγω θελω με καποιον τροπο αυτο να γινεται αυτοματα.Ας πουμε αν δωσω καποια τιμη στο Ν το προγραμμα αυτοματα να μου βγαζει τα Ζ,Κ που κανουν την θεωρητικη να μοιαζει σχεδον ακριβως με την πειραματικη.

Αν σου φαινεται δυσνοητο αυτο που γραφω δεν εχω προβλημα να προσπα8ησω να το κανω πιο ευκολοαναγνωστο..

εμενα αυτο που ρωταω μου φαινεται αρκετα δυσκολο παντως.

Δημοσ.

2 ερωτησούλες:

 

1. Τα Ζ και Κ είναι συνάρτηση του Ν;

 

2. Πως ελέγχεις ότι έφτασες στο βέλτιστο;

 

Γενικά, ο τρόπος λύσης του προβλήματος που περιγράφεις είναι με αντιστροφή του προβλήματος, δηλαδή θες να έχεις μία ποσότητα, πχ RMS ή R^2, που πρέπει να ξεπερνά ένα όριο που εσύ έχεις ορίσει ως επιθυμητό αποτέλεσμα.

Επομένως, αυτό που υλοποιείς είναι η πρόταση του vaio.u :+) και την επεκτείνεις, υπολογίζοντας για παράδειγμα και το Least square fit ή οποιοδήποτε άλλο μέτρο χρειάζεται να ορίσεις από το πρόβλημα σου.

Αυτήν την τιμή που προκύπτει τη συγκρίνεις με το όριο που έχεις ορίσει εσύ, αν ικανοποιείται το πρόγραμμα βγαίνει από τον κόμβο, αλλιώς συνεχίζει μέχρι να τη βρει.

 

Έτσι όπως έχεις διατυπώσει το πρόβλημα και ζητάς τη λύση, δε νομίζω ότι μπορούμε να σε βοηθήσουμε παραπάνω. Αν κατά τη διάρκεια του προγράμματος έχεις απορίες, postαρε τον κώδικα να σε βοηθήσουμε.

Δημοσ.

για να σας δωσω λιγο να καταλαβετε,σας στελνω τη γραφικη που θελω να βελτιστοποιησω.Εγω αυτο που θελω να κανω ειναι να μεταβαλω τις παραμετους με καποια διακριτα βηματα ετσι ωστε το τελικο αποτελεσμα(θεωρητικη γραφικη) να ειναι οσο το δυνατον πιο κοντα στα πειραματικα(πειραματικη γραφικη)..Δηλαδη με καποιον τροπο να βελτιστοποιησω την διαφορα των αποτελεσματων του προγραμματος με τα πειραματικα...

Δειτε λιγο την γραφικη μου οσοι μπορειτε και μετα μπορω να ποσταρω τον κωδικα μου και τις παραμετρους ωστε να κανουμε μια συζητηση για το πως μπορει να επιλυθει αυτο...Απλα δεν μπορω να βρω συγκεκριμενο τροπο για να το κανω..:rolleyes:

grafikh.zip

Δημοσ.

To πρόβλημα φαίνεται απλό, αν ακολουθήσεις το for του vaio.s θα παράγεις όσα γραφήματα θες για σύγκριση.

 

Αν θες να βρεις αυτόματα τη βέλτιστη τιμή, απλά πρέπει να διαλέξεις ένα μέτρο, όπως αυτά που περιέγραψα στο προηγούμενο μήνυμα μου και επομένως θα έχεις ένα κριτήριο που θα σου βγάζει το better fitted.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...