Onderdrukking flikker bij TFT display

code:


if  (bme_Timer.check());

    {
     Print_bme();
    }

if (klok_Timer.check());

     {
      Print_tijd();
     }

Hier gaat het mis door de punt-comma op het einde van de If-regel.
Die punt-comma is nu het statement dat al-dan-niet door de if wordt uitgevoerd. De daarop volgende blokken met Print_bme() en Print_tijd() vallen dan niet meer onder de if en worden altijd uitgevoerd.

PS: De compiler geeft hier meestal een duidelijke waarschuwing op. Maar in de arduino IDE zijn die meldingen niet goed zichtbaar en dus gemakkelijk te missen.

[Bericht gewijzigd door deKees op zondag 19 maart 2023 10:56:22 (16%)

blackdog

Golden Member

Hi deKees,

Wat een muts ben ik toch, ik denk dat ik zeker 10x de code vergeleken heb en ik zie het dus echt niet...
Het was dus Bingo!

De dank is weer GROOT!

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Je kunt ook zelf kleuren maken. De libraries gebruiken 16-bit kleuren in format 565, dwz 5 bits voor rood, 6 bits voor groen en 5 bits voor blauw. Normale RGB kleuren worden aangegeven met 8 bits per kleur (0 .. 255). Die kun je dan omrekenen met zo een functie:

code:


uint16_t ColorRgb(uint8_t red, uint8_t green, uint8_t blue)
{  return ((red   & 0xF8) << 8)    // 5 bits red
        + ((green & 0xFC) << 3)    // 6 bits green
        + ((blue  & 0xF8) >> 3);   // 5 bits blue
}

PS: Haakjes toegevoegd.

blackdog

Golden Member

Hi deKees, :-)

Dus bij een "if" vraag wordt er aan het einde nooit een ; gebruikt.

Wat de error codes van de Arduino IDE betreft, dat staat altijd groot in beeld, kijk er altijd naar bij het compilen en uploaden.
Heet vreemde is dat er geen error meldingen waren...

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
blackdog

Golden Member

Hi deKees,

Ik gebruikte een website die hardbass liet zien, daar kan je met de muis een kleur kiezen en dan komt er op een aantal manieren een HEX getal uit die in b.v. voor de paarse kleur gebruikt heb: 0xCB5F
Wat ik al aangaf, ik weet nog niet zeker of ik de kleuren blijf gebruiken die jullie op het display kunnen zien maar ik weet nu dus meerdere manieren om de code hiervoor aan te passen.

ADS1115, ik was alweer een bestel lijstje aan het maken voor de printjes die je overal kan kopen, ik kon ze niet vinden gisteren.
Tot dat ik dacht aan een sorteerbak "Ebay Printjes" daar lagen ze dus in, nu bezig met een testsetup printje met twee maal een ADS1115 ieder op een eigen adres en op het testprintje een spanningsdeler
zodat ik de ingangen kan testen met een aantal waarden.
Wat later zal ik simpel schematje laten zien hoe ik de testsetup ga gebruiken.

Dank weer voor de input,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Dus bij een "if" vraag wordt er aan het einde nooit een ; gebruikt.

Zeg nooit nooit. Er zijn uitzonderingen, maar die zijn erg zeldzaam; Hetzelfde geldt ook voor for loops en while statements.
Daar komen ze al iets vaker voor. Als je daarvoor kiest dan is het wel verstandig om het heel zichtbaar te maken. Bijv:

code:


   for (i=0; i < 1000; i++)
       ;

   while(i++ < 1000)
       ;

Veel minder zichtbaar maar hetzelfde effect:

code:


   for (i=0; i < 1000; i++);
   while(i++ < 1000);
blackdog

Golden Member

Hi deKees, :-)

Ja, vooral voor zo'n dyslectische Aap als ik ben...

Ik neem je voorbeeldjes op in mijn handige code lijsje dat ik een beetje bijhoud voor dit en andere projectjes, dit gaat vast meer voorkomen bij mij :-)

Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

; is meestal op het einde van een stuk code.

zeg je bv

c code:

if (A=1){ doe iets; }

zal die ALTIJD uitvoeren waar hier steek je waarde 1 in A en dat lukt, dus de if voert uit.

c code:

if (A==1){ doe iets; }

hier wordt 'doe iets' enkel gedaan als A gelijk is aan 1

