Go Down

Topic: projet freecooling avec beaucoup de condition (Read 366 times) previous topic - next topic

anthology

bonjour a tous,

je me lance dans un projet de freecooling pour chez moi.

en y réfléchissant, beaucoup de condition s'ajoute mais je pense que le programme va être assez lourd
j'explique en texte (pas attaqué le code encore)

si la température extérieur est inférieur à la température intérieur et si l'ordre lui dit freecooling et si la maison ne chauffe pas alors j'active le freecoling.

si la température extérieur est supérieur à la température intérieur et si l'ordre lui dit freecooling et si la maison ne chauffe et si cela fait plus de X temps que je n'est pas pu utilisé le freecooling alors j'active la climatisation.


j'ai énormément de condition comme ça,
je pensé au if/else mais je pense qu'il y a une autre solution

des idées ?

merci à tous

PS: j'ai tout écrit en papier pour m'y retrouver

J-M-L

#1
Aug 13, 2018, 10:22 am Last Edit: Aug 13, 2018, 10:28 am by J-M-L
Salut

étudiez la Simplification d'équations logiques par tableau de Karnaugh et l'algèbre de boole

voici des liens vers de la théorie de boole un petit article trouvé en ligne, mais il y'en a bcp d'autres



Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

anthology

merci de l'infos,
apres 1ere lecture j'ai comprit le principe mais j'avoue que je trouve ca très complexe pour juste un code arduino.

as tu d'autre idée peut être plus simple ?

merci

fdufnews

Je ne suis pas certain que la simplification des équations logiques soit très utiles dans la mesure où le système n'a pas à être très réactif et où la réduction des dites équations risque de rendre la maintenance compliqué.
Il faut avant tout poser les conditions sur le papier pour voir s'il n'y a pas des incohérences.
Peut-être l'utilisation d'une petite machine à états pourrait rendre le fonctionnement plus simple s'il y a des temporisations et/ou un fonctionnement séquentiel dans certains cas comme tu le laisses entendre.
Ne pas hésiter à écrire les conditions un peu complexes sur plusieurs lignes bien alignées pour en augmenter le lisibilité.

anthology

merci a toi,

as tu un exemple pour les machines a états ?

j'ai tout écrit en papier, pour ça que je voulais essayer en if else mais très compliqué a suivre


J-M-L

cf mon tuto éventuellement pour  la programmation par machine à états

sinon emboîter des if ce n'est pas non plus compliqué...
Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

anthology

merci pour ton tuto JML, je regarde ca
effectivement embouté des if ce n'est pas compliqué mais surtout un risque d'erreur vu la quantité


fdufnews

effectivement embouté des if ce n'est pas compliqué mais surtout un risque d'erreur vu la quantité
C'est là où la phase d'analyse en amont doit permettre de :
  • simplifier les conditions en identifiants les redondances et/ou les incohérences. Je t'avouerais que je suis étonné lorsque tu dis qu'il y a beaucoup de conditions
  • les éléments qui dépendent d'une condition commune et qui soit générique

[[/list]
Ne pas perdre de vue que le codage est la phase finale. Le gros du travail se fait en amont par une analyse en profondeur du problème et la détermination d'une algorithmie la plus simple possible

J-M-L

Oui la simplification des conditions aide à emboîter des if mais surtout vous pouvez surtout « ajouter de la connaissance » en utilisant des états ce qui limite les actions possibles dans un état donné

Please do not PM me for help,  others will benefit as well if you post your question publicly on the forums
Pas de messages privés SVP

anthology

pour ça que j'ai tout écrit et que je relis régulièrement les conditions pour voir ce qui peut évoluer

j'ai beaucoup de conditions du faites que je récupère du frais dehors si la temp exter < a la temp inter
mais si la temp exter > a la temp inter mais que la temp des caves < a la temp inter alors je fait le freecooling via les caves

avec des choses comme, si je suis dans la caves, je bricole donc potentiellement des odeurs donc j'envoie pas vers la maison, j'envoie dehors

que des choses comme ca
c'est un gros freecooling qui va gérer au final pas mal de chose

j'essaye pour le moment de rassembler tout ce que je peut avoir besoin et pour ne pas '' saturer" je prefere voir autre chose (genre comment faire mes conditions) pour ne pas plus voir des choses logiques


dur a expliquer tout ca ;)


destroyedlolo

Somme toute, ton probleme est relativement classique (et j'ai une problématique similaire pour optimiser mes volets roulants).
Bref, je pense que tu veux tout de suite faire trop gros tout de suite.
Commence a expérimenter avec des trucs simple, avec une seule condition (quitte a ne faire de des simulation) : ca va te donner de petits blocs fonctionnelles qui répondent a des cas simples. Ensuite, comme avec un légo, tu regroupes tes petits blocs pour obtenir ta solution complete.

Ce que je veux dire, c'est qu'un bon principe est toujours de découper les gros pb en plus petits :)

anthology

effectivement, je vais regrouper par "bloc" pour essayer et après imbriquer tout ça
pour le moment je me renseigne sur les solutions et j'écrit mes conditions.

merci

Go Up