Bilaga 4, Skapa grafiskt användargränssnitt med guide



Relevanta dokument
Datorövning 2 Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

Modeller och teknik Grundl program och gränssnitt. Matlab-tips

Grafiska användargränssnitt i Java

Grafiska användargränssnitt i Java

Medicinska Bilder, TSBB31. Lab: Mätvärden på Medicinska Bilder

Introduktion till Matlab

En introduktion till MatLab

Användargränssnitt för proaktiv störningshantering för utilities

Laboration: Grunderna i MATLAB

TSKS08 Introduktionskurs i Matlab Föreläsning 2

Medicinska Bilder, TSBB31. Lab3: Mätvärden på Medicinska Bilder

Macromedia. Flash 8 Grundkurs.

När man vill definiera en matris i MATLAB kan man skriva på flera olika sätt.

TDDD78, TDDE30, 729A Grafik: Att "rita" egna komponenter

Introduktion till Matlab

ATT RITA GRAFER MED KOMMANDOT "PLOT"

NYHETER I AUTOCAD 2009

Mayas UI. Grundläggande UI. Dag Stensson 2009

Elisabeth Bejefalk IT-Assistent Avesta kommun

Kapitel 7 Skorsten, trappa och inredning... 3

Datorövning Matlab/Simulink. Styr- och Reglerteknik för U3/EI2

JavaScript. JavaScript Ramverk (Bibliotek) jquery + jquery UI

Lathund till PowerPoint 2002 (XP)

Kom igång. Readyonet Lathund för enkelt admin. Logga in Skriv in adressen till din webbsida följt av /login. Exempel:

Gå till nästa bygge. Ibland vill man hoppa till nästa bild i presentationen utan att behöva gå igenom alla byggen på diabilden igen.

Manual Demoväska RFID. Manual Demoväska. Sara Svensson/Monika Lindgren/Fredrik Karlsson Version BnearIT AB 1(17)

Sophia Prosell DREAM WEAVER SKAPA OCH PUBLICERA EFFEKTIVA WEBBSIDOR

1. FORMULÄR. A. Skapa formulär

Sida Kapitel 3 Fönster och dörr... 3

Datorövning 1 Fördelningar

En förladdare fångar användarens uppmärksamhet under tiden huvudfilmen laddas. Använd din kreativitet när du formger en förladdare och använd sedan

Grafiska användargränssnitt i Java

de uppgifter i) Under m-filerna iv) Efter samlade i en mapp. Uppgift clear clc Sida 1 av 6

WWAAC Layout Editor. 1. Standard för knapp (kolla att fliken Standard för knapp är vald)

BICT:01 BICT. sv-se. Användarinstruktion Gäller från BICT Utgåva 5. Scania CV AB 2015, Sweden

Funktioner och grafritning i Matlab

Diagram. I detta kapitel lär du dig: m Diagrammets beståndsdelar. m Att skapa både inbäddat diagram och diagramblad. m Att ändra diagramform.

TAIU07 Matematiska beräkningar med Matlab

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 5. Laboration 4 Lådplanering Exempel på grafik, ett avancerat program Frågor

NYHETER I AUTOCAD MECHANICAL 2009

Photoscape (

Simulering med ModelSim En kort introduktion

Tekniska Högskolan i Linköping Institutionen för Datavetenskap (IDA) Torbjörn Jonsson Plot och rekursion

Introduktion till Matlab

Optisk bänk En Virtuell Applet Laboration

Migrera till PowerPoint 2010

Scribus fortsättning

Laboration i Automationsteknik FK: Del 1: Polplacering. Del 2: Markovkedjor

Datorövning 1: Fördelningar

Kort om programmering i Matlab

Sida Kapitel 5 Stolpe, balk och balkongräcke... 3

Uppgift 1. (SUBPLOT) (Läs gärna help, subplot innan du börjar med uppgiften.) 1 A) Testa och förklara hur nedanstående kommandon fungerar.

MMA132: Laboration 2 Matriser i MATLAB

Blockly är en av apparna som används för att styra roboten Dash. Den är väldigt enkel i sin utformning och kan med fördel användas av yngre barn.

Hjälp och tips till RSLogix och InTouch

Tips och tricks 1 Cadcorp SIS