langer uitgeschreven

c code:

if (A==1) { 
   doe iets; 
}

jouw stuk

c code:

if (A==1); { doe iets; }

is hetzefde als

c code:

if (A==1){ 
;      # doe niks staat hier letterlijk
}

{
 doe iets; 
}

programmeren is fouten maken, en zoeken.
hoeveel keer ik in if loops al gezet heb
serial.print("loop1 wordt uitgevoerd"); en me dan verbazen waarom die zoveel runt. meestal zo een dubbele = vergeten
als je dan ook code hebt dat herhaalt tot A > 5 en in je if zet je die telkens op 1, zit je compleet vast.
ook al zou de compiler moeten onderscheppen, heb al vaak de pc laten hangen met zoiets

ik hou van werken ..., ik kan er uren naar kijken
blackdog

Golden Member

Hi fcapri, :-)

Je opmerking staat nu ook in mijn handige dingen lijstje, dank je.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
PE9SMS

Special Member

Ik vind dit altijd net even beter leesbaar dan een losse ";" :

code:

for (i=0; i < 1000; i++) {}
while(i++ < 1000) {}

Je ziet meteen: de lus is leeg. Maar ja, over smaak valt niet te twisten :)

This signature is intentionally left blank.

En dan moet je nog oppassen dat het niet weg wordt geoptimaliseerd >:)

PE2BAS
PE9SMS

Special Member

Als de software dan nog doet wat je verwacht is dat alleen maar mooi, toch? ;)

This signature is intentionally left blank.

Op 20 maart 2023 10:34:18 schreef hardbass:
En dan moet je nog oppassen dat het niet weg wordt geoptimaliseerd >:)

Moderne optimisers weten dat dit delay loopjes zijn en laten die ongemoeid :) .

Op 19 maart 2023 11:22:08 schreef blackdog:
Heet vreemde is dat er geen error meldingen waren...

Eigenlijk mogen er volgens de C-standaard geen error meldingen komen: Het is geldige C.

Maar net als bij

if (a = 4) ....

kan ie wel een waarschuwing geven. Weet je wel zeker dat je dit bedoelt?

Op 20 maart 2023 22:04:27 schreef deKees:
Moderne optimisers weten dat dit delay loopjes zijn en laten die ongemoeid :) .

Gcc heeft tijden lopen roepen: "We weten dat dit een delayloop is en zullen die niet wegoptimaliseren. Gebruik dit gerust als delay loop!".

En ineens was het: "nee de optimizer ziet dat er niets gebeurt en zal hem wegoptimaliseren.

Dus volgens jou definitie heeft Gcc geen moderne optimizer? (ik blijf het een kutstreek vinden om dat soort "garanties" in te trekken).

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/
blackdog

Golden Member

Hi,

Tja, mijn kennis is nog steeds minimaal van Arduino C en ik rust op jullie schouders voor het vinden van de fouten die ik nog steeds volop maak.

Ik kan me wel wat voorstellen van de moeilijkheden die de bouwers van de Compilers hebben,
de enorme hoeveelheid variabelen en dat allemaal zo efficient mogelijk te doen met zo min mogelijk fouten en dat allemaal zo compact mogelijk...

Ik krijg er nu al hoofdpijn van. :-)

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Dus volgens jou definitie heeft Gcc geen moderne optimizer?

Nou ja, definitie..
Maar als die garantie er wel is geweest en nu weer is ingetrokken, dan is de compiler nog een extra stap moderner toch?? 8)7

@buckfast_keeper

code:

tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK);

Wees er je wel van bewust dat dit NIET lukt met elke font. Zo lang de geschreven waarde niet wijzigt, geen probleem. Maar bijvoorbeeld bij seconden krijg je dan al snel een vierkantje of je moet inderdaad een zwarte rechthoek tekenen. Maar die neemt meer tijd in beslag.

Volgens mij heb je het nu over de TFT-eSPI library. Die heeft een extra vlaggetje om de achtergrond ook in te kleuren. Want die library heeft de tweede kleur al nodig voor de anti-aliasing.

Ik ben al weer een paar dagen bezig om die TFT-eSPI library hier aan de gang te krijgen, en dat begint nu te lukken. De teksten zien er wel erg mooi uit moet ik zeggen.

