Gui+Simulink

di il
82 risposte

82 Risposte - Pagina 2

  • Re: Gui+Simulink

    Bene, poi fammi sapere se funziona!
  • Re: Gui+Simulink

    Ah, ho dimenticato di darti il riferimento, magari puoi trovare un po' di ispirazione...
    http://www.mathworks.it/support/tech-notes/1900/1903.html
  • Re: Gui+Simulink

    Niente...mi sa che non ho proprio capito

    per il momento facciamo finta che il menù a tendina nella gui non ci sia

    per il moemento la mia gui passa alla simulazione della variabili:
    ad esempio nella simulazione ho messo un blocco che simula il carico (load) e a questo blocco passo dalla gui la variabile numerica load

    come faccio in modo che la gui passi alla simulazione anche il tipo di motore?

    set_param('controllo_motore', 'Asynchronous Machine SI Units', 'PresetModel', '6');
    non funziona
  • Re: Gui+Simulink

    Che vuol dire "non funziona"? dà errore? quale errore?
    Poi, mi hai chiesto se come presetmodel devi mettere un numero e ti ho detto di no...
    Devi mettere una stringa
    Scrivi il get_param e poi al posto del 6 scrivi p.PresetModel.Enum(6)
  • Re: Gui+Simulink

    Ho provato sia a mettere il 6 che il valore della stringa

    ora ho scritto così:
    p = get_param('controllo_motore','Asynchronous Machine SI Units', 'DialogParameters')
    set_param('controllo_motore', 'Asynchronous Machine SI Units','PresetModel', p.PresetModel.Enum(6));
    e mi da questo errore
    Error in ==> simulink_gui>simulate_pushbutton_Callback at 237
    p = get_param('controllo_motore','Asynchronous Machine SI Units', 'DialogParameters')
  • Re: Gui+Simulink

    Se lo scrivi a riga di comando (non nella gui) funziona? Che errore dà?
  • Re: Gui+Simulink

    In matlab non funziona
    ho fatto un file di prova
    >> p = get_param('prova_gui/machine', 'DialogParameters')

    p =

    PresetModel: [1x1 struct]
    MechanicalLoad: [1x1 struct]
    ShowDetailedParameters: [1x1 struct]
    RotorType: [1x1 struct]
    ReferenceFrame: [1x1 struct]
    NominalParameters: [1x1 struct]
    Stator: [1x1 struct]
    Rotor: [1x1 struct]
    Lm: [1x1 struct]
    Mechanical: [1x1 struct]
    PolePairs: [1x1 struct]
    InitialConditions: [1x1 struct]
    Units: [1x1 struct]
    LoadFlowParameters: [1x1 struct]
    SimulateSaturation: [1x1 struct]
    Saturation: [1x1 struct]
    TsPowergui: [1x1 struct]
    TsBlock: [1x1 struct]
    IterativeModel: [1x1 struct]

    >> set_param('prova_gui/machine','PresetModel',p.PresetModel.Enum(6))
    ??? Invalid setting in Asynchronous Machine block (mask) 'machine' for parameter
    'PresetModel'.
  • Re: Gui+Simulink

    Ecco come funziona
    set_param('prova_gui/machine','PresetModel','06: 150 HP 460 V 60Hz 1785 RPM ')
    :DD

    oppure anche così
    set_param('prova_gui/machine','PresetModel','6')
    ma mi da un warnig dove mi dice che in questa versione fuinziona ma che con altre versioni di matlab potrebbe non funzionare
  • Re: Gui+Simulink

    Bene! Tieniti lontano dalle altre versioni di matlab e funzionerà a meraviglia...
  • Re: Gui+Simulink

    Grazie mille!...mi hai salvato
    cmq prima mi dava problemi perchè set_param va messo dopo il comando sim...quindi dopo aver avviato la simulazione

    cmq
    avrei un'altra domanda....
    con
    >> p = get_param('prova_gui/machine', 'DialogParameters')
    compare questo
    p =

    PresetModel: [1x1 struct]
    MechanicalLoad: [1x1 struct]
    ShowDetailedParameters: [1x1 struct]
    RotorType: [1x1 struct]
    ReferenceFrame: [1x1 struct]
    NominalParameters: [1x1 struct]
    Stator: [1x1 struct]
    Rotor: [1x1 struct]
    Lm: [1x1 struct]
    Mechanical: [1x1 struct]
    PolePairs: [1x1 struct]
    InitialConditions: [1x1 struct]
    Units: [1x1 struct]
    LoadFlowParameters: [1x1 struct]
    SimulateSaturation: [1x1 struct]
    Saturation: [1x1 struct]
    TsPowergui: [1x1 struct]
    TsBlock: [1x1 struct]
    IterativeModel: [1x1 struct]
    poi con
    p.Stator
    compare questo
    ans =

    Prompt: 'Stator resistance and inductance[ Rs(ohm) Lls(H) ]:'
    Type: 'string'
    Enum: {}
    Attributes: {'read-write' 'read-only-if-compiled'}
    c'è un modo per assegnare ad una variabile il valore di Rs(ohm)?
  • Re: Gui+Simulink

    Devi fare nello stesso modo di prima, il campo Enum è quello che contiene i valori, quindi
    p.Stator.Enum=

    Credo si aspetti un vettore così come lo inseriresti nella finestra dei parametri del blocco.
    Essendo un vettore, forse se aggiungi p.Stator.Enum(1), va a scrivere il primo elemento del vettore.
  • Re: Gui+Simulink

    Avevo provato
    >> p.Stator.Enum(1)
    da
    ??? Index exceeds matrix dimensions.
  • Re: Gui+Simulink

    Perché è vuoto...
    Prova prima ad assegnargli un valore
    p.Stator.Enum(1)=10
    e vai a controllare nel blocco dovrebbe averti cambiato il valore del primo elemento del vettore.
  • Re: Gui+Simulink

    Uhmmmm....ogni tipo di motore ha una sua resistenza Rs
    io devo leggerla non cambiarla...
    cmq questo non è importante posso aggirare il problema

    questo codice per il pop menù invece è giusto?
    % --- Executes on selection change in popupmenu3.
    function popupmenu3_Callback(hObject, eventdata, handles)
    % hObject    handle to popupmenu3 (see GCBO)
    % eventdata  reserved - to be defined in a future version of MATLAB
    % handles    structure with handles and user data (see GUIDATA)
    
    % Hints: contents = cellstr(get(hObject,'String')) returns popupmenu3 contents as cell array
    %        contents{get(hObject,'Value')} returns selected item from popupmenu3
    
    
    [color=#000000]i = contents{get(hObject,'Value')};
    guidata(hObject, handles);
    cioè in questo modo se nel pop menù scelgo ad esempio la terza voce questo comando ad i assegna valore 3...giusto?
  • Re: Gui+Simulink

    Non ho mai fatto GUI quindi per questo non so aiutarti...
    Ma l'altro problema in qualche modo si può risolvere... ci penso un attimo.
Devi accedere o registrarti per scrivere nel forum
82 risposte