Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| en:cs:modelling_multi-phased_electrical_system_interconnexion [2020/08/07 14:29] – [Typescript code sketches] fraggle | en:cs:modelling_multi-phased_electrical_system_interconnexion [2024/04/18 20:39] (Version actuelle) – [Quick and dirty mathematics background and rationale] fraggle | ||
|---|---|---|---|
| Ligne 5: | Ligne 5: | ||
| We suppose that all the multi-phased electrical systems are properly balanced: $ \forall n \in \{1,2\}; Iph_{n} = Iph_{n+1} $. | We suppose that all the multi-phased electrical systems are properly balanced: $ \forall n \in \{1,2\}; Iph_{n} = Iph_{n+1} $. | ||
| - | Let's call $ A = (p_{a}, V_{a}, I_{a}, Iph_{a}) $ and $ B = (p_{b}, V_{b}, I_{b}, Iph_{b}) $ two multi-phased electrical systems where $ p_{a},p_{b} \in \mathbb{N} $ are the number of phases, $ V_{a}, V_{b} \in \mathbb{N} $ are the voltage per phase, $ I_{b} \in \mathbb{N} $ are the total intensity and $ Iph_{a}, Iph_{b} \in \mathbb{N} $ the intensity per phase in their respective system.\\ | + | Let's call $ A = (p_{a}, V_{a}, I_{a}, Iph_{a}) $ and $ B = (p_{b}, V_{b}, I_{b}, Iph_{b}) $ two multi-phased electrical systems where $ p_{a},p_{b} \in \mathbb{N} $ are respectively |
| - | We always have: $ I_{a} = p_{a} \times Iph_{a} $ and $ I_{b} = p_{b} \times Iph_{b} $. So the intensities properties can be deduced one from the other. | + | The intensities properties can be deduced one from the other: $ I_{a} = p_{a} \times Iph_{a} $ and $ I_{b} = p_{b} \times Iph_{b} $. |
| * $ A $ and $ B $ are interconnected serially : $ A \triangleleft \triangleright B $. | * $ A $ and $ B $ are interconnected serially : $ A \triangleleft \triangleright B $. | ||
| Ligne 22: | Ligne 22: | ||
| * $ I_{a} > I_{b} \land p_{a} < p_{b} \land p_{a}, p_{b} \in \{2,3\} \land I_{b} \ mod \ p_{a} \neq 0 \Rightarrow Iph_{A \triangleleft \triangleright B} \notin \mathbb{N} $ ; | * $ I_{a} > I_{b} \land p_{a} < p_{b} \land p_{a}, p_{b} \in \{2,3\} \land I_{b} \ mod \ p_{a} \neq 0 \Rightarrow Iph_{A \triangleleft \triangleright B} \notin \mathbb{N} $ ; | ||
| * $ I_{a} < I_{b} \land p_{a} > p_{b} \land p_{a}, p_{b} \in \{2,3\} \land I_{a} \ mod \ p_{b} \ne 0 \Rightarrow Iph_{A \triangleleft \triangleright B} \notin \mathbb{N} $ ; | * $ I_{a} < I_{b} \land p_{a} > p_{b} \land p_{a}, p_{b} \in \{2,3\} \land I_{a} \ mod \ p_{b} \ne 0 \Rightarrow Iph_{A \triangleleft \triangleright B} \notin \mathbb{N} $ ; | ||
| - | We can expose at leat two cases where $ Iph_{A \triangleleft \triangleright B} \notin \mathbb{N} $ if $ p_{a}, p_{b} \in \{2,3\} $ | + | We can expose at least two cases where $ Iph_{A \triangleleft \triangleright B} \notin \mathbb{N} $ if $ p_{a}, p_{b} \in \{2,3\} $ |
| Let's say you only have $ Iph_{a}, Iph_{b} $ in $ A $ and $ B $. We can deduce $ I_{a}, I_{b} $ from them.\\ | Let's say you only have $ Iph_{a}, Iph_{b} $ in $ A $ and $ B $. We can deduce $ I_{a}, I_{b} $ from them.\\ | ||
| Ligne 66: | Ligne 66: | ||
| <code javascript> | <code javascript> | ||
| - | export class ElectricityUtils | + | /** |
| - | | + | * Targeted to AC related values calculation. |
| + | */ | ||
| + | export class ACElectricUtils | ||
| + | static | ||
| return nbOfPhases * Iph; | return nbOfPhases * Iph; | ||
| } | } | ||
| - | | + | static |
| const powerPerPhase = V * Iph * cosPhi; | const powerPerPhase = V * Iph * cosPhi; | ||
| if (cosPhi === 1) { | if (cosPhi === 1) { | ||
| Ligne 79: | Ligne 82: | ||
| } | } | ||
| - | | + | static |
| - | return nbOfPhases * ElectricalUtils.calculatePowerPerPhase(V, Iph, cosPhi); | + | return nbOfPhases * ACElectricUtils.powerPerPhase(V, Iph, cosPhi); |
| } | } | ||
| - | | + | static |
| - | const power = ElectricalUtils.calculateAmpTotalFromPower(P, V, cosPhi); | + | const amperage |
| - | const powerPerPhase = power / nbOfPhases; | + | if (cosPhi === 1 && P % V === 0) { |
| - | if (power % nbOfPhases | + | return |
| - | return | + | |
| } | } | ||
| - | return Math.round(powerPerPhase); | + | return Math.round(amperage); |
| } | } | ||
| - | | + | static |
| - | const power = P / (V * cosPhi); | + | const amperage |
| - | if (cosPhi === 1 && P % V === 0) { | + | const amperagePerPhase = amperage / nbOfPhases; |
| - | return | + | if (amperage |
| + | return | ||
| } | } | ||
| - | return Math.round(power); | + | return Math.round(amperagePerPhase); |
| } | } | ||
| + | } | ||
| + | |||
| + | /** | ||
| + | * Targeted to DC related values calculation. | ||
| + | */ | ||
| + | export class DCElectricUtils { | ||
| + | static power(V: number, I: number): number { | ||
| + | return V * I; | ||
| + | } | ||
| + | |||
| + | static amperage(P: number, V: number): number { | ||
| + | const amperage = P / V; | ||
| + | if (P % V === 0) { | ||
| + | return amperage; | ||
| + | } | ||
| + | return Math.round(amperage); | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | AC electrical component interface: | ||
| + | |||
| + | <code javascript> | ||
| + | interface ElectricACComponent { | ||
| + | nPhases: number; | ||
| + | Iph: number; | ||
| + | V: number; | ||
| + | I?: number; | ||
| + | P?: number; | ||
| } | } | ||
| </ | </ | ||
| Ligne 118: | Ligne 150: | ||
| }; | }; | ||
| - | function | + | function |
| return { | return { | ||
| nPhases: Math.min(Car.nPhases, | nPhases: Math.min(Car.nPhases, | ||
| Iph: Math.min(Car.Iph, | Iph: Math.min(Car.Iph, | ||
| V: Math.min(Car.V, | V: Math.min(Car.V, | ||
| - | I: ElectricityUtils.calculateAmpTotal(this.nPhases, | + | I: ACElectricUtils.amperageTotal(this.nPhases, |
| - | P: ElectricityUtils.calculatePowerTotal(this.nPhases, | + | P: ACElectricUtils.powerTotal(this.nPhases, |
| }; | }; | ||
| } | } | ||
| Ligne 136: | Ligne 168: | ||
| const ChargingSchedulePeriod = { | const ChargingSchedulePeriod = { | ||
| startPeriod: | startPeriod: | ||
| - | limit: 15, // Sanity check: ensure the limit is below CarChargingStation.Iph | + | limit: 15, // Sanity check: ensure the limit is below getCombinedElectricObject(Car, |
| - | numberPhases: | + | numberPhases: |
| }; | }; | ||
| Ligne 143: | Ligne 175: | ||
| ====== Modelling multi-phased AC/DC electrical system ====== | ====== Modelling multi-phased AC/DC electrical system ====== | ||
| + | ===== AC modelling ===== | ||
| + | See first section. | ||
| ===== Rectifier modelling ===== | ===== Rectifier modelling ===== | ||
| - | |||
| FIXME | FIXME | ||
| + | ===== DC modelling ===== | ||
| + | FIXME | ||
| ====== Modelling multi-phased DC/AC electrical system ====== | ====== Modelling multi-phased DC/AC electrical system ====== | ||
| + | ===== DC modelling ===== | ||
| + | FIXME | ||
| ===== Inverter modelling ===== | ===== Inverter modelling ===== | ||
| - | |||
| FIXME | FIXME | ||
| + | ===== AC modelling ===== | ||
| + | See first section. | ||
| ====== References ====== | ====== References ====== | ||
| Composants symétriques : https:// | Composants symétriques : https:// | ||