Probleem was dat ik hier werk met ESP-IDF, en niet met arduino. En er zijn wel arduino libraries maar die werken enkel met ESP-IDF 4.x, terwijl ik al lang op Versie 5 zit. Dus ik moest de nodige arduino library functies nabootsen.

Dit topic heeft dus wel wat losgemaakt :) .

buckfast_beekeeper

Golden Member

De adafruit GFX library heeft ook deze functie. Regel 153 in de library.

Dat is ook een probleem met CLION. Die werken met platformio en niet alle library zijn daarvoor geschikt. Ze geven veel foutmeldingen. Dezelfde code komt dan wel door de arduino compiler.

Smoothed fonts werken niet met ESP8266. Te weinig free heap.

Je kan ook een eigen gekozen font, met de letters, cijfers en tekens die je wenst laten renderen. Staat in 1 van de voorbeelden beschreven. Ik ben niet thuis. Ik kan het even niet opzoeken.

Van Lambiek wordt goede geuze gemaakt.

De adafruit GFX library heeft ook deze functie. Regel 153 in de library.

Klopt wel, maar ze werken net anders.

Bij Adafruit kun je de achtergrond invullen door een tweede kleur in te stellen:

code:

  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK);

Bij TFT-eSPI moet je daarvoor een extra vlag zetten:

code:

  tft.setTextColor(ST77XX_CYAN, ST77XX_BLACK, true);
blackdog

Golden Member

Hi,

Mooi dat je nu de mogelijkheid hebt mooi afgeronde fonts te gebruiken.
Alleen voor mijn display en de grote hoeveelheid kleine tekst, is dat denk ik niet goed mogelijk.
ik heb even met een loepje gekeken naar de pixel opbouw van de karakters, daar zit denk ik nog weinig marge in voor extra pixels, nou... misschien een beetje.

Mooi voor later, hoe het nu op het display staat vind ik mooi zat voor mijn toepassing,
het kost al tijd genoeg om alles uit te zoeken, maar ik weet nu ook dat er anti alias library's zijn. :-)

Het display staat constant aan naast mij en hierdoor heb ik al gezien dat één item een klein beetje opzij moet en een extra posisie moet krijgen om nog een stukje ghosting op te lossen.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
blackdog

Golden Member

OK,

Software vraag, dus maar in dit topic doen.

Ik ben het een en ander aan het uitzoeken wat voor berekening ik zal gaan doen aan de waarde die uit de ADS1115 komt om uit die waarde de temperatuur te berekenen.
Ik vraag hierbij wat jullie mening is wat b.v. handig is.

Even wat zaken hier neerzetten die al vast zijn.
Referentie spanning voor de Pull Up weerstand = 5.0000V
Pull Up weerstand = 30K, iedere weerstand per ingang van de ADS1115 zal worden gemeten en de waarde zal in de software worden opgenomen.
De ADS1115 wordt van een nauwkeurige 3.3V voeding voorzien.
Per meetingang wordt er een variabel in de software opgenomen om kleine corecties te doen, als nodig.
Ik ga iedere ingang van de twee ADS1115 meten, dit om te kijken of deze China printjes die ik beschikbaar heb goed zijn, dit is simpel te controleren met een variabel spanningbron en een van mijn multimeters.
Dit is goed mogelijk met wat voorbeeld code van Rob Tillaart.

De vraag is nu deze, zal ik een library met de Steinhart-Hart berekening gebruiken.
Of b.v. de Library die een LUT gebruikt.
Een deel van een Library en hier verwijs ik naar een versie die een LUT, "Look Up Table" gebruikt van een NTC.
https://github.com/NitrofMtl/ACI_10K_an/blob/master/src/ACI_10K_an.cpp

.
Lijst met waarden
Ik heb vanmiddag zitten worstelen met Spreadsheet programma's om de gegevens die ik heb van de 10K TDK weerstand die ik hier heb, en een Vishay 10K met vrijwel de zelfde eigenschappen.
Op dit plaatje heb ik geporbeerd de gegevens van de twee NTC weerstanden te combineren, waarom? de TDK weerstand heeft in de datasheet alleen 5°C stapjes tabel, en de Vishay NTC heeft 1°C stapjes.
Dus ik wou weten omdat de eigenschappen erg dicht bij elkaar liggen of als ik de 1°C stapjes zou gebruiken van de Vishay tabel hoeveel de foutmarge ongeveer zou zijn.

