Control Engineering MathScript Hans-‐Petter Halvorsen, M.Sc. Reguleringsteknikk Tilstandsrom-‐ modeller Differensial -‐likninger Laplace K = Forsterkning T=Tidskonstant 1.orden med tidsforsinkelse Blokk-‐ diagrammer Tidsplanet 1.orden Transfer-‐ funksjoner Sprang-‐ respons S-‐p lanet Serie, Parallel, Feedback 2.orden Dataverktøy MathScript Analyse/Design LabVIEW Stabilitets-‐ Det komplekse plan analyse 1. Systemets poler Realisering/ Implementering 2. Frekvensrespons Bodediagram Det komplekse p lan 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 = [2, 3]; den = [1, 4, 3]; H = tf(num, den) MathScript kode: % Transfer Function num = [4]; den = [2, 1]; H = tf(num, den) % Step Response step(H) Prøv disse eksemplene! % Step Response step(H) U=1 -‐> Enhetssprang Prøv disse – Hva blir resultatet da?? Blokkdiagrammer -‐ MathScript Serie: MathScript kode: … H = series(h1,h2) Eksempel: Tilbakekobling: Parallell: MathScript kode: … H = parallel(h1,h2) MathScript kode: … H = feedback(h1,h2) 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) = ? Vektorer: x = 3; y = 2*x + 4; Matriser: Prøv disse eksemplene! x = [4, 3, 5] A = [0, 1; -2, -3] y = 1:10 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 m atriseoperasjoner, som rang, determinant, inverse, osv Plotting i MathScript intervall på x aksen x = 0:5; Eksempel: y(t) = 2x + 4 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: Kjøring/bruk/uttesting av funksjonen: Funksjonsnavn Argument Returverdi function Tf = fahrenheit(Tc) Tc = 23; Tf = fahrenheit(Tc) Tf = (9/5)*Tc + 32; Returverdi Funksjonens innhold, som kan bestå av en eller flere linjer med MathScript-‐kode Dette kan enten gjøres fra Command window eller Script window Prøv dette! Funksjonen må lagres som “fahrenheit.m” på harddisken 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 Ja: 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 Funksjoner: • Kun en funksjon i hver fil! • Filnavnet (.m) og navnet på funksjonen må være det samme! a=2; b=4; y=a+b Nei: y=2+4 Inkluder disse 3 i toppen av alle script: clear clc close all … Tips & Triks En grei regel: En oppgave – en fil, dvs. ikke putt alle oppgavene i en fil!! x = 2; y = 2; z = 3*x^2 + sqrt(x^2 + y^2)+ exp(log(x)) 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 Matematiske uttrykk: Bruk følgende i MathScript: Mye brukte Funksjoner i MathScript (ifm reguleringsteknikk) Oppsummering Transferfunksjoner og Tilstandsrommodeller clear clc tf ss Manipulering av transferfunksjoner series parallel feedback conv Simulering/plotting: step lsim plot grid title xlabel ylabel Stabiltetsanalyse poles pzgraph Vi lærer mer om disse etterhvert Frekvensrespons bode margin Hvordan bruke disse funksjonene? help <funksjonsnavn> i Command window Hans-‐Petter Halvorsen, M.Sc. Telemark University College Faculty of Technology Department of Electrical Engineering, Information Technology and Cybernetics E-‐mail: hans.p.halvorsen@hit.no Blog: http://home.hit.no/~hansha/ 17
© Copyright 2024