Institutionen för matematik och datavetenskap Karlstads universitet. GeoGebra. ett digitalt verktyg för framtidens matematikundervisning

Inställningar i vån.1 av projektet för grund

1. Uppdateringsmodul (CMS)

Autodesk 3ds Max Design Som nämnts tidigare kan du ändra storlek i tre olika steg genom att klicka på den lilla svarta pilen.

Kortkommandon Allmänna i Windows 7

Föreläsning 5: Grafiska användargränssnitt

Hur man skapar samt tar bort relationer mellan fastighetstyngdpunkten och fastighetsytan.

Kapitel 5 Stolpe, balk och balkongräcke... 3

Simulering med ModelSim En kort introduktion

Introduktion till Matlab Föreläsning 2

INNEHÅLL ALLMÄNT... 2

TNM011 Grafisk teknik Laboration 3 - Färg

Manual ForwarderVolume Version: 1.4 sv

Modellering och styrning av ett biologiskt reningsverk

BridgeView. Klasser i BridgeView. Klassen Grafiska Gränssnittet. Klassen TSPELET

Laboration 2: 1 Syfte. 2 Väntevärde och varians hos en s.v. X med fördelningen F X (x) MATEMATISK STATISTIK, AK FÖR BYGG, FMS 601, HT-08

Miniprojekt 1 - Gasers volym Revision 1

REGLERTEKNIK Inledande laboration (obligatorisk)

Grundritning Platta på mark

MATLAB övningar, del1 Inledande Matematik

CTH/GU LABORATION 1 MVE /2013 Matematiska vetenskaper. Mer om grafritning

Interaktiva applikationer för dator (WPF) och web (Silverlight) Grafisk utvecklingsmiljö. Hela produktioner: design, layout, animationer, skins, etc.

Ikoner. Mike McBride Jost Schenck Anne-Marie Mahfouf Översättare: Stefan Asserhäll

Vetenskapsdagen 2016 SciLab för laborativa inslag i matematik eller fysik

Microsoft PowerPoint

Snabbguide. ITP Whiteboard har 3 nivåer bas, medel och avancerad. Detta gör att det är enkelt att börja jobba med ITP Whiteboard.

Liten MATLAB introduktion

Komponentvisa operationer,.-notation Multiplikation (*), division (/) och upphöj till (ˆ) av vektorer följer vanliga vektoralgebraiska

ALEPH ver. 16 Introduktion

3.0. Tips och Trix Sida 1 av 18

Fönster och dörr. Kapitel 3 - Fönster och dörr... 3

MATLAB. Python. Det finns flera andra program som liknar MATLAB. Sage, Octave, Maple och...

Automatisera uppgifter med Visual Basic-makron

TAIU07 Matematiska beräkningar med Matlab

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

Föreläsning 7, Interak2on

Polygoner. Trianglar på tre sätt

Microsoft Word. Lathund för. Innehåll. Autokorrigering. Autotext. Format

Redovisning av inlämningsuppgifter

FLEXILAGER Ett hjälpmedel för anpassad lagerhantering. Original -version

manual D E M O Systemkrav Pc med Windows 98/ Mhz Pentium 64 Mb RAM Miljontalsfärger (24 bit) Upplösning: 800 x 600 pixels

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa.

Innehållsförteckning. 2 Arbeta med presentationer Planera presentationen Varför? För vem eller vilka?... 18

Transkript:

Bilaga 4 Bil 4:1 Bilaga 4, Skapa grafiskt användargränssnitt med guide Enklast till en början är att vid MATLABS kommandoprompt skriva guide vilket ger dels ett figurfönster och det som kallas Guide Control Panel som enkelt kan liknas vid en verktygslåda där man kan plocka fram de verktyg man behöver. Följande steg bör tas för att skaffa sig ett grafiskt användargränssnitt eller kort och gott ett GUI. Planering av gränssnittet med papper och penna Vad skall hända då användaren gör något och om något blir fel. Hur skall det meddelas och/eller åtgärdas. Ungefärlig placering av pushbutton, edit -rutor StaticText, Slider och så vidare. Snygga till sitt GUI Skapa de filer som behövs för att GUI skall fungera. 4.1 Property editor Detta verktyg är till för att ge de olika objekten i sitt GUI de egenskaper man vill ge det. Dessa egenskaper växlar en del beroe på vilket objekt man arbetar med. De som är gemensamma för de flesta är: BackgroundColor: bakgrundsfärg ForegroundColor: textfärg HandleVisibility: hur skall objektet uppträda Callback: vad skall hända då objektet aktiveras Position: var och hur stort skall objektet vara [x-led y-led längd höjd] Style: vilket objekt är det Tag: Etikett, kan vara bra då många likadana objekt används TooltipString: ger ett tips då pekaren placeras över objektet 4.2 Callback editor Detta verktyg används främst för att ange vad som skall ske då ett objekt används. det kan vara att exekvera ett enskilt kommando eller flera kommandon eller en fil. Man markerar sitt objekt i Objekt browser och skriver in det/de

