text:
# How to demonstrate mathematically the conditions of reflection in transmission line?

We are all taught about transmission lines and its associates -- characteristic impedance, reflection, standing wave, etc. It is well known what happens when a transmission line is terminated with different types of impedances:

1) Open - reflection occurs

2) Shorted - reflection occurs but inverted

3) Equal to Zo - no reflection

4) Between Zo and open/short - partial reflection

So far, so good. Every textbook and other reference will tell you this. But I cannot find a straightforward explanation why it is like that. Some demonstrations show the charging of capacitors through inductors and how the end capacitor doubles voltage due to collapsed magnetic field in the inductor, etc., but I find it very confusing. So maybe a mathematical demonstration would be convincing.

How can we show mathematically, for instance, that when the load impedance Zl is equal to Zo then reflection is zero, and so on?

• 1 and 2 result from "how current works" combined with "conservation of energy", 3 by definition and 4 as mix of the previous. What's the question here? May 3 '20 at 19:40
• also, at least in the "basics of transmission line theory" scriptum from university, this was quite explicitly explained (both intuitively and through the boundary conditions of E-field being zero across a short, current density zero across an open) May 3 '20 at 19:50
• If the speed of light was infinite then no reflection. May 3 '20 at 21:38
• @MarcusMüller The question is about the mathematical explanation. Saying "how current works" and "conservation of energy" and "by definition" make it seem like these results are obvious and easy to define. They are not, and this question is perfectly valid. That loose explanation cannot hold up to scrutiny, so there is still a question here. May 4 '20 at 21:04
• @Andyaka Going even further than that, there could be no EM waves at all! May 8 '20 at 18:15

Surprised there aren't any proper answers yet. The question is asking about how to demonstrate this property mathematically, not intuitively. This is a great question, so let's derive some stuff.

Solve the Telegrapher's equations, to get the general form of the voltage and current on the line. For the lossless case, this is: $$v(z) = V_1 e^{-j\beta z} + V_2 e^{j \beta z}$$ For unknown complex "amplitude constants" V1 and V2, and constant beta, which is $$\beta = \omega \sqrt{LC}$$ And the current is $$i(z) = \frac{V1}{Z_0} e^{-j\beta z} - \frac{V2}{Z_0} e^{j\beta z}$$ Where we introduce the constant Z0, $$Z_0 = \sqrt{\frac{L}{C}}$$ Which comes out of the math.

Constants V1 and V2 are determined by the boundary conditions. The condition at the load gives: $$V_2 = \Gamma V_1$$ That is, the amplitude of the reflection is Gamma * V1. Gamma is called the reflection coefficient: $$\Gamma = \frac{R_L - Z_0}{R_L + Z_0}$$ When RL = Z0, Gamma = 0, and there is no reflected wave. When RL=0, Gamma is -1, implying full reflection with phase inversion (reflected wave out of phase with incident). When RL=infinity, Gamma is +1, implying full reflection with no phase inversion (reflected wave in phase with incident). The other results follow from plugging in values for Gamma.

Fundamentally, a distributed element or transmission line is a circuit element with a spatial dimension (call it z) such that, for real constants R, L, G, and C, and time- and space-dependent voltage and current V(t,z) and I(t,z), the following partial differential equations hold: $$\frac{\partial V}{\partial z} = -L \frac{\partial I}{\partial t} - RI$$ $$\frac{\partial I}{\partial z} = -C \frac{\partial V}{\partial t} - GV$$ These are called the telegrapher's equations, well-known PDEs describing transmission lines. Note that they are only PDEs because we have both time and space dependence.

If we limit ourselves to phasors, then V(t,z) and I(t,z) become v(z) and i(z), complex valued functions of only space. The Telegrapher's equations then become: $$\frac{d v}{d z} = -i(R+j\omega L)$$ $$\frac{d i}{d z} = -v(G+j\omega C)$$ For angular velocity omega, $$\omega = 2 \pi f$$ For assumed frequency f.

Great, ordinary differential equations. For simplicity, assume R = G = 0. The general solution to these equations is well-known; we find for v(z), $$v(z) = V_1 e^{-j\beta z} + V_2 e^{j \beta z}$$ For unknown complex "amplitude constants" V1 and V2, and complex constant beta, which is $$\beta = \omega \sqrt{LC}$$ (When R and G are not zero, beta becomes complex, with a real part the same as beta here, and an imaginary part representing attentuation with increasing z).

Using this expression, we can now solve for i, $$i(z) = \frac{V1}{Z_0} e^{-j\beta z} - \frac{V2}{Z_0} e^{j\beta z}$$ Where we introduce the constant Z0, $$Z_0 = \sqrt{\frac{L}{C}}$$

It now remains to determine the constants V1 and V2. These amplitude constants are determined by the particular problem at hand; specifically, we can provide two boundary conditions (e.g. V(0) = 1 and V(5) = 0), and then plug them into our expression for v(z) to find V1 and V2. Simple enough. To find boundary conditions, we use KVL and KCL, and Ohm's Law. KVL and KCL imply that at the boundary of the distributed element (where the transmission line connects to a lumped circuit) the current must be continuous and the voltage must be continuous. This is hugely helpful.

Let's solve the basic transmission line problem. This image shows the situation.

Note that the spatial coordinates only apply to the distributed element, and more particularly, to this distributed element. If there was another transmission line, it would have its own coordinate system.

For conventional reasons, make z=0 the end of the transmission line, right before the load RL, with +z in the direction shown, so that the beginning of the transmission line is at z = -length. We have then two boundary conditions. First, $$\frac{v(0)}{i(0)} = R_L$$ Due to continuity at the boundary and Ohm's law. Second, using KVL, $$\frac{V_s - v(-l)}{i(-l)} = R_s$$ Where l is the length of the line. We have our boundary conditions, and we can solve for the amplitude constants V1 and V2 (note that we haven't clarified what V1 and V2 represent intuitively, only that they are mathematical constants inherent in the problem as we constructed it).

From the first condition, we can substitute in v(z) and i(z) setting z=0 (recall that we have these, from above) to get: $$\frac{v(0)}{i(0)} = \frac{V_1 e^0 + V_2 e^0}{V_1/Z_0 e^0 - V_2/Z_0 e^0} = R_L$$ So: $$Z_0 \frac{V_1 + V_2}{V_1 - V_2} = R_L$$ Which gives, by some algebra: $$V_2 = \frac{R_L - Z_0}{R_L + Z_0} V_1$$ We will denote that constant fraction by Gamma, as shown: $$\Gamma = \frac{R_L - Z_0}{R_L + Z_0}$$ So that $$V_2 = \Gamma V_1$$ And our expression for v(z) becomes: $$v(z) = V_1(e^{-j\beta z} + \Gamma e^{j\beta z})$$ Now we're all done.

Let's interpret our result now (which, mind you, we have refrained from doing to avoid projecting our own intuition on something mathematical). v(z) is a phasor, meaning its "amplitude" is actually the amplitude of a sinusoidal signal, in time, varying with frequency w. The phase is the phase angle of the sinusoid. Essentially, v(z) represents the envelope of the actual voltage on the line, which has a frequency w.

The complex exponential in the expression for v(z) can be expanded as $$e^{-j\beta z} = \cos \beta z - j \sin \beta z$$ Which makes the 'oscillating' or 'wave' nature of the complex exponential terms clear. What we're seeing is, as we look at different positions z, the amplitude and phase of the phasor change, and they change sinusoidally, giving an envelope which looks like a sine wave, and as time goes in, the whole envelope moves to the +z direction. This is the "forward traveling wave."

By similar reasoning, when we have $$e^{j\beta z}$$
(with +j instead of -j), the same thing occurs, but now the envelope waveform slides backwards, a "backward traveling wave." And so, we can rewrite v(z) as $$v(z) = V^+(z) + V^-(z)$$ Where $$V^+(z) = V_1 e^{-j\beta z}$$ Is the forward-traveling wave with amplitude V1, and $$V^-(z) = \Gamma V_1 e^{j \beta z}$$ Is the backward-traveling wave, often called the reflection.

We see that the amplitude of the reflection is Gamma * V1. And, in turn, Gamma is: $$\Gamma = \frac{R_L - Z_0}{R_L + Z_0}$$ And Z0 is: $$Z_0 = \sqrt{\frac{L}{C}}$$ Which is characteristic of the line (the characteristic impedance, called an impedance due to its similarity to the fact that it relates v(z) and i(z), but note that it does not have units of ohms). When RL = Z0, Gamma = 0, and there is no reflected wave. When RL=0, Gamma is -1, implying full reflection with phase inversion (reflected wave out of phase with incident). When RL=infinity, Gamma is +1, implying full reflection with no phase inversion (reflected wave in phase with incident). The other results follow from plugging in values for Gamma.

• Exactly what I'm looking for. Now I can convince myself. Thank you very much! May 5 '20 at 7:27

There are lots of mathematical descriptions to be found out there, so maybe a something in between mathematical and intuitive would be useful. The key point is to remember that the voltage or current at any point on the transmission line is a sum of the forward-propagating ('incident') and backward-propagating ('reflected') waves. This is true at the termination point as well.

1. Open termination: The current has to be zero, the voltage does not. Therefore, to make the current at the termination point zero, the reflected wave has have equal magnitude, opposite sign current at the termination point. Therefore the reflected wave has opposite sign current, same sign voltage, as the incident wave.

2. Shorted termination: The voltage has to be zero, the current does not. Therefore, to make the voltage at the termination point zero, the reflected wave has to have equal magnitude, opposite sign voltage at the termination point. Therefore, the reflected wave has opposite sign voltage, same sign current, as the incident wave.

3. Equal to Zo: If you did not have the termination point, but instead the line continued, the impedance of the rest of the line measured at that same point (assuming the line went on to infinity) would be Zo. So if you terminate it with Zo instead, the voltage and current should behave in the same way as if the line continued off to infinity.

Would have made a comment, but don't have the rep.

Interesting to see a question for a more mathematical explanation considering it's usually the intuition for transmission lines which isn't there for most learners.

"Fundamentals of Electronics 101" should have equipped you with the basic tools for understanding current, energy conservation laws and simple relationships.

"Electromagnetism 101" should have equipped you to work with transmission lines with/without loss. Expressing a signal as two sinusoids travelling in opposing directions, through negating the sign applied to the propagation constant (the 180° phase shift a product of the boundary conditions present at the load). A kinetic example of a boundary condition being a point held stationary on a string.

