TDT4165 PROGRAMMING LANGUAGES. Exercise 4 RC-kretser

Like dokumenter
TDT4165 PROGRAMMING LANGUAGES. Exercise 01 Introduksjon til Oz

TDT4165 PROGRAMMING LANGUAGES. Exercise 02 Togvogn-skifting

Eksamensoppgave i TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

INF 3430/4431. Simuleringsmetodikk

Kondensator. Symbol. Lindem 22. jan. 2012

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

UKE 5. Kondensatorer, kap. 12, s RC kretser, kap. 13, s Frekvensfilter, kap. 15, s og kap. 16, s.

LF - anbefalte oppgaver fra kapittel 2

UKE 5. Kondensatorer, kap. 12, s RC kretser, kap. 13, s Frekvensfilter, kap. 15, s kap. 16, s

Kondensator - Capacitor. Kondensator - en komponent som kan lagre elektrisk ladning. Symbol. Kapasitet, C. 1volt

Innlevering 2b i INF2810, vår 2017

Forelesning nr.7 INF Kondensatorer og spoler

LØSNINGSFORSLAG KRETSDEL

Forelesning nr.12 INF 1410

LØSNINGSFORSLAG KRETSDEL

INF 3430/4430. Simuleringsmetodikk

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK. Lørdag 5. juni Tid. Kl LØSNINGSFORSLAG

Elektriske kretser. Innledning

UNIVERSITETET I OSLO

Eksamen i TDT4165 Programmeringsspråk

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

LABORATORIERAPPORT. RL- og RC-kretser. Kristian Garberg Skjerve

Lab 3: AC og filtere - Del 1

Forelesning nr.7 INF 1411 Elektroniske systemer. Tidsrespons til reaktive kretser Integrasjon og derivasjon med RC-krester

Matematikk Øvingsoppgaver i numerikk leksjon 5 for-løkker

Punktladningen Q ligger i punktet (3, 0) [mm] og punktladningen Q ligger i punktet ( 3, 0) [mm].

Onsdag isolator => I=0

Matematikk Øvingsoppgaver i numerikk leksjon 3 Skript

Matematikk Øvingsoppgaver i numerikk leksjon 4 m-ler

Forelesning nr.7 INF 1411 Elektroniske systemer. Tidsrespons til reaktive kretser Integrasjon og derivasjon med RC-krester

Øving 1 ITD Industriell IT

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK. Fredag 25. mai Tid. Kl LØSNINGSFORSLAG

INF2810: Funksjonell Programmering. Mer om verditilordning. Tabeller. Og strømmer.

Eksamen i TDT4165 Programmeringsspråk (med rette- eller løsningsforslag) Fredag 18 Desember 2009

Prototyping med Arduino del 2

Forelesning nr.8 INF 1410

Rapport laboratorieøving 2 RC-krets. Thomas L Falch, Jørgen Faret Gruppe 225

UNIVERSITETET I OSLO

Kondensator - Capacitor. Kondensator - en komponent som kan lagre elektrisk ladning. Symbol. Kapasitet, C = 1volt

FYS1210 Løsningsforslag Eksamen V2018

UNIVERSITETET I OSLO

Denne oppgaven innfører funksjoner, og viser hvordan vi kan skrive og teste funksjoner i Ellie.

Oppgave Nr.og navn LABORATORIEØVELSE NR 6 Revidert utgave desember 2014 T. Lindem, K. Ø. Spildrejorde, M. Elvegård

TFE4101 Vår Løsningsforslag Øving 1. 1 Ohms lov. Serie- og parallellkobling. (35 poeng)

UNIVERSITETET I OSLO

Forelesning nr.5 INF 1411 Elektroniske systemer. RC-kretser

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

Nå er det på tide å se hvordan dette fungerer i praksis. Vi skal beregne et par Laplacetransformer som vi får mye bruk for senere.

og P (P) 60 = V 2 R 60

INF109 - Uke 1b

INF2810: Funksjonell Programmering. Mer om verditilordning. Tabeller. Og strømmer.

TDT4110 Informasjonsteknologi, grunnkurs Uke 35 Introduksjon til programmering i Python

Innhold uke 7. Objektorientert programmering i Python: Introduksjon. Lite tilbakeblikk: Programflyt og skop. Lite tilbakeblikk: Funksjoner er uttrykk

INF2810: Funksjonell Programmering. Strømmer og utsatt evaluering

Forelesning nr.5 IN 1080 Mekatronikk. RC-kretser

INF L4: Utfordringer ved RF kretsdesign

Dagens temaer. Dagens temaer er hentet fra P&P kapittel 3. Motivet for å bruke binær representasjon. Boolsk algebra: Definisjoner og regler

Python: Løkker. TDT4110 IT Grunnkurs Professor Guttorm Sindre

Elektrisitetslære TELE1002-A 13H HiST-AFT-EDT

TDT4105 IT Grunnkurs Høst 2016

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