Bilaga 4 Bil 4:2 kommandon (även m-filer som sagt) som skall utföras då objektet aktiveras. 4.3 Alignment tool Med detta verktyg snyggar man helt enkelt till sitt GUI så att det ser snyggt och propert ut med jämna avstånd mellan pushbutton och edit -rutor och så vidare. 4.4 Menu editor Med detta verktyg kan man skapa och ändra menyer i sitt GUI.

Bilaga 4 Bil 4:3 4.5 Resultat av ett GUI som gjorts I figur 1 redovisas den GUI som skapats för att ge möjlighet att experimentera med LQ-reglering av en inverterad pel. Figur 1. Det grafiska gränssnittet till SimGUI Programkoden redovisas nedan för LQ-regleringen samt den animering som beskriver steget/impulsen som simulerats. Däremot redovisas inte den kod som ligger till grund för det som visas i figur 1 eftersom detta inte tillför något annat än utfyllnad. function simfun(action) %Simulerar och animerar ett steg eller puls för en inverterad pel. %------------------------------------------------------------ % Ingår i examensarbetet: % LQ-reglering av inverterad pel % Micael Karlsson H97Ei %------------------------------------------------------------ if action == 1

Bilaga 4 Bil 4:4 %Simulerar ett steg med aktuella parametrar %Modellen hämtad ur FEEDBACKs dokumentation A = [0 0 1 0;... 0 0 0 1;... 0-93.82 0.08485 1.599;... 0-93.82-0.1818 0]; B = [0; 0; 0; 3.6364]; C = [1 0 0 0;... 0 1 0 0]; D = [0;0]; vagn = findobj('tag','vagn'); x = eval(get(vagn,'string')); pel = findobj('tag','pel'); y = eval(get(pel,'string')); if x <= 0 x=1; XstraffPtr = findobj('tag','vagn'); set(xstraffptr,'string',x); if y <= 0 y = 1; YstraffPtr = findobj('tag','pel'); set(ystraffptr,'string',y) Q =[x 0 0 0;... 0 y 0 0;... 0 0 0 0;... 0 0 0 0]; R = 1; %LQ-reglering %------------ K = lqr(a,b,q,r); Ac = [(A-B*K)]; Bc = [B]; Cc = [C]; Dc = [D]; Nbar = K(1); Bcn = [Nbar*B]; stegptr = findobj('tag','stegslide'); stegval = get(stegptr,'value'); %Läser av värdet av rutan "Störning i börvärdet" brusptr = findobj('tag','brus'); brusig = get(brusptr,'value'); %Är den markerad görs detta. if brusig == 1 brusvalptr = findobj('tag','brusval'); Brus = eval(get(brusvalptr,'string')); T = 0:0.05:5;U = u*ones(size(t))+ Brus*randn(size(T));

