Gui+Simulink

di il
82 risposte

Gui+Simulink

Salve,
per una tesina all'uni ho fatto una gui
questa gui passa dei valori ad una simulazione simulink, la fa partire, poi simulink passa alla gui i risultati che vengono mostrati in due grafici nella gui

Ora però il prof mi ha chiesto di aggiungere una cosa che io non ho idea di come fare
In pratica tramite gui dovrei scegliere il tipo di motore nel modello simulink (nel modello si fa tramite un menù a tendina)


qualcuno sa come si possa fare, o ha qualche idea?

grazie

82 Risposte

  • Re: Gui+Simulink

    Puoi spiegare meglio dove scegli adesso il motore? è un blocco di simulink?
  • Re: Gui+Simulink

    Il motore è dentro il modello simulink ed è un blocco...se clicchi sul blocco ti compare un menù a tendina, quello dell'immagine, e tu li scegli il tipo di motore...i motiri come si può vedere hanno diversa potenza, tensione di alimentazione e numero di giri

    ora il prof vorrebbe scegliere il tipo di motore tramite gui
  • Re: Gui+Simulink

    Si può sapere che blocco è? o un blocco simile?
  • Re: Gui+Simulink

    Il blocco di un motore asincrono
  • Re: Gui+Simulink

    Set_param?
  • Re: Gui+Simulink

    Ci avevo pensato...ma non ho idea di che sintassi utilizzare
  • Re: Gui+Simulink

    Prova prima fuori dalla GUI. Qualcosa del tipo:
    set_param('nome_del_modello_simulink/Asynchronous Machine', 'PresetModel', 'una_delle_stringhe_possibili')
  • Re: Gui+Simulink

    X fuori dalla gui intendi in matlab?
  • Re: Gui+Simulink

    Sì, tra l'altro puoi anche farti dire direttamente da matlab quali sono le possibili scelte del menu a discesa con get_param
    p = get_param('nome_del_modello_simulink/Asynchronous Machine', 'DialogParameters')
    ti crea una struttura
    se fai
    p.PresetModel.Enum
    dovrebbe darti le possibili scelte.
  • Re: Gui+Simulink

    Mi da come risultato questo:

    >> p.PresetModel.Enum

    ans =

    Columns 1 through 6

    'No' [1x42 char] [1x41 char] [1x41 char] [1x41 char] [1x40 char]

    Columns 7 through 11

    [1x40 char] [1x40 char] [1x42 char] [1x41 char] [1x41 char]

    Columns 12 through 16

    [1x41 char] [1x40 char] [1x40 char] [1x40 char] [1x42 char]

    Columns 17 through 21

    [1x40 char] [1x41 char] [1x41 char] [1x40 char] [1x39 char]

    Column 22

    [1x39 char]
  • Re: Gui+Simulink

    Queste dovrebbero essere tutte le possibilità
    Se le vuoi guardare devi aggiungere l'indice:
    p.PresetModel.Enum(3) dovrebbe darti la terza stringa del menu a discesa
  • Re: Gui+Simulink

    Quindi per scegliere la macchina basta usare questa riga
    set_param('nome_del_modello_simulink/Asynchronous Machine', 'PresetModel', 'una_delle_stringhe_possibili')

    dove al posto di 'una_delle_stringhe_possibili' devo mettere un numero?
  • Re: Gui+Simulink

    No, devi mettere p.PresetModel.Enum(3), questo se lo fai da riga di comando.
    ovviamente prima devi usare il get_param
    Immagino che nella GUI metterai un menu a discesa, dove come stringhe possibili ci sarà un
    for i=1: numero_di_stringhe_possibili
       valore_nel_menu_a_discesa= p.PresetModel.Enum(i);
    end
    (ovviamente è un esempio del concetto, poi devi usare il codice giusto per metterlo nel menu a discesa)
    Il valore restituito dalla scelta del menu a discesa lo andrai ad utilizzare nel set_param.
    Quello che devi mettere nel set_param dipende da cosa ti restituisce la GUI. Se ti restituisce l'indice ci metti p.PresetModel.Enum(indice_restituito), se ti restituisce direttamente la stringa ci metti la stringa.
  • Re: Gui+Simulink

    Ok...grazie mille
    spero di riuscire a provare tutto oggi
Devi accedere o registrarti per scrivere nel forum
82 risposte