WORKSHOP BRUK AV SENSORTEKNOLOGI

Forelesning nr.5 INF 1411 Elektroniske systemer. RC-kretser

Oppgave 1 (30%) a) De to nettverkene gitt nedenfor skal forenkles. Betrakt hvert av nettverkene inn på klemmene:

LF til KRETSDELEN AV Eksamen i TFE4101 Kretsteknikk og digitalteknikk

a) Bruk en passende Gaussflate og bestem feltstyrken E i rommet mellom de 2 kuleskallene.

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

Lab 1 Innføring i simuleringsprogrammet PSpice

Oppgave 3 -Motstand, kondensator og spole

INF1510: Bruksorientert design

UNIVERSITETET I OSLO

Elektrolaboratoriet. Spenningsdeling og strømdeling

Hvorfor objektorientert programmering? Objektorientert programmering i Python: Introduksjon. Læringsmål uke 7. Undervisning og pensum IN1000

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK. Fredag 25. mai Tid. Kl LØSNINGSFORSLAG

Forelesning nr.6 INF 1411 Elektroniske systemer. Anvendelser av RC-krester Spoler og RL-kretser

Modul nr Elektrisitet og strømkretser

INF3430/4431. VHDL byggeblokker og testbenker

FYS1120 Elektromagnetisme ukesoppgavesett 7

Hvorfor objektorientert programmering?

Eksamen i emne TFE4110 DIGITALTEKNIKK MED KRETSTEKNIKK

I dag skal vi ved hjelp av ganske enkel Python-kode finne ut om det er mulig å tjene penger på å selge og kjøpe en aksje.

Om du er i tvil, forklar dine antakelser. Alle programmer skal skrives i Oz.

FYSnett Grunnleggende fysikk 17 Elektrisitet LØST OPPGAVE

Forelesning nr.4 INF 1411 Elektroniske systemer

IN1020. Obligatorisk oppgave 1. Formål

Fasit og sensorveiledning eksamen INF1411 våren Oppgave 1 Strøm, spenning, kapasitans og resistans (Vekt 20 %) A) B) Figur 1

Øvingsforelesning i Matlab TDT4105

2 Om statiske variable/konstanter og statiske metoder.

Modul nr Elektriske kretser

Obligatorisk oppgavesett 1 MAT1120 H16

Forelesning nr.5 INF 1411 Elektroniske systemer

Forelesning nr.12 INF 1411 Elektroniske systemer. Opamp-kretser Oscillatorer og aktive filtre

Dagens temaer. Dagens temaer hentes fra kapittel 3 i Computer Organisation and Architecture. Sekvensiell logikk. Flip-flop er

Hvor mye praktisk kunnskap har du tilegnet deg på dette emnet? (1 = ingen, 5 = mye)

Enkle kretser med kapasitans og spole- bruk av datalogging.

Transkript:

TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 4 RC-kretser Før du starter Relevant lesestoff: Kapittel 4.3 i V&H. Du skal levere: teori04.txt: Svar på de teoretiske spørsmålene. oving04.oz: Løsning på programmeringsoppgavene. sporsmal04.txt (valgfritt): Mulige spørsmål du har. tilbakemelding4.txt (valgfritt): Tilbakemeldinger om faget: Hva er hovedproblemene? Hvordan kan det forbedres? Andre kommentarer? Du må svare på alle deloppgaver Om du ikke klarer å løse en deloppgave må du forklare hva som er vanskelig med deloppgaven (din løsningsstrategi og hvorfor den ikke fungerer). 1

RC-kretser Denne øvingen bruker strømmer for å modellere enkle elektriske kretser. Du får prøvd lat utførelse, strømmer og høyere-ordens programmeringsteknikker. Strømmer og signaler Vi bruker strømmer direkte til å modellere signaler ved å representere verdien av etterfølgende signalverdier som elementer i strømmen. For eksempel kan vi implementere en integrator eller summerer som tar en strøm som input, strøm x = x i, en startverdi C og en liten økning dt og akkumulerer summen: i S i = C + x j dt j=1 og returnerer en strøm av verdier S = (S i ). Figur 1 viser en modell av et signalprosesseringssystem som tilsvarer integralfunksjonen. Inputstrømmen blir skalert av dt og passerer gjennom en adderer sammen med outputen. Figur 1: Integralfunksjon sett som signalprosesseringssystem Figur 2: En RC-krets 2