Bilaga 4 Bil 4:5 %Om rutan omarkerad görs detta. if brusig == 0 T = 0:0.05:5;U = u*ones(size(t)); [Y2,X2] = lsim(ac,bcn,cc,dc,u,t,[0 0 0 0]); vagn = Y2(:,1); pel = Y2(:,2); subplot(2,2,4) cla %Skapar "objekten" vagn och pel vagn = patch([0.15.15 0],[0.05 0.05.1 1],'r', 'LineStyle','none'); pel = patch([0.01.1 0],[.1.1.6.6],'b', 'LineStyle','none'); %Skapar axlar fär simuleringen axis([-.6.6 0 1]); %Sätter "Grafikbufferten till dubbel storlek för flimmerfri simulering set(gcf,'doublebuffer','on'); %Utgångsläge för vagn och pel set(vagn,'xdata',[0.15.15 0]-0.075+Y2(1,1)) set(pel,'xdata',[0.01.01 0]+Y2(1,1)) subplot(2,2,2);plot(t,y2);leg('vagn','peln') a=.01; b=0; %Ritar ut förflyttningen for i = 1:1:size(Y2,1) set(vagn,'xdata',y2(i,1)+[0.15.15 0]-0.075) set(pel,'xdata',y2(i,1)+[0.01 0.01+(0.5*sin(Y2(i,2))) (0.5*sin(Y2(i,2)))]) %------------------------------------------------------------ elseif action == 2 %Simulerar en puls med bredden 10 sampel A = [0 0 1 0;... 0 0 0 1;... 0-93.82 0.08485 1.599;... 0-93.82-0.1818 0]; B = [0; 0; 0; 3.6364]; C = [1 0 0 0;... 0 1 0 0]; D = [0;0]; vagn = findobj('tag','vagn'); x = eval(get(vagn,'string')); pel = findobj('tag','pel'); y = eval(get(pel,'string'));

Bilaga 4 Bil 4:6 if x <= 0 x=1; XstraffPtr = findobj('tag','vagn'); set(xstraffptr,'string',x); if y <= 0 y = 1; YstraffPtr = findobj('tag','pel'); set(ystraffptr,'string',y) Q =[x 0 0 0;... 0 y 0 0;... 0 0 0 0;... 0 0 0 0]; R = 1; %LQ-reglering %------------ K = lqr(a,b,q,r); Ac = [(A-B*K)]; Bc = [B]; Cc = [C]; Dc = [D]; Nbar = K(1); Bcn = [Nbar*B]; stegptr = findobj('tag','stegslide'); stegval = get(stegptr,'value'); %Läser av värdet av rutan "Störning i börvärdet" brusptr = findobj('tag','brus'); brusig = get(brusptr,'value'); %Är den markerad görs detta. if brusig == 1 brusvalptr = findobj('tag','brusval'); Brus = eval(get(brusvalptr,'string')); T = 0:0.05:5;U = zeros(size(t)); U(1:10) = stegval+ Brus*randn(1,10); %Om rutan omarkerad görs detta. if brusig == 0 T = 0:0.05:5;U = zeros(size(t));u(1:10)=stegval; [Y2,X2] = lsim(ac,bcn,cc,dc,u,t,[0 0 0 0]); vagn = Y2(:,1); pel = Y2(:,2);

Bilaga 4 Bil 4:7 subplot(2,2,4) cla %Skapar "objekten" vagn och pel vagn = patch([0.15.15 0], [0.05 0.05.1.1],'r','LineStyle','none'); pel = patch([0.01.1 0], [.1.1.6.6],'b','LineStyle','none'); %Skapar axlar fär simuleringen axis([-.6.6 0 1]); %Sätter "Grafikbufferten till dubbel storlek för flimmerfri simulering set(gcf,'doublebuffer','on'); %Utgångsläge för vagn och pel set(vagn,'xdata',[0.15.15 0]-0.075+Y2(1,1)) set(pel,'xdata',[0.01.01 0]+Y2(1,1)) subplot(2,2,2); plot(t,y2);leg('vagn','peln') a=.01; b=0; %Ritar ut förflyttningen for i = 1:1:size(Y2,1) set(vagn,'xdata',y2(i,1)+[0.15.15 0]-0.075) set(pel,'xdata',y2(i,1)+[0.01 0.01+(0.5*sin(Y2(i,2))) (0.5*sin(Y2(i,2)))]) elseif action == 3 %Utgångsläge för vagn och pel subplot(2,2,4) cla set(gcf,'doublebuffer','on'); vagn = patch([0.15.15 0],[0.05 0.05.1.1],'r','LineStyle','none'); pel = patch([0.01.1 0],[.1.1.6.6],'b','LineStyle','none'); set(vagn,'xdata',[0.15.15 0]-0.075) set(pel,'xdata',[0.01.01 0]) subplot(2,2,2);cla elseif action == 4 %Tar hand om steg/puls-slider global stegval stegptr = findobj('tag','stegslide'); stegval = get(stegptr,'value'); textptr = findobj('tag','steg_storlek'); set(textptr,'string',num2str(stegval,2));