Kolom-A Geeft de temperatuur aan waarbij de gegevens gelden
Kolom-B Geeft de correctie factor aan waarmee je moet vermedigvuldigen, dit is luiheid van de fabrikant geef gewoon per NTC weerstandswaarde een 1°C lijst, er zijn er die dit gewoon doen, waarom TDK niet?
Kolom-C Heeft maar twee regels, Regel-26 geeft aan wat mijn gestelde minimale temperatuur is die dit meetapparaatje moet kunnen weergeven, en op Regel-46 staat de maximale temperatuur.
Kolom-D Geeft de weerstandswaarde aan van de A-Kolom vermedigvuldigt met de waarde van Kolom-B
Kolom-E Geeft de waarde aan van een Vishay 10K NTC met verder vrijwel de zelfde eigenschappen, in de kleuren Lila en Geel weergegeven.
Kolom-F Geeft het verschil aan tussen de waarde van de TDK en de Vishay in %, de verschillen zijn erg klein, dus ik denk(corrigeer me waar nodig :-) ) dat ik de Vishay 1°C stapjes kan gebruiken in een LUT lijst.
Kolom-G is nog leeg daar kan ik de waarde van één vande ingange van de ADC invullen.
Kolom-H Geeft de DC waarde aan die de ADS1115 zal zien bij een bepaalde temperatuur.

Mij configuratie kan dus net beneden de 10°C meten en ruim boven de 110°C, en zoals in Kolom-A te zien is, in het ligt groene vlak is het belangrijkste gebied tussen de 20 en 75°C.
Dit speadsheet is versie 0.1 en links boven zijn de gegevens te zien van de TDK NTC.

Het plaatje op verzoek van benleentje is natuurlijk klikbaar. :-)
https://www.bramcam.nl/NA/ADS1115-Tester/Excel-Verschil-TDK-Vishay-10K-NTC-Klein-01.png

Nog wat info die ik verwerkt heb in het plaatje hierboven

Vishay Spreadsheet voor de 10K NTC
https://www.bramcam.nl/NA/ADS1115-Tester/Vishay-10K-3984-1percent.xls

Kijk op pagina-3, tweede regel, 10K waarde, RT 8016, K 3988, dan pagina-6, kijk bij de waarden van R/T 8016, dat is mijn NTC, alles van 8018 negeren.
https://www.bramcam.nl/NA/ADS1115-Tester/ntc_mini_sensors_s861.pdf

Wat zou dus een wijze beslissing zijn, de Library file aanpassen met mijn tabel, of de Steinhart-Hart berekening toepassen?

Dank vast en groet,
Bram

PS
Eventueel de ruimte voor tabellen, ik denk dat dit voldoende is.
Ik ga vrijwel zeker een Teensy-4 gebruiken en die heeft 1024kb aan ruimte en ook vrij veel ruimte aan EEProm.

Jammer genoeg zullen een aantal Teensy modellen niet meer gemaakt worden, NXP heeft veel problemen met levering.

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.
blackdog

Golden Member

Hi,

Vandaag weer een beetje tijd gehad om me met dit projectje bezig te houden.
Er werd vandaag aan de deur gebeld door de transporteur die twee doosjes had, dat waren de samples van TI, een paar versies van Digitale Isolatie IC's.

https://www.bramcam.nl/NA/ADS1115-Tester/ADS1115-tester-52.png

.
Dit is de testopstelling voor één van de types, het is de ISO6720 die twee poorten heeft en welke maar één kant op gaan, dus goed voor de twee ADS1115 converters als er Interrupts nodig zijn in de software.
De gele condensatoren op het converterprintje zijn weer voor de voeding ontkoppeling, zo kort mogelijk, zoals voorgeschreven door TI.
De rode klem is de Siglent generator uitgang die beide ingangen aanstuurt, de grijze probe er boven is hier op één uitgangkanaal aangesloten.
https://www.bramcam.nl/NA/ADS1115-Tester/ADS1115-tester-53.png

.
Dit is een 1MHZ blok, Lila is het ingansignaal en de gele trace is de uitgang de frequentie is hier 1MHz, er is net een beetje vertraging zichtbaar tussen de twee signalen, ook zijn er wat aberraties zichtbaar,
dat zie je hier beneden nog wat beter op de volgende foto.
https://www.bramcam.nl/NA/ADS1115-Tester/ADS1115-tester-50.png