Modellere elektriske kretser Vi kan modellere elektriske kretser med strømmer som representerer verdien av strøm eller spenning i en sekvens av tid. For eksempel, gitt en RC-krets bestående av en resistor med motstand R og en kondensator med kapasitans C i serie. Spenningen v i en krets med strøm i er gitt ved den følgende likningen. v = v 0 + 1 C t hvor v 0 er startspenningen i kondensatoren. 0 i(t) dt + Ri Figur 3: Et signalflytsdiagram for RC-kretsen Oppgave For å implementere simuleringen med RC-kretsen må du lage seks funksjoner og lagre dem i filen oving04.oz. Heretter vil vi bruke S, S1, og S2 til å referere til strømmmer, F for funksjon og SF, SF1, SF2 for strømmer med flyttall. Bruk funksjonene du implementerer til å implementere andre funksjoner når dette er mulig. Task 1 Teori a) For å hente de N første elementene av en strøm S kan du kjøre {Nth S N }. Forklar hva som skjer når denne funksjonen kjøres. b) Hva er forskjellen på en strøm og en liste? c) Hvordan virker unntak (exceptions) sammen med lat utføring. Hvordan må kjernespråket utvides for å støtte begge disse konseptene sammen? 3

Task 2 Avbildning av strømmer {StreamMap S F} bruker F på alle elementene i S og returnerer en ny strøm. Til dette brukes lat utførelse. For eksempel: {StreamMap 1 2 3 4... MultiplyWithFive} returnerer 5 10 15 20... Task 3 Slå sammen strømmer {StreamZip S1 S2 F} slår sammen to strømmer på med lat utførelse. Den kjører funksjonen F på elementene på samme posisjon i S1 og S2. For eksempel: local fun {Multiply X Y} X*Y end in {StreamZip 1 2 3... 4 5 6... Multiply} end returnerer 4 10 18... Du kan anta at S1 og S2 er like lange Legg merke til: De følgende funksjonene utgjør funksjonaliteten til diagrammet i figur 3. Bruk avbildning (mapping), folding og sammenslåing (zipping) for strømmer som definert over. Task 4 Skalere strømmer {StreamScale SF Factor} skalerer elementene ved å multiplisere dem med en faktor (et flyttall). Dette skjer også med lat utførelse. For eksempel: {StreamScale 1.0 2.0 3.0 4.0...2.0} returnerer strømmen 2.0 4.0 6.0 8.0... 4

Task 5 Addere strømmer {StreamAdd SF1 SF2} bruker lat utførelse til lage en strøm som er summen av elementene i SF1 og SF2. For eksempel: {StreamAdd 1.0 1.0 1.0... 2.0 3.0 4.0...} returnerer 3.0 4.0 5.0... Task 6 Integrere strømmer Med lat utførelse returnerer {StreamIntegrate SF InitValue Dt} en strøm ved å integrere verdiene i flyttallstrømmen SF ved å bruke initialverdien Init- Value og tidssteget Dt. Du kan se hvordan det fungerer i figur 1. For eksempel: {StreamIntegrate 1.0 0.0 1.0... 5.0 1.0} returnerer 5.0 6.0 6.0... og {StreamIntegrate 5.0 6.0 7.0... 2.0 3.0} returnerer 2.0 17.0 35.0... Task 7 Simulere RC-kretser {MakeRC R C Dt} tar inn motstand R, kondensatoren C og tidsteget dt som argumenter (alle er flyttall). Den returnerer en funksjon RC. Funksjonen {RC SF V0} tar inn flyttallstrømmen SF som representerer den elektriske strømmen sendt inn i kondensatoren og startspenningen V0 og returnerer en strøm med outputspenningen. For eksempel: declare fun lazy {MakeOnes} 1.0 {MakeOnes} end RC = {MakeRC 5.0 1.0 0.2} Vs = {RC {MakeOnes} 2.0} {Nth Vs 5 _} {Browse Vs} Viser fram 7.0 7.2 7.4 7.6 7.8 <Future> i Oz-browseren. Du kan se hvordan det fungerer i figur 3. 5

En simulator-graf for elektriske RC-kretser For å gjøre det lettere å teste og forstå har vi laget en simulator-graf (SG) for elektriske RC-kretser. Du må kontruere en modul som inneholder implementasjonen av den abstrakte datatypen. En modul er en record hvor feltene gir grensesnittets navn og verdiene er implementasjonen (funksjoner for oss). Konstruer den følgende modulen til oving4.oz: Streams = streams(streammap: StreamMap streamzip: StreamZip streamscale: StreamScale streamintegrate: StreamIntegrate streamadd: StreamAdd makerc: MakeRC) For å bruke SG må du laste ned SimGraph.oz fra hjemmesiden til faget og kopiere den til den mappen du jobber fra. Kompiler den med følgende kommando i kommandovinduet når du har navigert til mappen du jobber fra: ozc -c SimGraph.oz Dette vil lage filen SimGraph.ozf. Last prosedyren Test: Test={Module.link [ SimGraph.ozf ]}.1.make Kjør prosedyren Test med modulen som argument: {Test Streams} Om du ikke får noen feilmeldinger vil et vindu komme opp. Fra vinduet kan du velge typen funksjon for simulasjonen (el-current). Du kan gå gjennom simulasjonen ved å trykke på step eller tensteps. Oz-browseren viser da frem de forventede verdiene og verdiene kalkulert med din RC-simulatormodul. Hvis de stemmer overens er du ferdig, ellers må du jobbe litt mer ;-) 6