I'll be the first to admit that transmission line theory (and for that matter, all the physics which holds up electromagnetics) can be intimidating, but it's (genuinely) quite simple.

The reflection properties of transmission lines are a trivial result of some "EM 101" theory so it's probably best to hold off the maths for the moment. I recommend Ulaby and Ravaioli's Fundamentals of Applied Electromagnetics as a good primer.

• I'd go even further and say that the reflection properties of transmission line are a trivial result of classical wave mechanics. Nothing like two oscillating ropes of different thickness can make transmission, reflection and impedance matching intuitive. There is a wonderful video on youtube where prof. Shive demonstrate his machine, basically showing the propagation of torsional waves, which can be enlightening. May 4 '20 at 16:36
• Indeed, and I would see classical mechanics and physics as a prerequisite for university-level electronic engineering, thus my response. @SredniVashtar May 4 '20 at 16:48
• Wave mechanics has little to do with classical mechanics, and everything to do with partial differential equations. A course in PDEs is one of the most useful courses an EE can take when doing RF/microwave stuff. PDEs, electromagnetics, and then intro to RF circuits is a rock-solid background May 4 '20 at 21:00
• Futile pedantries and discussion aside, yes, I'd like to think you'd have done college calculus before tackling Telegrapher's & wave equations. :) May 8 '20 at 17:33

How can we show mathematically, for instance, that when the load impedance $$\Z_L\$$ is equal to $$\Z_0\$$ then reflection is zero

• Assume a transmission line (t-line) of characteristic impedance $$\Z_0\$$
• Assume an applied voltage ($$\V_F\$$) at one end of the line
• From the above, the current ($$\I_F\$$) that flows equals $$\V_F\$$ divided by $$\Z_0\$$

When the voltage and accompanying current reach the end of the t-line and meet $$\Z_L\$$ there will be a violation of ohm's law if $$\Z_0\$$ does not equal $$\Z_L\$$.

For instance, if $$\Z_L\$$ > $$\Z_0\$$ we have to consider the mechanism that prevents the violation of ohm's law. As a thought experiment we can: -

• Somehow make the voltage arriving at $$\Z_L\$$ a bit bigger and, at the same time
• Somehow make the current arriving at $$\Z_L\$$ a bit smaller
• The modified voltage and current is "adjusted" in such a way so as to produce a ratio suitable for $$\Z_L\$$

Or, algebraically we could say: -

$$\dfrac{V_F + \delta V_F}{I_F - \delta I_F} = Z_L$$

$$\therefore \dfrac{V_F}{I_F}\cdot \dfrac{1 + \delta}{1 - \delta} = Z_L\longrightarrow Z_0\cdot \dfrac{1 + \delta}{1 - \delta} = Z_L$$

$$\text{Hence,}\hspace{1cm}\delta Z_0 +\delta Z_L = Z_L - Z_0$$

$$\text{And,}\hspace{1cm}\delta = \dfrac{Z_L-Z_0}{Z_L+Z_0}$$

But, of course, we call $$\\delta\$$ by it's usual name (reflection coefficient) $$\\Gamma\$$. $$\\delta\$$ is just a device I invented to get through the thought experiment.

However, the important subtlety that prevents an ohm's law violation is the "bit" we add to voltage and the "bit" we subtract from current ($$\\delta V_F\$$ and $$\\delta I_F\$$). If we examined their ratio we would find it is $$\Z_0\$$. This means that they can naturally flow (together) back into the transmission line because they have the perfectly correct ratio to do so.

That is called a reflection and travels from load to source.

Clearly, if $$\V_F\$$ and $$\I_F\$$ were originally of a ratio that matched the load ($$\Z_0\$$) impedance (right from the start), we wouldn't need to set up the algebra that figured out how to deal with the unwanted signals and, there would be no thoughts of violating ohm's law nor talk of reflections.


text:
mersenneforum.org Ye Olde Mystery economic theatre 2014
 Register FAQ Search Today's Posts Mark Forums Read

 2014-06-02, 02:09 #45 Fusion_power     Aug 2003 Snicker, AL 7·137 Posts Quite a bit of this makes sense, but don't expect anything to happen, it is just pie in the sky thinking. http://rooseveltinstitute.org/sites/..._Institute.pdf
2014-06-02, 02:52   #46

"Kieren"
Jul 2011
In My Own Galaxy!

236518 Posts

Quote:
 Originally Posted by Fusion_power Quite a bit of this makes sense, but don't expect anything to happen, it is just pie in the sky thinking. http://rooseveltinstitute.org/sites/..._Institute.pdf
Many thanks for this paper! Of course, I am not killing the fatted calf, nor breaking out the 100 year old single malt, either. (The foregoing falsely implies that I have either calf or whiskey.)

2014-06-02, 15:10   #47

"Richard B. Woods"
Aug 2002
Wisconsin USA

11110000011002 Posts

Quote:
 Originally Posted by Fusion_power Quite a bit of this makes sense, but don't expect anything to happen, it is just pie in the sky thinking. http://rooseveltinstitute.org/sites/..._Institute.pdf
The paper's glaring flaw, rendering it useless, is that it takes no account of some recent and current political realities.

I see no acknowledgement that current GOP strategy is, in general, to oppose any tax increase because of the "starve the beast" principle, and, in particular, to oppose any tax increase on the wealthy. I see no acknowledgment that this will continue as long as the very-wealthy provide the major funding for GOP political campaigns, aided by recent Supreme Court decisions.

The paper's proposed "way out" seems to assume that both political sides have good-faith rational intent to reduce the US budget deficits. There's no acknowledgment that the GOP currently places a higher priority on maintaining the federal deficit and wealth-distribution inequity at roughly their current levels, for strategic and ideological reasons, than on improving the US budget situation.

The paper's ignoring of the past four decades of conservative political strategy and tactics guided by multibillionaire-funded right-wing think tanks does indeed render it "pie in the sky thinking" of no practical value. Indeed, this paper may be worse than useless because it distracts attention from the real causes of the situations it purports to address so rationally.

If it did not explicitly state at the top that "... these budgetary crises are the result of political and not economic failings", this paper might deserve to be considered merely naive. But since it does so state, one wonders whether its author actually has such shallow understanding of "political failings", or whether his paper were crafted for distraction purposes. (I suspect the former.)

Last fiddled with by cheesehead on 2014-06-02 at 15:45

2014-06-02, 21:19   #48
ewmayer
2ω=0

Sep 2002
República de California

5·7·331 Posts

Quote:
 Originally Posted by cheesehead I see no acknowledgment that this will continue as long as the very-wealthy provide the major funding for GOP political campaigns, aided by recent Supreme Court decisions.
It's not just the GOP whose campaign funding is anything but "grassroots". The only real difference is the lies peddled to try to appeal to the respective "bases".

Quote:
 The paper's proposed "way out" seems to assume that both political sides have good-faith rational intent to reduce the US budget deficits. There's no acknowledgment that the GOP currently places a higher priority on maintaining the federal deficit and wealth-distribution inequity at roughly their current levels, for strategic and ideological reasons, than on improving the US budget situation.
In DC, any talk of budget reform, whether it be couched in terms of "austerity" or "reducing wealth inequality", is just that - talk. The funny thing about the Neocons and Neolibs is that they are virtually indistinguishable from each other in their actions. Both parties are utter creatures of the warmongering, financialization-addicted kleptocratic superstate.

These partisan snipe-and-bicker theater plays appear intended mainly to keep the rabble distracted from the deeper truth, namely that government of/by/for the people is long gone, if it ever existed in something other than myth to begin with.

Last fiddled with by ewmayer on 2014-06-02 at 21:52 Reason: add link

 2014-06-03, 06:43 #49 ewmayer ∂2ω=0     Sep 2002 República de California 1158510 Posts A little histrionic-headline amusement courtesy of a well-known "economic collapse any second now!" blog which shall not be named until at least halfway through the following link: Guest Post: U.S. Gasoline Consumption Plummets By Nearly 75% | Zero Hedge Another "Zero Hedge = Zero Fact Checking" classic. As shown by this recent-ish Mish piece with a set of Tim Wallace charts on US gasoline consumption trends, the great recession hammered that trendline pretty good, but -75%? Not even close.
 2014-06-08, 12:47 #50 Fusion_power     Aug 2003 Snicker, AL 7×137 Posts News this weekend is trumpeting 217,000 new jobs in the U.S. which must signal that the economy is bounding upward. Not so fast. That 217,000 represents just about the same amount as the number of new entrants into the job market. In other words, the number of jobless people did not go down, it stayed about the same. Last fiddled with by Fusion_power on 2014-06-08 at 12:47
2014-06-10, 01:20   #51
ewmayer
2ω=0

Sep 2002
República de California

5×7×331 Posts

Quote:
 Originally Posted by Fusion_power News this weekend is trumpeting 217,000 new jobs in the U.S. which must signal that the economy is bounding upward. Not so fast. That 217,000 represents just about the same amount as the number of new entrants into the job market. In other words, the number of jobless people did not go down, it stayed about the same.
On that subject, this puff piece by John Cassidy in The New Yorker rightly gets taken to the woodshed by NC readers:

“From the perspective of ordinary folks, it feels like we’ve been [sic] experienced six and a half lost years.” That one sentence explains everything I hate about today’s post-Tina New Yorker, down to the grotesque copy editing #FAIL. Sad. -- Lambert Strether

Completely fails to mention the change in job composition from pre-crisis till today. ... We have the same number of jobs as we used to: yeah! But what’s that you say? The full-time jobs we lost have been replaced with low-wage, no-bennie, part-time jobs? Shhhh! You’ll scare away the confidence fairy! -- diptherio

Another fine NC piece today:

Quote:

Last fiddled with by ewmayer on 2014-06-10 at 01:22 Reason: ficks das lynx

2014-06-11, 23:40   #52

"Richard B. Woods"
Aug 2002
Wisconsin USA

170148 Posts

Quote:
 Originally Posted by ewmayer Another fine NC piece today: Larry Summers’ Contradictory and Dishonest Defense of Administration’s Bank-Focused Crisis Response
Yes, indeed! Best explanation I've yet seen in one place for what I asked in my "Alternate scenarios for post-Sept. 15 2008" thread. :-)

 2014-06-16, 01:11 #53 Xyzzy     "Mike" Aug 2002 5×7×227 Posts
2014-06-20, 02:40   #54
ewmayer
2ω=0

Sep 2002
República de California