.
Nu een plaatje bij 10MHz als test frequentie waarbij ik ook een tijd cursor meting heb gedaan, de vertraging is rond de 12nSec, erg netjes, de datasheet zegt tussen de 11 en 18 nSec.
Ik heb twee verschillende probes gebruikt en deze niet bij deze meting niet in tijd gecorrigeerd, bij 5V, ik heb hier bij 3,3V gemeten, is de vertreging en de stijgtijd nog wat beter, maar geen grote verschillen.
https://www.bramcam.nl/NA/ADS1115-Tester/ADS1115-tester-51.png

.
Ik kan niet anders zeggen dat ik onder de indruk ben van deze digital isolatoren, laag vermogen, weinig vertraging en de uitgang levert een hele mooie puls, hou er rekening mee dat dit op een breadboard gemeten is!
De scoop stond op maximaal bandbreedte en dat is hier 500MHz.

De aberraties waar ik nog even op terug zou komen natuurlijk grotendeels door het breadboard waarop ik de testschakeling heb gebouwd, als je het volgens de voorschriften doen kan het er nog beter uit zien.
Als je kijkt naar de daaltijd van de gele trace, dat is de uitgang, dan heeft deze een flank steilheid van 1.6nSec en dan zijn die aberraties die je ziet heel netjes.

Mooi, als ik dus met interrupts ga werken in de software voor de ADS1115, dan ben ik onder de pannen met deze prachtige isolatoren.
Ik heb trouwens ook nog een zetje met vier ingangen hier liggen, misschien een SPI bus scheiding?

Dan wat de vraag betreft over wat ik zal doen, daar had nog niemand op gereageerd, dat kan natuurlijk maar ik ben in ieder geval zelf nog even wat meer kennis wezen opdoen.
En heb b.v. een link gevonden bij TDK waarmee je dus wel een 1°C lijst kan genereren als je het goede typenummer opgeeft in een calculator programma op hun website.

Als jullie willen spelen...
NTC Type: B57861S0103F045
Voorwaarden accepteren, bovenstaande type invoeren als NTC, Lower Limit +5C, upper limit, 115C, temperatuur scaling "1", resistence tolerance "1" en klik dan Calculate,
TADA een 1C weerstand lijst van de NTC die ik ga gebruiken.

De basis is natuurlijk de kolom met Rnom er boven en de twee kolommen er naast zijn de + en de - afwijkingen en bij 100°C is dit max 1.9%, dat wordt in de 5e kolom weergegeven wat op max 0.6°C als temperatuur afwijking moet gelden.

https://www.tdk-electronics.tdk.com/web/designtool/ntc/

Ook heb ik een link gevonden bij Molex die een L.U.T. voor je genereerd an de hand van een aantal gegevens die je kan invoeren.
Hieronder deze link:

https://www.molex.com/molex/ntc-calculator

Hoe ik de berekening ga doen is nog niet zeker, eerst een testprintje met 1x een ADS1115 er op, zodat ik kan testen of de IC's op mijn printjes wel van goede kwaliteit zijn.
Ook ga ik een aantal kalibratie weerstanden maken voor mijn setup, 10K voor 25C is makkelijk, ik heb een handvol mooie weerstanden van Vishay.
Ook de 100°C is makkelijk, een 681Ω weerstand tunen op precies 680 met een 681 1% weerstand is vrij makkelijk.
Een paar stapjes er tussen de 10 en de 100°C ga ik dus maken om te zien of de conversie redelijk goed klopt, zo kan ik zien hoe goed de conversie is van b.v. de Steinhart-Hart of en L.U.T. tabel.
Een beetje het zelfde als mijn PT1000 Kalibratie doosje met de volgende stappen "0" 20, 50 en 100°C, daar zitten dus vier precisie weerstanden in die ik aan de hand van beschikbare tabellen voor een PT1000 heb samen gesteld.

Van de week meer over mijn vorderingen.

Groet,
Bram

You have your way. I have my way. As for the right way, the correct way, and the only way, it does not exist.

Hallo,

Ik had je vraag even gemist, maar ik zou zelf kiezen voor de Steinhart-Hart berekening. Waarom? Nou: Volgens de paper die je eerder liet zien is deze nauwkeuriger. Ook lijkt het me persoonlijk makkelijker te implementeren dan een lookup table. Die lookup table moet namelijk ook weer interpolatie doen tussen de meetpunten. Dat kan prima, maar als je dan toch gaat rekenen gebruik dan meteen het juiste model.

