Control Engineering MathScript Hans-Petter Halvorsen
Dataverktøy MathScript LabVIEW Differensial -likninger Tidsplanet Laplace 2.orden 1.orden Realisering/ Implementering Reguleringsteknikk Serie, Parallel, Feedback Det komplekse plan S-planet K = Forsterkning T=Tidskonstant Transferfunksjoner Blokkdiagrammer Tilstandsrommodeller Analyse/Design Stabilitetsanalyse Det komplekse plan 2. Frekvensrespons 1. Systemets poler Bodediagram Sprangrespons 1.orden med tidsforsinkelse Diskretisering Reguleringssystem Asymptotisk stabilt system Air Heater Tidsplanet Ustabilt system Marginalt stabilt system Asymptotisk stabilt system Marginalt stabilt system Ustabilt system
Verktøy LabVIEW PC Byggverk Reguleringssystem MathScript Frekvensrespons Stabilitetsanalyse Diskretisering Tilstandsrommodeller Byggeklosser Transferfunksjoner Differensiallikninger
MathScript MathScript er en del av LabVIEW! MathScript IDE:
Transferfunksjoner - MathScript MathScript kode: % Transfer Function num = [4]; den = [2, 1]; H = tf(num, den) % Step Response step(h) Prøv disse eksemplene! MathScript kode: % Transfer Function num = [2, 3]; den = [1, 4, 3]; H = tf(num, den) % Step Response step(h) U=1 -> Enhetssprang Prøv disse Hva blir resultatet da??
Blokkdiagrammer - MathScript Serie: Parallell: Tilbakekobling: MathScript kode: H = series(h1,h2) MathScript kode: H = parallel(h1,h2) MathScript kode: H = feedback(h1,h2) Eksempel: num=[1]; den=[1, 1]; H1= tf(num, den); num=[1]; den=[1, 1, 1]; H2 = tf(num, den); H = series(h1,h2) Prøv dette!
Matematikk i MathScript Matematiske uttrykk: Likninger: y(x) = 2x + 4 y(3) =? x = 3; y = 2*x + 4; Vektorer: Matriser: Prøv disse eksemplene! x = [4, 3, 5] y = 1:10 A = [0, 1; -2, -3] C = [-1, 2, 0; 4, 10, -2; 1, 0, 6]
Matriser i MathScript Eksempel: Eksempel: Hva blir følgende? Hva blir følgende? Prøv disse eksemplene! Prøv evt. andre matriseoperasjoner, som rang, determinant, inverse, osv
Plotting i MathScript intervall på x aksen Eksempel: y(t) = 2x + 4 x = 0:5; y = 2*x + 4; plot(x,y) Nyttige MathScript funksjoner ifm plotting: Prøv dette! xlabel grid title axis ylabel text Prøv disse ifm eksempelet over! Hvordan blir plottet da? Hvordan virker disse? Skriv help <funksjonsnavn> i Command window Hvordan får man en annen farge på kurven? Eller en annen linjetype?
MathScript Part II (Neste time) Nå: Begynn på/jobb videre med Exercise 2: Basic MathScript Temaer i Part II: Egendefinerte funksjoner Løkker og betingelser Tips & Triks m.m.
Egendefinerte Funksjoner i MathScript
Egendefinerte Funksjoner i MathScript - Eksempel Vi ønsker å lage en funksjon som konverterer temperaturen fra grader Celsius til grader Fahrenhet Lage selve funksjonen: Funksjonsnavn Returverdi Argument Kjøring/bruk/uttesting av funksjonen: function Tf = fahrenheit(tc) Tf = (9/5)*Tc + 32; Returverdi Funksjonens innhold, som kan bestå av en eller flere linjer med MathScript-kode Funksjonen må lagres som fahrenheit.m på harddisken Tc = 23; Tf = fahrenheit(tc) Dette kan enten gjøres fra Command window eller Script window Prøv dette! Hva blir Tf??
Løkker og betingelser i MathScript Prøv med forskjellige verdier på x if betingelse: x=3 if x > 2 sin(x) else cos(x) end for løkke: x = [1, 4, 6, 8, 9]; N = length(x); sum = 0; for i = 1:N sum= sum+ x(i) end Hva blir resultatet? Prøv disse eksemplene! Det finnes mange andre varianter også (tilsvarende som i C#) men if og for er de mest brukte!
Kommentarer: Tips & Triks % Dette er en kommentar x=2; % Kommentar2 y=3*x %Kommentar3 Ikke bruk mellomrom (space) i filnavn eller navn på funksjoner! Dette gjør koden mer lesbar!! Bruk piltaster (Pil opp og Pil Ned) for å bla i tidligere brukte kommandoer i Command Window Desimaltegn: Bruk punktum ikke komma! Dvs. y=3.2 ikke y=3,2 Bruk engelske navn på variable, funksjoner, filer, m.m. Dette er vanlig praksis i programmering! Bruk alltid variable - ikke sett inn tall direkte i uttrykkene Ja: a=2; b=4; y=a+b Nei: y=2+4 Funksjoner: Kun en funksjon i hver fil! Filnavnet (.m) og navnet på funksjonen må være det samme! Inkluder disse 3 i toppen av alle script: clear clc close all
Tips & Triks Bruk hjelp for å finne ut mer om de funksjonene du skal bruke. For å få hjelp om tf funksjonen skriver du følgende i Command window: help tf En grei regel: En oppgave en fil, dvs. ikke putt alle oppgavene i en fil!! Matematiske uttrykk: Bruk følgende i MathScript: x = 2; y = 2; z = 3*x^2 + sqrt(x^2 + y^2)+ exp(log(x))
Mye brukte Funksjoner i MathScript (ifm reguleringsteknikk) Oppsummering clear clc Transferfunksjoner og Tilstandsrommodeller tf series feedback ss Manipulering av transferfunksjoner parallel conv Vi lærer mer om disse etterhvert Simulering/plotting: step lsim plot grid title xlabel ylabel Stabiltetsanalyse poles pzgraph Frekvensrespons bode margin Hvordan bruke disse funksjonene? help <funksjonsnavn> i Command window
Hans-Petter Halvorsen, M.Sc. University College of Southeast Norway www.usn.no E-mail: hans.p.halvorsen@hit.no Blog: http://home.hit.no/~hansha/