5×7×331 Posts

A Horror-Show Called “Fed-Gate” May Be Coming To Your Bond Fund Soon | David Stockman -- More yield-chasing madness resulting from the Fed`s permaZIRP bank subsidy. Readers have likely heard the "corporations are sitting on record amounts of cash" meme in the business news -- well, they have also been issuing massive amounts of debt. High-quality companies have been able to issue bonds at ultra-low yields and use the proceeds to fuel a record binge of share buybacks ... at the low-quality end of things, even junk bonds have had their interest rates slashed enough to lead to them substituting for what used to be principal-guaranteed money market instruments, as Stockman describes. This will end badly, very badly.

World-Cup-related: This is a reposting of a reader comment by DakotabornKansan over at NC:
Quote:
 Neoliberalism gone wild… Dave Zirin’s dispatches from Brasil’s World Cup and its victims have been excellent. http://www.thenation.com/blogs/dave-zirin# Having spent some time in Brasil, I always remember the following quote by Eduardo Galeano: “Where opulence is most opulent . . . misery is most miserable.” An end result of neoliberalism: “Need Food Not Football: Brazil’s Anti-Fifa World Cup Graffiti” http://www.graphicdesign.com/article.../#.U6MEP8JOWlh Neoliberalism wins through the strength of its useful idiots: “A population too busy worrying about their financial future, and seeking escapism in narcissistic and escapist pursuits, is a wonderful thing for those that wish to rule over them. Better for them to be following the latest clothing tendencies of famous personalities, or wondering who will win the latest singing competition, or sharing the minutiae of their lives with others, than spending time questioning why they keep falling behind financially, what right their country has to intervene in the politics of others, or why nothing ever seems to be done about climate change. Better for the youth to be rebelling through superficial choices rather than questioning the underlying rules by which their future will be governed. At a time when more than ever a questioning of the direction that society is taking, and the assumptions that are driving it, is required society is mis-served by a media overwhelmingly selling yet more stuff and celebrating those that can consume the most. When citizens do stray from the cultural script, as with the Occupy Wall Street movement, they are treated more as entertainment by the media, and then squashed by the state when they do not disappear naturally or cannot be co-opted. Then lost down the media memory hole in the same way that the Tiananmen Square protests were, as normal programming was resumed. Better for the masses to keep celebrating their own slow-motion murder, and the elites their own suicide.” – Roger Boyd, “Kamikaze Culture,” http://www.resilience.org/stories/20...mikaze-culture

2014-07-06, 17:53   #55

"Richard B. Woods"
Aug 2002
Wisconsin USA

22×3×641 Posts

It's-not-just-from-Consumers-Union-any-more dept.:

"How Students at a U.S. University Borrowed $31 Million Less " Quote:  A simple letter from Indiana University led its students to reduce borrowing by far more than the national average. Amid the furor over the$1.2 trillion in U.S. student debt, the seven-campus system decided to tell students annually before they take out loans for the next year what their monthly payment would be after graduation. Federal undergraduate Stafford loan disbursements at the public university dropped 11 percent, or \$31 million, in the nine months that ended March 31 from a year earlier, according to Education Department data. That’s more than fivefold the 2 percent decline in outlays to four-year public schools nationally. . . . Debt Literacy The letters, which Indiana began sending in the 2012-2013 academic year, are part of an effort to expand students’ financial-aid literacy. The schools, which have a combined 95,000 undergraduates, also started a personal finance course, peer-to-peer advising and added more information to the website. The letters are sent out mostly by e-mail before students take loans for the next year, Kennedy said. . . .

 Similar Threads Thread Thread Starter Forum Replies Last Post ewmayer Soap Box 156 2019-12-14 22:39 ewmayer Soap Box 42 2017-12-30 06:07 ewmayer Soap Box 90 2017-01-01 01:46 ewmayer Soap Box 200 2015-12-31 22:49 Fusion_power Soap Box 309 2014-01-17 20:51

All times are UTC. The time now is 23:37.

Sat Jan 23 23:37:25 UTC 2021 up 51 days, 19:48, 0 users, load averages: 2.49, 2.48, 2.29

format: plain


text:
# Biblio

Found 1269 results
2014
, Accounting for selection effects in the BH-bulge relations: no evidence for cosmological evolution, \mnras, vol. 438, pp. 3422-3433, 2014.
, Accretion onto Planetary Mass Companions of Low-mass Young Stars, \apjl, vol. 783, p. L17, 2014.
, The Accretion Rate Independence of Horizontal Branch Oscillation in XTE J1701-462, \apj, vol. 786, p. 119, 2014.
, An Analytical Model of the Large Neutral Regions during the Late Stage of Reionization, \apj, vol. 781, p. 97, 2014.
, Astrometric calibration of the Xuyi Schmidt Telescope Photometric Survey of the Galactic Anti-center (XSTPS-GAC), Research in Astronomy and Astrophysics, vol. 14, pp. 456-470, 2014.
, The Black Hole Mass Scale of Classical and Pseudo Bulges in Active Galaxies, \apj, vol. 789, p. 17, 2014.
, Braking PSR J1734-3333 with a possible fall-back disk, Research in Astronomy and Astrophysics, vol. 14, pp. 85-92, 2014.
, Chemical compositions of six metal-poor stars in the ultra-faint dwarf spheroidal galaxy Boötes I, \aap, vol. 562, p. A146, 2014.
, Clustering of Local Group Distances: Publication Bias or Correlated Measurements? II. M31 and Beyond, \aj, vol. 148, p. 17, 2014.
, Clustering of Local Group Distances: Publication Bias or Correlated Measurements? I. The Large Magellanic Cloud, \aj, vol. 147, p. 122, 2014.
, A CO observation of the Galactic methanol masers, \aap, vol. 567, p. A40, 2014.
, CO/H₂ Abundance Ratio \ap 10$^–4$ in a Protoplanetary Disk, \apj, vol. 794, p. 160, 2014.
C. Li and Li, L., Constraining fast radio burst progenitors with gravitational lensing, Science China Physics, Mechanics, and Astronomy, 2014.
, Correlations between Optical Variability and Physical Parameters of Quasars, Journal of Astrophysics and Astronomy, 2014.
, Cosmic Ray Propagation in Galactic Turbulence, \apj, vol. 782, p. 36, 2014.
, Deep spectroscopy of the M$_V$ \tilde -14.8 host galaxy of a tidal disruption flare in A1795, \mnras, vol. 444, pp. 866-873, 2014.
, The diversity of quasars unified by accretion and orientation, \nat, vol. 513, pp. 210-213, 2014.
, Doppler probe of accretion onto a T Tauri star, \aap, vol. 568, p. L10, 2014.
, A Double Neutron Star Merger Origin for the Cosmological Relativistic Fading Source PTF11agg?, \apjl, vol. 781, p. L10, 2014.


text:
# DISQUS for Joomla

In the process of getting my new Joomla! based website up and running, I wanted to add a comment system [Note: My website no longer has a Joomla! backend]. As usual, every free option available had it's own quirks. Some had visual issues, some didn't support threaded replies, and some had conflicts with other Joomla extensions I was using. I ended up liking the DISQUS comment system for Joomla! v1.1 by JoomlaWorks. It integrates the free comment management system, DISQUS, into a site's articles. While I did have to tweak my site template a bit to prevent its JavaScript generated content from drawing over my footer, it covered the rest of my needs.

After testing out the plugin for a while, I started to notice a large issue. Anytime an article was viewed with a different URL, it ended up using a different comment thread. In Joomla!, articles can be seen under different URLs for a number of reasons including changing search engine friendly (SEF) URL settings, recategorizing an article, changing your menu, or viewing an article split into multiple pages. Dissapointed to find yet another problematic plugin, I decided to find the root of the problem and fix it.

# Plugin Overview

The plugin is based around a file called 'jw_discus.php'. After installing the extension, you can find it in the 'plugins/content/' folder of Joomla. The file's purpose is to provide the proper DISQUS code in the proper locations as Joomla! generates the site content. This results in two main tasks.

1. During the  "blog view", it needs to generate a link to view the article comments. This view is what you normally see on the front of a Joomla website where a short introduction is displayed per article followed by a "Read more..." link to view the full content.
2. During the "article view", it needs to generate a link to the article comments at the top, and needs to generate the actual article comments at the bottom.

# Improving the code

The crux of the problem was in the comment generation code. In article view mode, the following code would return the HTML for displaying comments.

return '
  View the forum thread.

';

This creates the default code block supplied by DISQUS to set up your website. It may also have been the only option available when the plugin was written. This tells DISQUS's 'embed.js' file to generate the comment display inside the HTML element with id 'disqus_thread'. You can see the 'disqus_thread' div tag on the second line.

By default, the 'embed.js' script will use the current URL as an internal identifier of the comment thread. If it has never seen this identifier (your article URL), it will create a new thread for it. Due to this logic, we will be accessing different comment threads for every different URL regardless of whether or not they show the same article.

A similar problem can occur with selecting a name for the comment thread (the name is used on the DISQUS community page when listing your threads). When creating a new thread, DISQUS will name it based on the title of the page it was created from. If we have a multi-page article set up and the first commenter posted from page 2, we would end up with the title of page 2 as our thread title instead of the title of the article itself. At the moment, this isn't our worst problem because DISQUS will end up giving the second page a new thread anyway due to its different URL!

Lets be optimistic and assume we will find a way to solve our first two issues. This still leaves one final problem to bite us. The DISQUS community page also needs a way to link back to the article a thread belongs to. As you might guess, it stores of the URL from which the article was first commented on. If the first comment occured on page 2 of a multi-page article, the DISQUS listing for that comment thread will always link back to page 2. This can get even worse if you were to recategorize your article or maybe shuffle around your menus which could then break all of the links from DISQUS back to your articles.

Fortunately, DISQUS has provided us with the means to solve all of our issues. The 'embed.js' script can actually be parameterized with a number of options including a user specified article identitfier, article title, and article URL. Unfortunately, these parameters are a bit hidden away and it takes some searching to find out that they exist. We need to declare our parameters as global variables before refrencing in the 'embed.js' script. The script will then read in our global settings to change how it behaves. This is a shady manner of parameter passing, but I suppose such is the nature of web programming.

In Joomla!, every article you create gets its own unique number (it won't even reuse numbers from articles that you deleted in the past). This becomes a prime canditate for our DISQUS comment thread identifier. Rather than using just the number itself, we will prefix it with 'JoomlaArticleId_'. This will help prevent confusion with other non Joomla! article pages that you might be using DISQUS for. We can use the disqus_identifier parameter to set the value.

To generate the correct thread title, we can ussually just assign the article title. The only exception to this rule is when we are in a multi-page article. In this case, Joomla! will have appended ' - Your_Page_Title' to the article title. After removing the appended text, we can use the disqus_title parameter to set the value.

For the URL, we are going to do something a bit sneaky for the time being (see the end of this article for future improvements). We want to make sure our URL links to the first page of a multi-page article, and that it doesn't break when we change our site's menus or recategorize the article. To do this, we can tell Joomla! to load up an article by its id number through some URL based parameters (this will even work if SEF is enabled on your Joomla! site). The view parameter can be set to article so that we load up a single article (rather than a category or section) and the id parameter can be set the the article number. For example, if we had Joomla! set up at 'http://www.example.com/Joomla/', we could open article number 34 with 'http://www.example.com/Joomla/?view=article&id=34'. We can now set the disqus_url parameter to our generated URL.

Below you will see the updated code with all of our changes along with the license it is released under.

/******************************************************************************
http://www.ryanjuckett.com/

GNU General Public License, version 2
******************************************************************************/

// this will be prefixed to the article id to create the unique DISQUS thread
// identifier
$identifier_prefix = "JoomlaArticleId_"; // build a string of parameters for the DISQUS script$disqus_params = "";

// The short name is used to identify your forum within disqus
$disqus_params .= 'var disqus_shortname = "' .$disqus_user . '";';

// Use the unique article id to create a DISQUS identiefier. This lets us keep
// the same comment thread for each page of a multi-page article, for when SEF
// is enabled, or for when a pages section/category changes.
$disqus_params .= 'var disqus_identifier = "' .$identifier_prefix
. $row->id . '";'; // Make sure the article title is used as the discus title. This prevents odd // titles from being created when commenting from a multipage article after // the first page. To extract the base title, we need to remove any existing // page title suffix.$articleTitle = $row->title; if( !empty($row->page_title) )
{
// The article title has been extended with ' - ThePageTitle'.
// Find the suffix at the end of the full title and remove it.
$realTitleLen = strrpos($row->title, ' - '.$row->page_title ); if($realTitleLen != FALSE )
{
$articleTitle = substr($row->title, 0, $realTitleLen ); } }$disqus_params .= 'var disqus_title = "' . $articleTitle . '";'; // The disqus_url parameter determines the URL that the DISQUS community page // uses to link back to the article. We will grab the article directly by its // ID rather than using // JRoute::_(ContentHelperRoute::getArticleRoute($article->slug,
//                                                $article->catslug, //$article->sectionid))
// which would process SEF URLs. If we shuffle our site organization around,
// old SEF based might no longer work. Doing it this way will make sure the
// link remains valid due to the Joomla article id remaining unique.
$disqus_params .= ' var disqus_url ="' . JURI::base() . '?view=article&id=' .$row->id . '";';

// Declare disqus parameters and embed the disqus logic
return '
   View the forum thread.


text:
Choose the correct alternative among the following : the class width of the class interval 133-139 is,

4 views
Choose the correct alternative among the following :
the class width of the class interval 133-139 is,
A. 3
B. 5
C. 6
D. 4

by (121k points)
Correct Answer - A


text:
2021
Activity report
Project-Team
SYCOMORES
RNSR: 202124119E
Research center
In partnership with:
Université de Lille, CNRS
Team name:
Symbolic analysis and Component-based design for Modular Real-Time Embedded Systems
In collaboration with:
Centre de Recherche en Informatique, Signal et Automatique de Lille
Domain
Algorithmics, Programming, Software and Architecture
Theme
Embedded and Real-time Systems
Creation of the Project-Team: 2021 October 01

# Keywords

• A2.1.9. Synchronous languages
• A2.3.1. Embedded systems
• A2.3.3. Real-time systems
• A2.4.1. Analysis
• A2.4.3. Proofs
• A7.2. Logic in Computer Science
• B6.6. Embedded systems

# 1 Team members, visitors, external collaborators

## Research Scientists

• Patrick Baillot [CNRS, Senior Researcher, from Oct 2021, HDR]
• Vlad Rusu [Inria, Researcher, from Oct 2021, HDR]

## Faculty Members

• Giuseppe Lipari [Team leader, Université de Lille, Professor, from Oct 2021]
• Clement Ballabriga [Université de Lille, from Oct 2021, Associate Professor]
• Julien Forget [Université de Lille, Associate Professor, from Oct 2021]

## PhD Students

• Fabien Bouquillon [Université de Lille, from Oct 2021]
• Frederic Fort [Université de Lille, from Oct 2021]
• Sandro Grebant [Université de Lille, from Oct 2021]
• Ikram Senoussaoui [Université Lille and Université Oran 1 (Algérie), From oct 2021]

• Nathalie Bonte [Inria, from Oct 2021]

# 2 Overall objectives

The SYCOMORES project-team aims at developing a framework for the design and the analysis of embedded real-time systems based on symbolic analysis of parametric components.

To reduce the complexity, we will use a modular approach to the design, development and analysis of ERTS. In particular, we will decline modularity along several directions (Figure 1):

• a component-based design and development methodology; a ERTS system is decomposed in generic, configurable and reusable components that can be combined and instantiated in the final system;
• parametric specification of inputs, configurations and properties; a component is characterised by its interface that will be specified using parameters whose concrete values are unknown at design time;
• symbolic analysis of components; by using symbolic techniques, the properties of a component will be proved correct at design time even when parameters have unknown values.

Finally, we will propose composition operators to integrate a set of components into a larger component, or into a complete system. The operators will allow to (partially or totally) instantiate parameters and connect component interfaces guaranteeing their compatibility and preserving their properties.

To this end, we will investigate several challenging problems at three different levels of abstraction, as shown in Figure 2. At the application level, we will focus on multi-rate data-flow programming languages like Scade  5, Simulink  19, or in our case Prelude21, as they are widely used in safety-critical domains like avionics and automotive. We want to tackle the notions of component, parametric interfaces and contracts in the ERTS context. We will investigate modular code generation (compilation) of a synchronous component (as opposed to a synchronous program) with real-time constraints. In the long term, we would like to prove the semantic preservation of properties of the program during compilation by using interactive proof systems.

The compiler will produce the component implementation as a set of concurrent real-time tasks with their scheduling parameters. At this level, we will work on parametric and modular worst-case execution time (WCET) analysis of tasks' code, and symbolic schedulability analysis of the components' tasks. We will also work on analysis of the correctness of system integration, and safe dynamic replacement/upgrade of components.

At the lowest level, we will work on the scheduler implementation in the Operating System. We will propose a hierarchical scheduling architecture, in order to provide temporal isolation to real-time components. We will formally prove the scheduler properties by using modular proof techniques in the Coq proof assistat 27, and we will provide a correct-by construction implementation of the scheduler by using code generation techniques from a Coq program specification.

As a cross-cutting activity, since safety will be a prime concern in our project, we will rely on formal methods throughout the project: synchronous programming languages, abstract interpretation, symbolic analyses and proof techniques. Our research objectives will be tightly coupled to ensure the safety of the final framework.

For instance, our tools and techniques will share proof facts (e.g. timing analysis is correct only if schedulability analysis and WCET analysis are both correct), models (e.g. the schedulability analysis, programming language and WCET analysis must share the same task model), and results (e.g. the WCET and schedulability results will impact the program design).

# 3 Research program

We detail the objectives by categorising them according to 3 major research axes. Within each axis, we distinguish Short Term (1-3 years) and Medium Term (2-4 years) objectives, and we describe how we will achieve them. We also detail how the objectives are related to one another. Finally, we present our Long Term (4+ years) objectives.

## 3.1 Axis 1: Design and implementation of RT-components

In this research axis we will focus on the programming of RT-components. We will cover programming aspects at different levels of the development process, from high-level design, to low-level implementation on distributed heterogeneous embedded platforms.

### 3.1.1 Short term

#### (A1.S1) Synchronous languages

We will continue working on synchronous programming languages for generating correct-by-construction code. In particular, one of the objectives of the ANR projet CORTEVA (which is coordinated by G. Lipari, started in Jan. 2018, and will last for 48 months) is to extend the synchronous language Prelude21 to address systems with extremely variable execution time.

The language is being extended (its semantics and its compilation) with constructs to dynamically change the behaviour of a subset of the system based on rare events, like the occurrence of a large execution time of a task. The proposed extensions will guarantee that the system will respect correctness properties even in the presence of such rare events.

Dependencies: We rely on Parametric WCET to detect the occurence of large execution times (A2.S1).

#### (A1.S2) Scheduling of complex task models

Modern hardware platforms consist of heterogeneous processors with a large degree of parallelism. For example, the NVIDIA Jetson AGX Xavier chipthat is used in modern ADAS systems in the automotive domain, comprises 2 DLAs (Deep Learning Accelerators), 1 integrated GPU (Graphical Processing Unit), and 8 ARM 57 processing cores. Efficiently programming ERTS for such hardware is not easy, as the complexity of the interaction between software and hardware resources makes it difficult to predict performance. Building predictable real-time applications on these platforms requires appropriate programming models. In the recent literature, many graph-based task models have been proposed to exploit the parallelism of such architectures  26, 9. Such models are neither based on components, nor are they parametric. It is our intention to investigate the possibility to apply component-based techniques to such complex task models.

### 3.1.2 Medium term

#### (A1.M1) Parametric scheduling analysis of Real-Time components.

Analyzing the schedulability of a system under variations of the task parameters is a complex problem: the complexity of the analysis grows exponentially with the size of the system, and it explodes for medium-to-large sized systems.

The problem can be decomposed by analysing the schedulability of smaller real-time components under variation of some parameters. The idea is to follow a Resource Reservation strategy, where components are assigned and guaranteed a fraction of the system resources. In this way, the temporal behaviour of one component is isolated from the interference of other components.

First, we will introduce the notion of parametric interface for a component modelled as a multi-rate data-flow program. The interface will specify the temporal properties and constraints on the input/outputs of a component: periodicity and deadline constraints, dimension of the buffer for communicating with other components, and communication protocols.

To analyse the schedulability of a components under the hypothesis of variation of its parameters (the ones specified in the interface as well as the WCET of the tasks), we will extend the sensitivity analysis techniques, first proposed by Bini et al. 11, 10 to more complex task models and to hierarchical scheduling systems. The objective is to find the range of the parameters for which the component is schedulable.

#### (A1.M2) Predictable communication costs.

ERTS are increasingly being built using multicore hardware. This transition is however still significantly delayed by the difficulty to provide safe and tight timing guarantees. Indeed, even though multicore architectures enable the simultaneous parallel execution of programs on different cores, these programs are not completely independent. They have to be synchronized at some point to exchange data and they also share some common resources, such as peripherals, communication bus and (parts of the) memory. Synchronizations and shared resource contentions cause hard-to-predict interferences and timing overheads, which significantly increase the complexity of timing analyzes (WCET and scheduling).

One solution for mitigating these overheads, and making them more predictable, consists in relying on multi-phase task models that decouple communication phases from computation phases  23, 14. This greatly simplifies WCET analysis of computation phases, and also makes it possible to schedule communication phases so as to reduce their interference.

Memory architectures based on local addressable memories (scratchpads), instead of caches, are also being proposed  15, 22, to avoid the hard-to-predict timing effects of cache consistency mechanisms (which are used to speed-up access to the main shared memory).

We plan to integrate these two approaches in our project, since predictability is a major concern. The Prelude compiler will be extended to provide multi-phase task code generation, to be executed on scratchpad-based memory architectures. We will also develop the corresponding schedulability analysis method. Our objective is to devise our development framework such that the programmer abstracts from the implementation of communication mechanisms related on the target OS and hardware. This will enable the programmer to seamlessly transition between different architectures (unicore/multicore, cache-based/scratchpad-based).

## 3.2 Axis 2: Static Analysis of RT components

In this research axis, we will design static program analysis techniques for RT components at the binary level. While these techniques will mainly focus on WCET analysis, some results will also be reused to analyze security properties instead.

### 3.2.1 Short Term

#### (A2.S1) Symbolic WCET analysis.

We will work towards improving static analysis techniques for Worst-Case Execution Time Analysis. In particular, we will extend the Parametric WCET method  8 with more powerful symbolic capabilities. Currently, Parametric WCET can represent the WCET of a function as a formula in a number of parameters (e.g. input data). It does however suffer from two important limitations. First, it cannot represent relations between distinct parameters. We will extend the Parametric WCET by abstract interpretation of binary code to detect linear relations between distinct parameters in the code, by using techniques similar to  7. Second, it struggles to represent program properties that relate instructions of the program that are not close to one another, such as for instance infeasible execution paths  24. We are currently extending this work to enable the representation of properties related to such global execution contexts.

### 3.2.2 Medium Term

#### (A2.M1) Modular WCET analysis

Traditional WCET analysis is performed on a whole program. This approach is limited by two factors: first, performance concerns (analysis time tends to grow faster than the analyzed program size), and second, the analysis requires access to the complete program (including libraries, etc.). A modular and composable WCET analysis approach would reduce the analysis time, and enable the integration of third-party library or system calls in the analysis process.

To this end, we will extend our polyhedra-based abstract interpretation  7 to support inter-procedural analysis, based on function summaries  13, describing relations between the inputs and outputs of the function. This will enable us to compute WCET-related functional properties, such as e.g. loop bounds, in a composable way.

This work on composable analysis will lead to a full composable WCET analysis, by integrating it in our symbolic WCET computation framework  8.

Dependencies: To achieve this objective, we will need the advanced parameter handling techniques of S2.

#### (A2.M2) Security analysis of binary code

Program analysis of ERTS has historically focused mainly on safety, i.e. ensuring the absence of system failures. However, in recent years ERTS have become increasingly more connected to other computer systems through communication networks. This makes ERTS more vulnerable to external attacks, as illustrated by various reports of hacks of highly computerized modern cars. This results in an increased need for analyses that focus on ensuring the security of ERTS, i.e. ensuring there is no vulnerability to external malevolent computer attacks.

Our work on abstract interpretation of binary code  7 enables to detect linear relations between the data-locations accessed by a binary program (registers, memory addresses and their contents). While this work was initially targeted for WCET analysis, we plan to apply the developped techniques to the security domain as well. In particular, we will analyze security properties specific to the binary structure (e.g. unauthorized accesses to specific memory sections) and study the discovery of potential security threats in closed-source software (to detect malwares).

## 3.3 Axis 3: Proof of RT Components

The formal proof activity in the project will focus on compositional techniques for proving RT components of operating systems. Our plan is to focus mainly on RT schedulers.

### 3.3.1 Short term

#### (A3.S1) A proof methodology for a standard scheduling policy

We shall start with the standard scheduling policy EDF (Earliest Deadline First) and develop a proof methodology for it, which we shall later adapt to more advanced policies. The methodology incorporates a formal notion refinement as a means to master complexity and to smoothly descend from abstract definitions down to executable schedulers.

First, we are planning to model EDF at an abstract level in Coq. We shall formally prove at this level the schedulability property: under adequate hypotheses any given set of periodic hard real-time tasks can be scheduled, such that each task completes before its deadline. Since in the short term we shall only deal with strictly periodic, hard real-time tasks (reading data from sensors, performing some computation and sending the results to actuators), one only needs to consider the schedulability on finite executions, whose length equals the hyper-period: the least common multiplier of the task's periods. As a result, we expect that induction, well supported by Coq, will be the appropriate proof technique for this stage of the project.

Then, we shall refine the abstract EDF scheduling policy into a scheduling algorithm written in Coq's input language Gallina, a purely functional language, and shall prove again by induction that the algorithm preserves the already established properties of the policy.

Next, our plan is to further refine these functional algorithms into imperative Gallina programs, in order to get a step closer to executable code1. Imperative programs in purely functional languages such as Gallina are traditionally written using monads e.g., state monads, which enable variable assignments in functional code. For doing this we shall benefit from the experience of our colleagues in the 2XS team, our closest collaborators within the CRIStAL laboratory. They have been developing a minimalistic OS kernel called Pip  28 in imperative Gallina using the state-monad technology and have directly proved properties of the kernel in Coq. Unlike them, we do not prove properties directly on the monadic code, but shall prove a refinement step (from functional to imperative) ensuring that schedulability holds on the imperative scheduler.

The final step is translating the imperative Gallina scheduler to executable code. For this we shall use a translator also developped by the 2XS team, which essentially maps word-for-word imperartive Gallina programs to C programs with appropriate primitives that, after compilation of the C code, turn our schedulers into executable programs within Pip.

### 3.3.2 Medium term

In the medium term we are planning to make progress on two directions: the RT components being proved and the proof techniques.

#### (A3.M1) More advanced schedulers and other RT components

Once the validation of the proof/refinement methodology on the EDF example is complete, we are planning to progressively generalise it to other schedulers. The next likely candidate is the Grub scheduler, developped by Giuseppe Lipari  6, 17, which generalises EDF and makes it possible to mix periodic tasks (hard real-time) with sporadic tasks (soft real-time). The algorithm guarantees that the deadlines of the hard real-time tasks are met, while for the soft real-time ones a certain quality of service is guaranteed.

We are also planning to formally verify existing resource reservation hierarchical schedulers  18 by extending the proof/refinement approach with compositional features that exploit the component-based nature of the considered applications.

Depending on the availability of human resources, we would also like to formally verify other RT components, such as interruption multiplexers, memory managers, or synchronisation mechanisms.

#### (A3.M2) More advanced proof techniques

We expect that different verification techniques will be necessary to prove these more advanced schedulers. The EDF scheduler can be proved correct by considering its behaviour over a limited period of time, which as explained above can be dealt with using induction. However, Grub also has to schedule sporadic tasks that, by definition, do not repeat themselves periodically. Without a periodic repetition the behaviour cannot be studied over a finite interval, infinite executions have to be considered. Hence, we are planning to use coinduction, the natural technique for defining and reasoning about infinite objects. As stated in the Preliminaries we already have experience with coinduction, especially, with improving the way it is dealt with in Coq to make it better suited for use in nontrivial applications. We are planning to continue doing this both for corecursive program definitions (e.g., reactive systems, including schedulers, are such programs) and for coinductive reasoning techniques.

## 3.4 Long term

In the long term, we will integrate the elements studied during the medium term phase, in order to provide a seamless framework that goes from high-level design to final implementation. Translations will be automated and proved correct. These objectives are transverse by nature, so all members of the project-team will participate. Since these objectives focus on integration of our previous results, they are related to all of our short and medium term objectives.

#### (L1) Integrated framework

During the medium term phase, we will develop bricks that contribute to the design and analysis of ERTS. In the long term phase, we will integrate these bricks into a complete framework. This will raise several research topics.

First, we will have to evaluate the impact of scheduling on WCET analysis. Though this topic has already been studied before, our symbolic approach to both problems will raise new opportunities and challenges.

Second, we will evaluate the scalability of the approach with respect to realistic and complex real-time programs. In particular, the advent of powerful heterogeneous hardware platform permits to exploit their large scale parallelism. It is then important to check the suitability and the expressiveness of our framework with respect to these new powerful platforms.

#### (L2) Proving semantics preservation

In our framework, an ERTS is first specified with a high-level data-flow semantics (in Prelude). Then, it undergoes translations to produce the final program (in C) embedded on the hardware platform. One of our long term objectives is to prove that the complete translation process, from Preludeto C, is semantics-preserving.

There exists previous work and techniques for the formal verification of compilers such as CompCert  16 (from C code to binary code) and the Lustre verified compiler  12. However, these works focus on the preservation of the functional semantics (computing the correct values). A major novelty of our work will be to focus on the preservation of the temporal semantics (computing values at the correct time) as well. As far as we know, proving the preservation of temporal semantics was previously explored in theoretical models (e.g. timed automata, or Petri nets), but not in programming languages and compilers. It is an ambitious challenge, because it connects compilation with scheduling and WCET analysis.

#### (L3) Corecursion-preserving compilation and coinductive verification techniques

An alternative view of reactive programs (such as Prelude programs) is that of corecursive transformers from infinite flows of inputs to infinite flows of outputs. We envisage an enhanced compilation chain that, in addition to what is planned in L2, enables the tracing of corecursion down to the executable code. Since corecursive calls typically compile to low-level instructions such as loops or jumps, such a tracing mechanism would enable recognising the corecursive calls at the low-level. This, in turn, would enable the formal reasoning about low-level corecursive programs, using coinductive techniques that we shall develop in A3. We note that schedulers can also be expressed as corecursive programs, hence the verification boils down to compositionally verifying compositions of corecursive programs. It is, again, an ambitious challenge at every step, since corercursive programs are notoriously difficult to define, compose, and verify. This envisaged works depends on progress in essentially all the objectives enumerated above.

#### (L4) Dynamic update of components

ERTS may evolve over time, in particular, one component may be upgraded while the system is operational. In the traditional development process of critical software, once the system has been developed, tested and certified, it is not possible to change it anymore, with the only exception of correcting a critical bug. Dynamic updates are not possible since they would require to re-certify the whole system.

In the long term, we would like to apply our component based development process to the problem of guaranteeing the correctness of dynamic updates. This means that the system must be able to evolve over time, during operation, without jeopardizing the guarantee on existing properties.

Given the large complexity of the formal methods we will use for off-line analysis, it is unthinkable to apply the same type of analysis on-line. One possibility is to separate the analysis into two distinct parts: an off-line part which may be complex and does most of the work; and an on-line part which is much simpler but relies on the off-line computation. Alternatively, it is possible to off-load part of the analysis to the cloud, where there is abundance of computational resources.

# 4 Application domains

The long term research we propose to pursue in this project will advance the current development practice for embedded real-time critical systems.

First, it will impact the design and development of critical software for domains like avionics, automotive, train, etc. It is well known that developing safety-critical software is a long and costly process, where each error could endanger human life. It has been estimated that the cost to certify 30K lines of DAL A code is around 2M $if the code has been developed by experienced programmers, and it jumps to 8M$ if the code has been produced by non-experienced ones.

The avionic industry is slowly adopting formal methods to reduce the cost by reducing (or, in certain cases, eliminating altogether) testing and improve confidence in the methodology. Our integrated framework (L1) will greatly reduce the development cost of safety-critical software because it will automatise many of the steps in the design and development methodology. For example, the use of semantic preserving transformations (L2, L3) will enhance the confidence in the correctness of the generated code, reducing the need for extensive testing, thus further reducing cost.

Other critical domains, like automotive, have not yet fully adopted safety-critical standard methodologies like in the avionic domain, mainly for cost reasons. Our framework will lower the cost of developing safety critical software, thus improving the safety of critical software in a wider range of domains.

Finally, thanks to the research in (L4), it will be possible to update a software component on-line without performing a complete analysis of the system, while the system is operational. An example of futuristic application will be the possibility to update one software subsystem of an autonomous vehicle while the vehicle is running, without compromising its functionality.

# 5 New software and platforms

Since the SYCOMORES team has been created on October 1, 2021, in this section we report some of the software developed by the members of the team in the past years and that will be used as a basis for future development in the project.

## 5.1 New software

### 5.1.1 otawa

• Keywords:
Static analysis, WCET
• Functional Description:
Otawa is an open source static analysis tool developed and maintained by the TRACES team at the University of Toulouse and co-developed by the team SYCOMORES at Inria lille Nord-Europe. Specifically, SYCOMORES has developed two plugins for OTAWA: Polymalys, for polyhedra-based analysis and loop bound estimation, and WSymb, a Control Flow Tree extractor and symbolic WCET evaluator.
• Contact:
Clement Ballabriga
• Partner:
Université de Toulouse

### 5.1.2 prelude

• Keywords:
Synchorous language, Real time
• Functional Description:
Prelude is a synchronous real-time language designed by Julien Forget. The language is currently being actively used at ONERA on industrial case studies. It is currently being extended to support adaptive applications.
• Contact:
Julien Forget

• Keywords:
Real time, Library
• Functional Description:
PTASK is a library for programming real-time systems in Linux. It serves as the target RTOS API in the SYCOMORES project. The PTASK library is authored by Giuseppe Lipari. It has been initially developed to support teaching real-time systems at the Scuola Sant’Anna. it has later been extended with additional capabilities and it is being used as target for design tools such as CPAL19 from RTaW20 and by other companies.
• Contact:
Giuseppe Lipari

# 6 New results

The SYCOMORES team has been created on October 1, 2021, therefore we only report the work performed or concluded in the last 3 months of the year.

## 6.1 Cache related preemption delay

The research described in this section has been done by Fabien Bouquillon, PhD student of the SYCOMORES team, co-directed by Giuseppe Lipari and Smail Niar (Université Polytechnique Haut de France).

The research concerns the estimation of the cost of preemptions due to additional cache misses. This cost is called Cache Related Preemption Delay (CRPD) and the CRPD analysis is a methodology for bounding the cost of cache reloads due to preemptions. Many techniques have been proposed to estimate upper bounds to the CRPD for Fixed Priority (FP) and Earliest Deadline First (EDF) scheduling. Given the complexity of the problem, existing methods make simplifying assumptions to speed up the analysis, but they also introduce large amounts of pessimism. We proposed two original contributions for reducing the pessimism in the CRPD analysis of real-time systems that use set- associative cache memories: a new way to compute a bound on the number of preemptions on a task under EDF scheduling, and a novel algorithm that trades off speed for precision in state-of-the-art analysis in the literature.

The article containing these results has been recently accepted at the ACM SAC 2022 international conference 2, and it will be presented in February.

Participants: Fabien Bouquillon, Giuseppe Lipari, Smail Niar (UPHF).

## 6.2 Real-Time scheduling on FPGAs

The research described in this section has been carried out in collaboration with the RETIS Lab of the Scuola Superiore Sant'Anna in the context of the PhD thesis of Marco Pagani, co-directed by Giuseppe Lipari and Giorgio Buttazzo. The research concerns the real-time scheduling of tasks on dynamically reconfigurable FPGAs.

Dynamic partial reconfiguration allows virtualizing the FPGA resources by sharing them among multiple hardware accelerators over time. Although very promising, FPGA-based hardware acceleration also introduces new challenges, such as managing and scheduling multiple concurrent acceleration and reconfiguration requests.

In this research, the FRED-Linux library has been proposed to address these challenges while preserving the predictability required by real-time systems. Fred-Linux allows developing rich applications while leveraging predictable FPGA-based hardware acceleration for performing heavy computations. This research has been published in 1.

Participants: Marco Pagani, Giuseppe Lipari.

## 6.3 Multi-mode synchronous programs

This work has been carried out by Fréderic Fort, PhD student of the SYCOMORE team, directed by Giuseppe Lipari and tutored by Julien Forget.

The research tackles the problem of designing and programming a real-time system with multiple modes of execution, where each mode executes a different set of periodic tasks. The main problem to tackle is that the period of Mode Change Requests (MCR) and the period of tasks are not all the same. Thus, not all tasks perceive MCRs in the same way. When programming such a system with traditional languages without mechanisms dedicated to mode changes (e.g. C), it is difficult to ensure a system is sound and deterministic.

We proposed an extension to synchronous dataflow languages to support mode changes. The semantics of the resulting language is defined formally, which prevents ambiguous programs. The language is flexible enough to support different types of mode changes. The compiler of the language includes a static analysis that rejects programs whose semantics is ill-defined. The extension consists in transposing Synchronous State Machines to the Prelude language. This requires to extend the semantics of Prelude, and to define a new clock calculus, based on refinement typing.

These results have been recently accepted at the ACM SAC 2022 international conference 4, to be held on February 2022.

Participants: Fréderic Fort, Julien Forget.

## 6.4 Scheduling for Networks on Chips

Mr. Chawki Benchehida has successfully defended his PhD Thesis titled "Mapping Hard Real-Time Tasks on Network-on-Chip Manycore Architectures" 3 at the University of Lille on the 9th of November 2021. His thesis was co-directed by Giuseppe Lipari and by Kamel Benahoua (University of Oran 1), and tutored by Houssam Zahaf (Université de Nantes).

The thesis tackles the problem of execution complex multi-thread real-time applications on modern Network-on-Chip architectures. In real-time systems, The communications that occur in the network, denoted by on-chip communications, must be predictable and as fast as possible to prevent deadline misses. Since the task position on the NoC determines its communication cost, the allocation of the application tasks on the chip cores is a crucial problem.

The thesis addresses the problem of allocating a set of real-time applications, each composed of several parallel tasks, whose structure is described by a Directed Acyclic Graph (DAG), onto a Network-on-Chip processor. Three main problems are addressed: 1) the problem of bounding the communication cost depending on the different message scheduling policies at the router level; 2) the problem of task scheduling and of verifying the schedulability of a given allocation; 3) how to reduce the complexity of the task allocation problem and its analysis cost. In particular, the thesis proposes a task mapping strategy through a meta-heuristic which performs an effective design-space exploration for DAG (Directed Acyclic Graph) tasks.

Participants: Chawki Benchehida, Giuseppe Lipari, Houssam Zahaf (Univ. Nantes), Kamel Benahoua (Univ. Oran 1).

## 6.5 Efficient tree-based symbolic WCET computation

This work is part of the PhD thesis of Sandro Grebant, directed by Giuseppe Lipari and tutored by Julien Forget.

The research concerns the symbolic WCET analysis. Contrary to classical analyses which produces a constant value, symbolic WCET analysis produces a formula with different user-defined parameters of the program such as loop bounds. It relies on a tree-based representation similar to a control-flow graph (CFG), albeit with a tree structure.

Classical WCET analyses rely on integer linear programming with the implicit path enumeration technique but a tree-based representation is more suitable for a symbolic analysis. The goal of our work is to be able to represent different hardware and software f acts in order to tighten the resulting WCET bound. A hardware fact represents the effect of a hardware component, e.g. processor caches, on the execution time of the program. A software fact represents the effect of an element of the program structure, e.g. a loop bound, on the execution time of the program. To achieve those representations, existing techniques to model hardware facts need to be adapted to the tree-based representation and the existing annotation language needs to be enhanced. Annotations provide a way to express several flow facts which are not always related to the program structure. A great example would be a lower bound on the execution count of a part of a loop. We are currently working on the representation of infeasible paths for tree-based WCET analysis. The tree will be annotated with the results of an infeasible paths analysis. It will allow to tighten the resulting WCET by excluding some nodes from the WCET path.

Some preliminary results on this work have been presented at the Compas Workshop in early 2021.

Participants: Sandro Grebant, Julien Forget, Clément Ballabriga.

## 6.6 Type-based analysis of program sensitivity

Patrick Baillot has been working with colleagues of Boston University (USA) (M. Gaboardi, A. Azevedo De Amorim, J. Wunder) on type-based analysis of program sensitivity. The context is that of data related applications, where one wants to reason not only about what a program computes but also about how changes in the input data can affect the output. This notion can be formalized using metric spaces: given a metric on the input and output spaces one can reason about how far apart two related inputs are mapped by a program. This is called program sensitivity.

The 2010 seminal paper 25 had shown how to reason statically about program sensitivity by means of a type system for a functional language, inspired by linear logic. Baillot and his colleagues are exploring how this type system can be extended with new types corresponding to metrics often used in privacy and optimization, the Lp distances. This is obtained by taking inspiration from Bunched logic 20. They also show that this type system can help to reason on probability distributions in a natural way. A technical report is currently being written.

Participants: Patrick Baillot.

## 6.7 A formal correctness proof for an EDF scheduler implementation

The scheduler is a critical piece of software in real-time systems that orchestrates the various tasks to be executed. A failure can have serious consequences; therefore, it is important to provide strong guarantees for this software. In this work we propose a formal proof methodology that we concretely apply to an EDF scheduler. It consists first in proving the correctness of the election function algorithm, and then lifting this proof up to the implementation through refinements. The proofs are formalized in the Coq proof assistant, ensuring that they are free of human errors and that all cases are considered. Our methodology is general enough to be applied to any piece of software, including other schedulers or other types of system code. To the best of our knowledge, this is the first time that an implementation of EDF is proved correct.

This work is a collaboration with colleagues from the 2XS team of the Cristal laboratory in Lille. It is currently submitted for publication.

Participants: Florian Vanhems (2XS), Vlad Rusu, David Nowak (2XS), Gilles Grimaud (2XS).

## 6.8 Defining corecursive functions in Coq using approximations

We present two methods for defining corecursive functions that go beyond what the dedicated mechanisms of the Coq proof assistant for defining such functions are able to accept. The first method uses those same dedicated mechanisms, but in a manner that is substantially different from the standard one. It can be used to define corecursive functions as long as the functions' codomains are coinductive types not mutually dependent with inductive types. The second method is not subject to these restrictions, because it does not use Coq's dedicated mechanisms for corecursion but redefines them. Both methods amount to defining corecursive functions as limits of sequences of approximations, and both require a property of productiveness that, intuitively, means that for each input, an arbitrarily close approximation of the limit's corresponding output is eventually obtained. The methods are implemented in Coq and are illustrated with examples of corecursive functions that go beyond Coq's builtin capabilities. This gain in expressiveness is obtained by using a combination of axioms from Coq's standard library that enable reasoning in standard (i.e., not necessarily constructive) mathematics.

This work is also a collaboration with 2XS. It is currently submitted for publication.

Participants: Vlad Rusu, David Nowak (2XS).

# 7 Partnerships and cooperations

## 7.1 Participation in International Programs

Giuseppe Lipari participates in the PHC "Tassili" in collaboration with the University of Oran 1 (Algeria). The collaboration consists in the co-direction of two PhD theses:

• The PhD thesis of Chawki Benchehida, started on October 2018, and successfully defended on the 9/11/2021 at the Université de Lille, with title "Mapping Hard Real-Time Tasks on Network-on-Chip Manycore Architectures", co-directed by Giuseppe Lipari and Kamel Benhaoua (University of Oran 1).
• The PhD thesis of Ikram Senoussaoui, started on October 2019, co-directed by Giuseppe Lipari and Kamel Benahoua (University of Oran 1).

Participants: Giuseppe Lipari, Chawki Benchehida, Ikram Senoussaoui.

## 7.2 European initiatives

Giuseppe Lipari has participated to the submission of the "EDGEWARE" project proposal, a H2020 project on real-time edge computing.

Participants: Giuseppe Lipari.

## 7.3 National initiatives

Giuseppe Lipari has participated to the preparation and the submission of the PRCE ANR proposal SQUASH. The proposal is coordinated by Audrey Quedet (University of Nantes, principal investigator) and concerns the management and control of the energy consumption in IoT systems with real-time constraints.

Participants: Giuseppe Lipari.

# 8 Dissemination

## 8.1 Scientific events: organisation

• Giuseppe Lipari was Program Co-Chair of eRTNS 2021 conference:
• Giuseppe Lipari was Program Co-Chair of IEEE RTCSA 2021 conference;
• Patrick Baillot was Program Co-Chair of the LCC 2022 (Logic and Computational Complexity) workshop.

## 8.2 Member of the conference program committees

• DATE 2021, Julien Forget ;
• RTCSA 2021, Julien Forget ;
• RTNS 2021, Julien Forget ;
• ISPDC 2021, Giuseppe Lipari ;
• Working Formal Methods Symposium (FROM 2021), Vlad Rusu.

## 8.3 Teaching Responsabilities - Juries

• Giuseppe Lipari is directeur d'études of the « Internet des Objets » section of the Master mention informatique at the University of Lille. The IoT section is part of the Graduate Programme « Information and Knowledge Society » of the I-site of the university.
• Julien Forget was member of the PhD defence committee of Evariste Ntaryamira, 7/5/2021, Sorbonne Université ;
• Patrick Baillot was president of the PhD defence committee of Le Thanh Dung Nguyen, 3/12/2021, Université Sorbonne Paris Nord;
• Patrick Baillot was member of the PhD defence committee of Paul Gallot, 16/12/2021, Université de Lille;
• Giuseppe Lipari was member of the PhD defence committee of Jawher Jerray, Université de Sorbonne Paris Nord, 10/12/2021
• Giuseppe Lipari was member of the PhD defence committee of Agostino Mascitti, Scuola Superiore Sant'Anna, Pisa, Italy, 16/12/2021.

# 9 Scientific production

## 9.1 Publications of the year

### International journals

• 1 articleM.Marco Pagani, A.Alessandro Biondi, M.Mauro Marinoni, L.Lorenzo Molinari, G.Giuseppe Lipari and G.Giorgio Buttazzo. A Linux-Based Support for Developing Real-Time Applications on Heterogeneous Platforms with Dynamic FPGA Reconfiguration.Future Generation Computer Systems129October 2021, 125-140

### Conferences without proceedings

• 2 inproceedingsG.Giuseppe Lipari, F.Fabien Bouquillon and S.Smail Niar. Improving CRPD Analysis for EDF Scheduling: Trading Speed for Precision.The 37th ACM/SIGAPP Symposium On Applied ComputingBrno, Czech RepublicJanuary 2022

### Doctoral dissertations and habilitation theses

• 3 thesisC.Chawki Benchehida. Mapping Hard Real-Time Tasks on Network-on-Chip Manycore Architectures.Université de Lille; Université d'Oran 1November 2021

### Reports & preprints

• 4 miscF.Frédéric Fort and J.Julien Forget. Synchronous semantics of multi-mode multi-periodic systems.January 2022

## 9.2 Cited publications

• 6 articleL.Luca Abeni, L.Luigi Palopoli, C.Claudio Scordino and G.Giuseppe Lipari. Resource Reservations for General Purpose Applications.IEEE Trans. Ind. Informatics512009, 12--21
• 7 inproceedingsC.Clément Ballabriga, J.Julien Forget, L.Laure Gonnord, G.Giuseppe Lipari and J.Jordy Ruiz. Static Analysis Of Binary Code With Memory Indirections Using Polyhedra.International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI'19)Lisbon, Portugal1 2019
• 8 articleC.Clément Ballabriga, J.Julien Forget and G.Giuseppe Lipari. Symbolic WCET Computation.ACM Transactions on Embedded Computing Systems (TECS)172December 2017, 1--26
• 9 inproceedingsS.Sanjoy Baruah. Resource-Efficient Execution of Conditional Parallel Real-Time Tasks.Euro-Par 2018: Parallel ProcessingChamSpringer International Publishing2018, 218--231
• 10 articleE.Enrico Bini and G.Giorgio Buttazzo. The space of EDF deadlines: the exact region and a convex approximation.Real-Time Systems4112009, 27--51
• 11 articleE.Enrico Bini, M.Marco Di Natale and G.Giorgio Buttazzo. Sensitivity analysis for fixed-priority real-time systems.Real-Time Systems391-32008, 5--30
• 12 inproceedingsT.Timothy Bourke, L.Lélio Brun, P.-É.Pierre-Évariste Dagand, X.Xavier Leroy, M.Marc Pouzet and L.Lionel Rieg. A formally verified compiler for Lustre.ACM SIGPLAN Notices526ACM2017, 586--601
• 13 inproceedingsR.Rémy Boutonnet and N.Nicolas Halbwachs. Disjunctive relational abstract interpretation for interprocedural program analysis.International Conference on Verification, Model Checking, and Abstract InterpretationSpringer2019, 136--159
• 14 inproceedingsG.Guy Durrieu, M.Madeleine Faugere, S.Sylvain Girbal, D. G.Daniel Gracia Pérez, C.Claire Pagetti and W.Wolfgang Puffitsch. Predictable flight management system implementation on a multicore processor.Embedded Real Time Software (ERTS'14)2014
• 15 inproceedingsA.Arne Hamann, D.Dakshina Dasari, S.Simon Kramer, M.Michael Pressler and F.Falk Wurst. Communication Centric Design in Complex Automotive Embedded Systems.29th Euromicro Conference on Real-Time Systems (ECRTS 2017)Dubrovnik, Croatia2017
• 16 miscX.Xavier Leroy. The CompCert C verified compiler.2018
• 17 inproceedingsG.Giuseppe Lipari and S. K.Sanjoy K. Baruah. Greedy reclamation of unused bandwidth in constant-bandwidth servers.12th Euromicro Conference on Real-Time Systems (ECRTS 2000), 19-21 June 2000, Stockholm, Sweden, ProceedingsIEEE Computer Society2000, 193--200
• 18 inproceedingsG.Giuseppe Lipari and E.Enrico Bini. Resource Partitioning among Real-Time Applications.Proc. 15th Euromicro Conf. Real-Time SystemsIEEE Computer Society2003, 151--158
• 20 articleP. W.Peter W. O'Hearn and D. J.David J. Pym. The logic of bunched implications.Bull. Symb. Log.521999,
• 21 articleC.Claire Pagetti, J.Julien Forget, F.Frédéric Boniol, M.Mikel Cordovilla and D.David Lesens. Multi-task implementation of multi-periodic synchronous programs.Discrete Event Dynamic Systems2132011, 307-338
• 22 inproceedingsC.Claire Pagetti, J.Julien Forget, H.Heiko Falk, D.Dominic Oehlert and A.Arno Luppold. Automated generation of time-predictable executables on multi-core.RTNS 2018October 2018
• 23 inproceedingsR.Rodolfo Pellizzoni, E.Emiliano Betti, S.Stanley Bak, G.Gang Yao, J.John Criswell, M.Marco Caccamo and R.Russell Kegley. A predictable execution model for COTS-based embedded systems.Real-Time and Embedded Technology and Applications Symposium (RTAS)IEEE2011
• 24 inproceedingsP.Pascal Raymond. A general approach for expressing infeasibility in implicit path enumeration technique.2014 International Conference on Embedded Software (EMSOFT)IEEE2014, 1--9
• 25 inproceedingsJ.Jason Reed and B. C.Benjamin C. Pierce. Distance makes the types grow stronger: a calculus for differential privacy. ICFP 2010ACM2010,
• 26 articleA.A. Saifullah, D.D. Ferry, J.J. Li, K.K. Agrawal, C.C. Lu and C. D.C. D. Gill. Parallel Real-Time Scheduling of DAGs.IEEE Transactions on Parallel and Distributed Systems251212 2014, 3242-3252
• 27 miscThe Coq proof assistant reference manual.2021
• 28 miscThe Pip protokernel.2018


text:
New Titles  |  FAQ  |  Keep Informed  |  Review Cart  |  Contact Us Quick Search (Advanced Search ) Browse by Subject General Interest Logic & Foundations Number Theory Algebra & Algebraic Geometry Discrete Math & Combinatorics Analysis Differential Equations Geometry & Topology Probability & Statistics Applications Mathematical Physics Math Education

Teaching Mathematics in Colleges and Universities: Case Studies for Today's Classroom: Faculty Edition
Solomon Friedberg, Boston College, Chestnut Hill, MA
A co-publication of the AMS and CBMS.
 SEARCH THIS BOOK:
CBMS Issues in Mathematics Education
2001; 158 pp; softcover
Volume: 10
ISBN-10: 0-8218-2875-4
ISBN-13: 978-0-8218-2875-5
List Price: US$34 Member Price: US$27.20
All Individuals: US\$27.20
Order Code: CBMATH/10.F

Progress in mathematics frequently occurs first by studying particular examples and then by generalizing the patterns that have been observed into far-reaching theorems. Similarly, in teaching mathematics one often employs examples to motivate a general principle or to illustrate its use. This volume uses the same idea in the context of learning how to teach: By analyzing particular teaching situations, one can develop broadly applicable teaching skills useful for the professional mathematician. These teaching situations are the Case Studies of the title.

Just as a good mathematician seeks both to understand the details of a particular problem and to put it in a broader context, the examples presented here are chosen to offer a serious set of detailed teaching issues and to afford analysis from a broad perspective.

Each case raises a variety of pedagogical and communication issues that may be explored either individually or in a group facilitated by a faculty member. Teaching notes for such a facilitator are included for each Case in the Faculty Edition.

The methodology of Case Studies is widely used in areas such as business and law. The consideration of the mathematics cases presented here will help readers to develop teaching skills for their own classrooms.

This series is published in cooperation with the Mathematical Association of America.

• Introduction
Fourteen case studies
• Changing sections
• Emily's test
• Fundamental problems part I
• Making the Grade (College algebra version/Calculus I version/Multivariable calculus version)
• Making waves
• Order out of chaos
• Pairing up
• The quicksand of problem four
• Seeking points
• Study habits
• Studying the exam (College algebra questions/Calculus II questions/Multivariable calculus questions)
• There's something about Ted part I
• What were they thinking?
Supporting materials for faculty
• Developing effective mathematics teaching assistants using case studies: An introduction for faculty
• Using case studies in a TA-development program
• Types of cases
• Summaries of cases
• How these cases were created
• Changing sections, teaching guide
• Emily's test, teaching guide
• Fundamental problems part II (Fundamental problems, teaching guide)
• Making the grade, teaching guide
• Making waves part II (Making waves, teaching guide)
• Order out of chaos, teaching guide
• Pairing up, teaching guide
• The quicksand of problem four, teaching guide
• Seeking points, teaching guide
• Study habits, teaching guide
• Studying the exam, teaching guide (College algebra version/Calculus II version/Multivariable calculus version)
• There's something about Ted Part II/There's something about Ted, teaching guide
• What were they thinking?, teaching guide


text:
# Abstract Algebra elementary question

Let $F = \mathbb{Q}(\pi^3)$. How can we find a basis for $F(\pi)$ over $F$ ?

-
let me know if another hint is needed –  Belgi Dec 4 '12 at 10:56

Well, as a good hint I'd say that $\,\pi\,$ is a root of $\,f(x):=x^3-\pi^3\in\Bbb Q(\pi^3)[x]=:\Bbb F[x]\,$ , and from here $\,[\Bbb F(\pi):\Bbb F]\leq 3\,$...


text:
# Velocity of Center of Mass

1. Oct 22, 2014

### cacofolius

• Moved from general physics forum
Hi. There are two masses connected by a massless bar, and from the unstable equilibrium position shown in the figure is slightly inclined so it falls down, being the final state of the system that both masses are in contact with the surface. There is no friction between the floor and m2. The problem is to find the horizontal component of the velocity of the center of mass.

I think that since there is no friction, and gravity being the only outside force that acts on the system, the center of mass will fall straight down, so there will be no horizontal velocity of it. So is this right?

$$Vx = \frac{m_{1}V_{x1}+m_{2}V_{x2}}{m_{1}+m_{2}} = 0$$

#### Attached Files:

• ###### two masses.jpg
File size:
4.1 KB
Views:
62
2. Oct 22, 2014

### cacofolius

I thought I was on Homework, please excuse me. I'm looking for how to move/delete the thread. Edit: I just found out I can't. All apologies.

Last edited: Oct 22, 2014
3. Oct 22, 2014

### Staff: Mentor

No problem, I moved it for you. Usually we require the use of a template, but you essentially provided the key elements of the template anyway. So it should be OK.

Your analysis seems correct to me.

4. Oct 24, 2014

### cacofolius

Thank you very much!


text:
# RealisticAcceleration

Here you'll find out how exactly the train acceleration is calculated if you enable realistic acceleration (see New Curve and Mountain Handling).

This realistic model takes into account physical properties of the train, such as engine weight, total train weight, power and tractive effort. It is of course not 100% realistic, because it doesn't support details such as a realistic torque curve, powered wheel arrangements and bogie types (although vehicles defined by new graphics sets can set this correctly), and other things that TTD knows nothing about. It had to work within the description of engines offered by TTD. As such, it assumes that the engines always operate at optimum torque, and ignores the differences between steam, diesel and electric propulsion (for example that usually not all wheels of a steam engine are powered, unlike most electric engines. Again, this is not necessarily true for new vehicle sets).

The result is thus not perfectly realistic, but it is reasonably close. It's certainly close enough that the train acceleration "feels" more realistic. For example, effects such as friction and air drag (enhanced in tunnels) are taken into account. Therefore very heavy trains may not reach their stated top speed at all, or be able to make it up a steep hill. The acceleration also decreases the faster a train is, so that it will accelerate very quickly in the beginning, but then take a long time to reach its top speed, just like a real train.

The basis of the calculation is the maximum force that can be generated by the engine. This is using an idealistic model of constant power, or equivalently, constant torque, which is close enough to reality though, for most real engines:

$TE_\text{eng} = P / v$

$TE_\text{eng}$ is the maximum force generated by the engine in Kilonewtons, P is the power in Kilowatts and v is the speed in m/s. Of course the patch has to do a conversion from TTD's units.

After this, the patch calculates the maximum tractive effort that the engine can exert on the rails. This depends on its adhesive weight (i.e. the weight resting on powered axles), and the coefficient of friction on steel:

$TE_\text{max} = W_\text{adh} \times \mu$

$TE_\text{max}$ is the maximum tractive effort in kN, $W_\text{adh} = m_\text{adh} \times 9.81$ is the total adhesive weight in kN, and $\mu = 0.30$ is the coefficient of friction for steel on steel as used by TTDPatch.

The actual tractive effort is then the lower of the two values:

$TE = min (TE_\text{eng}, TE_\text{max})$

This is then added up for all powered vehicles in the consist, which gives the total tractive effort shown in the vehicle speed window if you have enabled that, see below.

From the total tractive effort, the patch subtracts the loss forces of static/kinetic friction, rolling friction and air resistance, and any tangential forces from an inclined track to arrive at the net force:

$F_\text{net} = TE_\text{effective} - c0 \times W - c1 \times W \times v - c2 \times v^2 - F_\text{incl}$

$F_\text{net}$ is the net force in kN, W is the total weight of the train in kN, c0 is the coefficient of static/kinetic friction, c1 is the coefficient of rolling friction, c2 is the coefficient of air resistance and <math<F_\text{incl}[/itex] includes the tangential forces of inclined track.

For c0 and c1 the patch uses the same values for all trains. These values were chosen to give a realistic feeling to the acceleration, and not strictly derived. The reason for that is that TTD doesn't have a consistent time scale, so that it is impossible to calculate the values of such constants. c2 depends on the top speed of the engine, to account for the fact that faster engines are usually streamlined. Roughly speaking, an engine that has twice the top speed than another engine is considered to have half the air resistance.

The incline forces are calculated as a sum over all train vehicles:

$F_\text{incl} = sum [ W[i] \times sin(theta[i]) ]$

W[i] is the weight of the i'th vehicle and theta[i] is the slope of the incline for that vehicle.

The slope is taken to be either -5%, 0% or +5%, depending on whether the vehicle is moving downhill, flat or uphill.

Finally, once the net force is known, the patch can calculate the train acceleration:

$a = F_\text{net} / m$

a is the acceleration in m/s2 and m is the total mass of the train in kg.

And that's the final acceleration value used to calculate the increase in train speed from one engine tick to the next.

If you are interested, you can see the resulting values for tractive effort and acceleration by using custom patch texts, see Detailed Information. You need to modify the "headingfor" entries to have them show tractive effort and acceleration. For example, use the following format:

headingfor="\95\80, \84, TE=\7c kN, a=\7c\00"

This shows the tractive effort (TE) in Kilonewtons, and the acceleration (a) in cm/s². The unit of acceleration is cm/s² because it is usually very small, and TTD cannot easily show decimals. It is only used if "showspeed" is on. Note that this can sometimes make the status bar text too wide to fit in the window, if that annoys you, you will have to remove these displays again.