De excel die je laat zien heeft een lijst met weerstand waarden en de bijbehorende temperatuur. Deze lijst kan je gebruiken om de coëfficiënten van de Steinhart-Hart fomule te berekenen. Dat kan vast en zeker ook in excel. Die coëfficiënten zet je dan gewoon als defines in je code.

Voor zover ik nu weet kan je die coëfficiënten op 2 manieren bereken.
Manier 1:
Gebruik een paar meetpunten en die matrix berekening die in de paper staat.

Manier 2:
Gebruik alle meetpunten en bereken de coëfficiënten. Het voordeel van deze methode is dat afwijkingen in de meetpunten worden uitgemiddeld. Ik zou even moeten kijken hoe dat ook alweer ging. De methode heet dacht ik "Kleinste-kwadratenmethode" al is het allemaal al weer even geleden.

-- Toevoeging --

Even een klein voorbeeldje hoe je dat doet, ervan uitgaande dat je bekend bent met matrix berekeningen.

Je ziet hier een functie, in dit voorbeeld met een cosinus en een sinus. Maar dat kan in principe van alles zijn. In jou geval is dat dus de formule van Steinhart-Hart.

De tabel geeft een lijst met meetpunten.

Vervolgens de berekeningen die de coëfficiënten bepalen (a0, a1 en a2) aan de hand van de meetpunten.

Mocht je met deze methodes nog niet bekend zijn kan ik je ten sterkste aanraden je hierin te verdiepen. Het geeft je namelijk de mogelijkheid om een reeks met meetpunten om te zetten naar een formule die een functie geeft welke zo dicht mogelijk door deze meetpunten heen loopt.

Nog een laatste puntje, er zijn meerdere methodes die dit doen welke allemaal kan voor en nadelen hebben. Deze heb ik hier nu neergezet omdat ik denk dat deze het meeste geschikt is voor jouw toepassing.

[Bericht gewijzigd door hardbass op woensdag 5 april 2023 16:17:36 (13%)

PE2BAS

Op 5 april 2023 16:02:44 schreef hardbass:
De methode heet dacht ik "Kleinste-kwadratenmethode" al is het allemaal al weer even geleden.

Kleinste kwadraten methode is een manier om van data waarvan je denkt dat er een "formule" voor is, de parameters van die formule te zoeken.

Stel ik meet bij 1 tot 10V in stapjes van 1V de waardes 1.1, 1.9, 2.9, 4.1, 5.1, 6.0, 6.9, 8.0, 9.1, 10.0 dan kan je natuurlijk gokken dat ik een weerstand van ongeveer 1 Ohm heb, maar eigenlijk wil je die parameter gestructureerd uit de data halen. Dan kan je het minimum zoeken van het verschil tussen I = r * U en de gemeten waardes, Waarbij dus r een waarde is die gezocht wordt zodanig dat de som van de absolute verschillen zo klein mogelijk is.

Maar wiskundig is dat tricky. Wat wiskundig WEL op te lossen is, dat is als je het kwadraat van het verschil neemt. Dan kan er ineens een echte oplossing afgeleid worden.

Een nadeel is dat een enkele grote afwijking een relatief grote invloed zal hebben. Stel ik doe een 11e meting en kom op 11v 12A. Terwijl ik tot nu toe een fout van 8* 0.12 = totaal 0.08 had (mogelijk dat de optimalisatie van de parameter dat nog IETS naar beneden kan krijgen) zitten we nu ineens een fout van totaal 1.08. Dit zal iedere optimalisatie methode dus nog wat naar beneden kunnen krijgen door meer op die 12.0 te mikken, maar de de kleinste kwadraten methode dus meer dan de "som van absolute verschillen".

Ik geloof dat dingen als een spreadsheet instaat zijn om "kleinste kwadraten" optimalisaties te doen.

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Op 5 april 2023 16:32:23 schreef rew:
[...]
Ik geloof dat dingen als een spreadsheet instaat zijn om "kleinste kwadraten" optimalisaties te doen.

Ja dat verwacht ik ook, ik weet alleen niet of die dat ook kan voor zelf definieerbare formules of dat dit alleen kan voor polynomen.

PE2BAS